------------------------------------------------------------------------------ -- -- -- GNAT RUN-TIME COMPONENTS -- -- -- -- ADA.STRINGS.TEXT_BUFFERS.BOUNDED -- -- -- -- S p e c -- -- -- -- Copyright (C) 2020-2022, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- -- -- ------------------------------------------------------------------------------ package Ada.Strings.Text_Buffers.Bounded with Pure is type Buffer_Type (Max_Characters : Text_Buffer_Count) is new Root_Buffer_Type with private with Default_Initial_Condition => not Text_Truncated (Buffer_Type); function Text_Truncated (Buffer : Buffer_Type) return Boolean; function Get (Buffer : in out Buffer_Type) return String with Post'Class => Get'Result'First = 1 and then Current_Indent (Buffer) = 0; function Wide_Get (Buffer : in out Buffer_Type) return Wide_String with Post'Class => Wide_Get'Result'First = 1 and then Current_Indent (Buffer) = 0; function Wide_Wide_Get (Buffer : in out Buffer_Type) return Wide_Wide_String with Post'Class => Wide_Wide_Get'Result'First = 1 and then Current_Indent (Buffer) = 0; function Get_UTF_8 (Buffer : in out Buffer_Type) return UTF_Encoding.UTF_8_String with Post'Class => Get_UTF_8'Result'First = 1 and then Current_Indent (Buffer) = 0; function Wide_Get_UTF_16 (Buffer : in out Buffer_Type) return UTF_Encoding.UTF_16_Wide_String with Post'Class => Wide_Get_UTF_16'Result'First = 1 and then Current_Indent (Buffer) = 0; private procedure Put_UTF_8_Implementation (Buffer : in out Root_Buffer_Type'Class; Item : UTF_Encoding.UTF_8_String) with Pre => Buffer in Buffer_Type'Class; package Mapping is new Output_Mapping (Put_UTF_8_Implementation); subtype Positive_Text_Buffer_Count is Text_Buffer_Count range 1 .. Text_Buffer_Count'Last; type Convertible_To_UTF_8_String is array (Positive_Text_Buffer_Count range <>) of Character; type Buffer_Type (Max_Characters : Text_Buffer_Count) is new Mapping.Buffer_Type with record Truncated : Boolean := False; -- True if we ran out of space on a Put Chars : Convertible_To_UTF_8_String (1 .. Max_Characters); end record; end Ada.Strings.Text_Buffers.Bounded;