diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2021-11-09 17:05:44 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2021-11-09 17:05:44 +1300 |
commit | 36b0cbf19bd44c94bbe5aa67730347290f20628c (patch) | |
tree | d2171132faa9dc6b2ffe99e87b7bbef102c9a9c0 /src/deckdata.ads | |
parent | b18a53cfaea8c3cf9e838e2a1cc8000a18324234 (diff) |
Refactored packages
Diffstat (limited to 'src/deckdata.ads')
-rw-r--r-- | src/deckdata.ads | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/deckdata.ads b/src/deckdata.ads new file mode 100644 index 0000000..ae73ef2 --- /dev/null +++ b/src/deckdata.ads @@ -0,0 +1,107 @@ + + +-- This source is licensed under the Sunset License v1.0 + + +with + + Ada.Containers.Vectors, + Ada.Containers.Ordered_Maps, + Ada.Strings.Unbounded; + + +package Deckdata is + + + package SU renames Ada.Strings.Unbounded; + + + + + type Field_Ordinal is new Positive; + type Field_ID is new SU.Unbounded_String; + + package Field_ID_Vectors is new Ada.Containers.Vectors + (Index_Type => Field_Ordinal, + Element_Type => Field_ID); + + subtype Field_ID_Vector is Field_ID_Vectors.Vector; + + + type Template is record + Question : Field_ID_Vectors.Vector; + Answer : Field_ID_Vectors.Vector; + end record; + + package Template_Vectors is new Ada.Containers.Vectors + (Index_Type => Positive, + Element_Type => Template); + + subtype Template_Vector is Template_Vectors.Vector; + + + type Model_ID is new SU.Unbounded_String; + + type Model is record + Fields : Field_ID_Vectors.Vector; + Templates : Template_Vectors.Vector; + end record; + + package Model_Maps is new Ada.Containers.Ordered_Maps + (Key_Type => Model_ID, + Element_Type => Model); + + subtype Model_Map is Model_Maps.Map; + + + type Field is new SU.Unbounded_String; + + package Field_Vectors is new Ada.Containers.Vectors + (Index_Type => Field_Ordinal, + Element_Type => Field); + + subtype Field_Vector is Field_Vectors.Vector; + + + type Note is record + Model : Model_ID; + Fields : Field_Vectors.Vector; + end record; + + package Note_Vectors is new Ada.Containers.Vectors + (Index_Type => Positive, + Element_Type => Note); + + subtype Note_Vector is Note_Vectors.Vector; + + + type Media_Name is new SU.Unbounded_String; + type Media_ID is new SU.Unbounded_String; + + package Media_Maps is new Ada.Containers.Ordered_Maps + (Key_Type => Media_Name, + Element_Type => Media_ID); + + type Media_Collection is record + Filename : SU.Unbounded_String; + Map : Media_Maps.Map; + end record; + + +private + + + function "+" + (S : in String) + return SU.Unbounded_String + renames SU.To_Unbounded_String; + + function "-" + (US : in SU.Unbounded_String) + return String + renames SU.To_String; + + +end Deckdata; + + |