hcl/lib2/h3-strings.ads

38 lines
946 B
Ada
Raw Permalink Normal View History

with H3.Arrays;
2022-08-23 10:13:02 +00:00
with H3.Storage;
with H3.Storage_Pools;
2021-08-23 23:47:29 +00:00
generic
2021-10-30 01:57:19 +00:00
type Rune_Type is (<>);
2022-08-23 10:13:02 +00:00
with package Storage_Pool_Box is new H3.Storage.Pool_Box(<>);
2021-08-23 23:47:29 +00:00
package H3.Strings is
2022-08-23 10:13:02 +00:00
package P is new H3.Arrays(
Item_Type => Rune_Type,
Terminator_Length => 1,
Terminator_Value => Rune_Type'First,
Storage_Pool_Box => Storage_Pool_Box
);
2021-10-30 01:57:19 +00:00
subtype Rune is P.Item;
subtype Rune_Array is P.Item_Array;
subtype Thin_Rune_Array_Pointer is P.Thin_Item_Array_Pointer;
2021-08-23 23:47:29 +00:00
2022-08-23 10:13:02 +00:00
--Terminator_Length: System_Zero_Or_One renames P.Terminator_Length;
--Terminator_Value: Rune renames P.Terminator_Value;
2021-08-23 23:47:29 +00:00
type Elastic_String is new P.Elastic_Array with record
--A: standard.integer := 999;
null;
2021-08-23 23:47:29 +00:00
end record;
function Get_Rune (Obj: in Elastic_String; Pos: in System_Index) return Rune;
function To_Rune_Array (Obj: in Elastic_String) return Rune_Array;
2021-10-30 01:57:19 +00:00
overriding procedure Append (Obj: in out Elastic_String; V: in Rune_Array);
2021-08-23 23:47:29 +00:00
end H3.Strings;
2022-08-23 10:13:02 +00:00