diff options
Diffstat (limited to 'src/preferences.ads')
-rw-r--r-- | src/preferences.ads | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/preferences.ads b/src/preferences.ads index 7913019..d13b0c9 100644 --- a/src/preferences.ads +++ b/src/preferences.ads @@ -1,23 +1,48 @@ -with Candidates; +with Candidates.Containers; +private with Ada.Containers; generic - Number_Of_Candidates : Positive; + Pref_Size : Positive; + Above_Ballot : Candidates.Containers.Above_Line_Ballot; + Below_Ballot : Candidates.Containers.Below_Line_Ballot; package Preferences is - subtype Preference_Range is range 1 .. Number_Of_Candidates; + subtype Preference_Range is Positive range 1 .. Pref_Size; - type Preference_Array is array Preference_Range + type Preference_Array is array (Preference_Range) of Candidates.Extended_CandidateID; + pragma Pack (Preference_Array); + + + Empty_Array : constant Preference_Array := + (others => Candidates.No_Candidate); + + + function Parse_Preferences + (Input : in String) + return Preference_Array; private + Min_Above_Line : constant Positive := 1; + Min_Below_Line : constant Positive := 6; + + + subtype Above_Range is Ada.Containers.Count_Type range 1 .. Above_Ballot.Length; + type Above_Pref_Array is array (Above_Range) of Natural; + + + subtype Below_Range is Ada.Containers.Count_Type range 1 .. Below_Ballot.Length; + type Below_Pref_Array is array (Below_Range) of Natural; + + end Preferences; |