From 866565c42134dbe8828c9a9b8140a90598df4069 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Sat, 6 Nov 2021 00:53:55 +1300 Subject: Factored out deck datatypes into their own package --- src/datatypes.ads | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/datatypes.ads (limited to 'src/datatypes.ads') diff --git a/src/datatypes.ads b/src/datatypes.ads new file mode 100644 index 0000000..164e7c9 --- /dev/null +++ b/src/datatypes.ads @@ -0,0 +1,87 @@ + + +with + + Ada.Containers.Vectors, + Ada.Containers.Ordered_Maps, + Ada.Strings.Unbounded; + + +package Datatypes 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_ID is new SU.Unbounded_String; + type Media_Name is new SU.Unbounded_String; + + package Media_Maps is new Ada.Containers.Ordered_Maps + (Key_Type => Media_ID, + Element_Type => Media_Name); + + subtype Media_Map is Media_Maps.Map; + + +end Datatypes; + + -- cgit