Package: Ada.Strings.Unbounded.Aux

Description

This child package of Ada.Strings.Unbounded provides some specialized access functions which are intended to allow more efficient use of the facilities of Ada.Strings.Unbounded, particularly by other layered utilities (such as GNAT.Patterns).

Header

package Ada.Strings.Unbounded.Aux is
 
pragma Preelaborate (Aux);

Other Items:

function Get_String (U  : Unbounded_String) return String_Access;
pragma Inline (Get_String);
This function returns the internal string pointer used in the representation of an unbounded string. There is no copy involved, so the value obtained references the same string as the original unbounded string. The characters of this string may not be modified via the returned pointer, and are valid only as long as the original unbounded string is not modified. Violating either of these two rules results in erroneous execution.

This function is much more efficient than the use of To_String since it avoids the need to copy the string. The lower bound of the referenced string returned by this call is always one.


procedure Set_String (UP : in out Unbounded_String; S : String);
pragma Inline (Set_String);
This function sets the string contents of the referenced unbounded string to the given string value. It is significantly more efficient than the use of To_Unbounded_String with an assignment, since it avoids the necessity of messing with finalization chains. The lower bound of the string S is not required to be one.

procedure Set_String (UP : in out Unbounded_String; S : String_Access);

pragma Inline (Set_String);
This version of Set_String takes a string access value, rather than a string. The lower bound of the string value is required to be one, and this requirement is not checked.
end Ada.Strings.Unbounded.Aux;