with Ada.Containers.Ordered_Maps; with Ada.Containers.Ordered_Sets; -- This source is licensed under Creative Commons CC0 v1.0. -- -- To read the full text, see license.txt in the main directory of this repository -- or go to https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt -- -- For a human readable summary, go to https://creativecommons.org/publicdomain/zero/1.0/ package Candidates.Containers is package Candidate_Maps is new Ada.Containers.Ordered_Maps (Key_Type => CandidateID, Element_Type => Candidate); subtype Candidate_Map is Candidate_Maps.Map; procedure Read_Candidates (Filename : in String; State : in State_Name; Candidate_Data : out Candidate_Map); package CandidateID_Maps is new Ada.Containers.Ordered_Maps (Key_Type => Positive, Element_Type => CandidateID); use type CandidateID_Maps.Map; package CandidateID_Map_Maps is new Ada.Containers.Ordered_Maps (Key_Type => Positive, Element_Type => CandidateID_Maps.Map); -- Possibly put some aspects here to ensure the types are as expected? subtype Above_Line_Ballot is CandidateID_Map_Maps.Map; subtype Below_Line_Ballot is CandidateID_Maps.Map; procedure Generate_Ballots (Candidate_Data : in Candidate_Map; Above_Ballot : out Above_Line_Ballot; Below_Ballot : out Below_Line_Ballot); -- Debugging function function To_String (Above_Ballot : in Above_Line_Ballot) return String; -- Debugging function function To_String (Below_Ballot : in Below_Line_Ballot) return String; package CandidateID_Sets is new Ada.Containers.Ordered_Sets (Element_Type => CandidateID); subtype CandidateID_Set is CandidateID_Sets.Set; end Candidates.Containers;