-- part of AdaYaml, (c) 2017 Felix Krause -- released under the terms of the MIT license, see the file "copying.txt" with Ada.Containers; with Ada.Finalization; with Text.Pool; generic type Value_Type is private; package Yaml.Text_Set is type Reference is new Ada.Finalization.Limited_Controlled with private; type Holder is record Hash : Ada.Containers.Hash_Type; Key : Text.Reference; Value : Value_Type; end record; function Get (Object : in out Reference; S : Standard.String; Create : Boolean) return Holder; function Set (Object : in out Reference; S : Standard.String; Value : Value_Type) return Boolean; procedure Update (Object : in out Reference; S : Standard.String; Value : Value_Type); procedure Init (Object : in out Reference; Pool : Text.Pool.Reference; Initial_Size : Positive); procedure Clear (Object : in out Reference); private type Holder_Array is array (Natural range <>) of aliased Holder; type Holder_Array_Access is access Holder_Array; type Reference is new Ada.Finalization.Limited_Controlled with record Count : Natural; Elements : Holder_Array_Access; Pool : Text.Pool.Reference; end record; overriding procedure Finalize (Object : in out Reference); end Yaml.Text_Set;