+ # Get a `String` from the raw `length` bytes at `self`
+ #
+ # The default value of `length` is the number of bytes before
+ # the first null character.
+ #
+ # The created `String` points to the data at `self`.
+ # This method should be used when `self` was allocated by the Nit GC,
+ # or when manually controlling the deallocation of `self`.
+ #
+ # /!\: This service does not clean the items for compliance with UTF-8,
+ # use only when the data has already been verified as valid UTF-8.
+ fun to_s_unsafe(length: nullable Int): String is abstract
+
+ # Get a `String` from the raw `byte_length` bytes at `self` with `unilen` Unicode characters
+ #
+ # The created `String` points to the data at `self`.
+ # This method should be used when `self` was allocated by the Nit GC,
+ # or when manually controlling the deallocation of `self`.
+ #
+ # /!\: This service does not clean the items for compliance with UTF-8,
+ # use only when the data has already been verified as valid UTF-8.
+ #
+ # SEE: `abstract_text::Text` for more info on the difference
+ # between `Text::byte_length` and `Text::length`.
+ fun to_s_full(byte_length, unilen: Int): String is abstract
+
+ # Copies the content of `src` to `self`