package body Cashe.Currency_Handling is procedure Set_Code (This : in out Custom_Currency; Item : Wide_Wide_String) is use Ada.Strings.Wide_Wide_Unbounded; begin This.Custom_Code := To_Unbounded_Wide_Wide_String (Item); end Set_Code; procedure Set_Name (This : in out Custom_Currency; Item : Wide_Wide_String) is use Ada.Strings.Wide_Wide_Unbounded; begin This.Custom_Name := To_Unbounded_Wide_Wide_String (Item); end Set_Name; procedure Set_Symbol (This : in out Custom_Currency; Item : Wide_Wide_String) is use Ada.Strings.Wide_Wide_Unbounded; begin This.Custom_Symbol := To_Unbounded_Wide_Wide_String (Item); end Set_Symbol; procedure Set_Unit (This : in out Custom_Currency; Item : Natural) is begin This.Custom_Minor_Unit := Item; end Set_Unit; function Code (This : Custom_Currency) return Wide_Wide_String is use Ada.Strings.Wide_Wide_Unbounded; begin return To_Wide_Wide_String (This.Custom_Code); end Code; function Name (This : Custom_Currency) return Wide_Wide_String is use Ada.Strings.Wide_Wide_Unbounded; begin return To_Wide_Wide_String (This.Custom_Name); end Name; function Symbol (This : Custom_Currency) return Wide_Wide_String is use Ada.Strings.Wide_Wide_Unbounded; begin return To_Wide_Wide_String (This.Custom_Symbol); end Symbol; function Unit (This : Custom_Currency) return Natural is (This.Custom_Minor_Unit); function Create (Code : Wide_Wide_String; Minor_Unit : Natural := 0; Name : Wide_Wide_String := ""; Symbol : Wide_Wide_String := "") return Custom_Currency is use Ada.Strings.Wide_Wide_Unbounded; begin return (Custom_Code => To_Unbounded_Wide_Wide_String (Code), Custom_Symbol => To_Unbounded_Wide_Wide_String (Symbol), Custom_Name => To_Unbounded_Wide_Wide_String (Name), Custom_Minor_Unit => Minor_Unit); end Create; end Cashe.Currency_Handling;