with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Ada.Strings.Wide_Wide_Unbounded; use Ada.Strings.Wide_Wide_Unbounded; with Ada.Containers.Vectors; package Countries is Countries_CSV : constant String := "files/countries.csv"; -- The CSV goes in a vector of these. type ISO_3166_1_Row is record Name : Unbounded_Wide_Wide_String := Null_Unbounded_Wide_Wide_String; Alpha_2 : Unbounded_String := Null_Unbounded_String; Alpha_3 : Unbounded_String := Null_Unbounded_String; Numeric : Unbounded_String := Null_Unbounded_String; end record; -- The vector that will hold our stuff. package ISO_3166_1_Table is new Ada.Containers.Vectors (Index_Type => Positive, Element_Type => ISO_3166_1_Row); function Search_Country_Name (This : ISO_3166_1_Table.Vector; Name : Unbounded_Wide_Wide_String) return Natural; function Load_Countries_CSV return ISO_3166_1_Table.Vector; procedure Generate_Countries (Table : ISO_3166_1_Table.Vector); end Countries;