Struct NativeText
An unmanaged, mutable, resizable UTF-8 string.
Namespace: Unity.Collections
Assembly: Unity.Collections.dll
Syntax
[NativeContainer]
public struct NativeText : INativeList<byte>, IIndexable<byte>, INativeDisposable, IUTF8Bytes
Remarks
The string is always null-terminated, meaning a zero byte always immediately follows the last character.
Constructors
NativeText(int, Allocator)
Initializes and returns an instance of NativeText.
Declaration
public NativeText(int capacity, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
int | capacity | The initial capacity in bytes. |
Allocator | allocator | The allocator to use. |
NativeText(int, AllocatorHandle)
Initializes and returns an instance of NativeText.
Declaration
public NativeText(int capacity, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
int | capacity | The initial capacity in bytes. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(string, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(string source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
string | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(string, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(string source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
string | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(Allocator)
Initializes and returns an instance of NativeText with an initial capacity of 512 bytes.
Declaration
public NativeText(Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
Allocator | allocator | The allocator to use. |
NativeText(AllocatorHandle)
Initializes and returns an instance of NativeText with an initial capacity of 512 bytes.
Declaration
public NativeText(AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(in FixedString128Bytes, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString128Bytes source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString128Bytes | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(in FixedString128Bytes, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString128Bytes source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString128Bytes | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(in FixedString32Bytes, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString32Bytes source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString32Bytes | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(in FixedString32Bytes, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString32Bytes source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString32Bytes | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(in FixedString4096Bytes, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString4096Bytes source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString4096Bytes | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(in FixedString4096Bytes, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString4096Bytes source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString4096Bytes | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(in FixedString512Bytes, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString512Bytes source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString512Bytes | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(in FixedString512Bytes, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString512Bytes source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString512Bytes | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
NativeText(in FixedString64Bytes, Allocator)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString64Bytes source, Allocator allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString64Bytes | source | A string to copy characters from. |
Allocator | allocator | The allocator to use. |
NativeText(in FixedString64Bytes, AllocatorHandle)
Initializes and returns an instance of NativeText with the characters copied from another string.
Declaration
public NativeText(in FixedString64Bytes source, AllocatorManager.AllocatorHandle allocator)
Parameters
Type | Name | Description |
---|---|---|
FixedString64Bytes | source | A string to copy characters from. |
AllocatorManager.AllocatorHandle | allocator | The allocator to use. |
Properties
Capacity
The current capacity in bytes of this string.
Declaration
public int Capacity { get; set; }
Property Value
Type | Description |
---|---|
int | The current capacity in bytes of the string. |
Remarks
The null-terminator byte is not included in the capacity, so the string's character buffer is Capacity + 1
in size.
IsCreated
Whether this string's character buffer has been allocated (and not yet deallocated).
Declaration
public bool IsCreated { get; }
Property Value
Type | Description |
---|---|
bool | Whether this string's character buffer has been allocated (and not yet deallocated). |
IsEmpty
Whether this string has no characters.
Declaration
public bool IsEmpty { get; }
Property Value
Type | Description |
---|---|
bool | True if this string has no characters or the string has not been constructed. |
Exceptions
Type | Condition |
---|---|
NotSupportedException | Thrown if ENABLE_UNITY_COLLECTIONS_CHECKS is defined and a write is attempted. |
this[int]
The byte at an index. Note that writing to a NativeText.Readonly is not supported; the setter of this property throws when safety checks are enabled.
Declaration
public byte this[int index] { get; set; }
Parameters
Type | Name | Description |
---|---|---|
int | index | A zero-based byte index. |
Property Value
Type | Description |
---|---|
byte | The byte at the index. |
Exceptions
Type | Condition |
---|---|
IndexOutOfRangeException | Thrown if the index is out of bounds. |
Length
The current length in bytes of this string.
Declaration
public int Length { get; set; }
Property Value
Type | Description |
---|---|
int | The current length in bytes of the UTF-8 encoded string. |
Remarks
The length does not include the null terminator byte.
Methods
Add(in byte)
Appends a byte.
Declaration
public void Add(in byte value)
Parameters
Type | Name | Description |
---|---|---|
byte | value | A byte to append. |
Remarks
A zero byte will always follow the newly appended byte.
No validation is performed: it is your responsibility for the bytes of the string to form valid UTF-8 when you're done appending bytes.
AsReadOnly()
Returns a readonly version of this NativeText instance.
Declaration
public NativeText.ReadOnly AsReadOnly()
Returns
Type | Description |
---|---|
NativeText.ReadOnly | ReadOnly instance for this. |
Remarks
ReadOnly containers point to the same underlying data as the NativeText it is made from. Note while ReadOnly contains methods that would write to the string data these methods will perform no writes and/or throw a NotSupportedException.
Clear()
Sets the length to 0.
Declaration
public void Clear()
CompareTo(string)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(string other)
Parameters
Type | Name | Description |
---|---|---|
string | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(FixedString128Bytes)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(FixedString128Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString128Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(FixedString32Bytes)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(FixedString32Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString32Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(FixedString4096Bytes)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(FixedString4096Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString4096Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(FixedString512Bytes)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(FixedString512Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString512Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(FixedString64Bytes)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(FixedString64Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString64Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(NativeText)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(NativeText other)
Parameters
Type | Name | Description |
---|---|---|
NativeText | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
CompareTo(ReadOnly)
Returns the lexicographical sort order of this string relative to another.
Declaration
public int CompareTo(NativeText.ReadOnly other)
Parameters
Type | Name | Description |
---|---|---|
NativeText.ReadOnly | other | Another string to compare with. |
Returns
Type | Description |
---|---|
int | A number denoting the lexicographical sort order of this string relative to the other string:
|
Dispose()
Releases all resources (memory and safety handles).
Declaration
public void Dispose()
Dispose(JobHandle)
Creates and schedules a job that releases all resources (memory and safety handles) of this NativeText.
Declaration
public JobHandle Dispose(JobHandle inputDeps)
Parameters
Type | Name | Description |
---|---|---|
JobHandle | inputDeps | The dependency for the new job. |
Returns
Type | Description |
---|---|
JobHandle | The handle of the new job. The job depends upon |
ElementAt(int)
Returns a reference to the byte (not character) at an index.
Declaration
public ref byte ElementAt(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | A byte index. |
Returns
Type | Description |
---|---|
byte | A reference to the byte at the index. |
Remarks
Deallocating or reallocating this string's character buffer makes the reference invalid.
Exceptions
Type | Condition |
---|---|
IndexOutOfRangeException | Thrown if the index is out of bounds. |
Equals(object)
Returns true if this string and another object are equal.
Declaration
public override bool Equals(object other)
Parameters
Type | Name | Description |
---|---|---|
object | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if this string and the object are equal. |
Overrides
Remarks
For the object to be equal, it must itself be a managed string, NativeText, or FixedStringNBytes.
Two strings are equal if they have equal length and all their characters match.
Equals(string)
Returns true if this string and another are equal.
Declaration
public bool Equals(string other)
Parameters
Type | Name | Description |
---|---|---|
string | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(FixedString128Bytes)
Returns true if this string and another are equal.
Declaration
public bool Equals(FixedString128Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString128Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(FixedString32Bytes)
Returns true if this string and another are equal.
Declaration
public bool Equals(FixedString32Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString32Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(FixedString4096Bytes)
Returns true if this string and another are equal.
Declaration
public bool Equals(FixedString4096Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString4096Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(FixedString512Bytes)
Returns true if this string and another are equal.
Declaration
public bool Equals(FixedString512Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString512Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(FixedString64Bytes)
Returns true if this string and another are equal.
Declaration
public bool Equals(FixedString64Bytes other)
Parameters
Type | Name | Description |
---|---|---|
FixedString64Bytes | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(NativeText)
Returns true if this string and another are equal.
Declaration
public bool Equals(NativeText other)
Parameters
Type | Name | Description |
---|---|---|
NativeText | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
Equals(ReadOnly)
Returns true if this string and another are equal.
Declaration
public bool Equals(NativeText.ReadOnly other)
Parameters
Type | Name | Description |
---|---|---|
NativeText.ReadOnly | other | Another string to compare with. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
GetEnumerator()
Returns an enumerator for iterating over the characters of the NativeText.
Declaration
public NativeText.Enumerator GetEnumerator()
Returns
Type | Description |
---|---|
NativeText.Enumerator | An enumerator for iterating over the characters of the NativeText. |
GetHashCode()
Returns a hash code of this string.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
int | A hash code of this string. |
Overrides
Remarks
The hash code is an integer that is always the same for two equal strings but (very likely) different for two unequal strings.
GetUnsafePtr()
Returns a pointer to this string's character buffer.
Declaration
public byte* GetUnsafePtr()
Returns
Type | Description |
---|---|
byte* | A pointer to this string's character buffer. |
Remarks
The pointer is made invalid by operations that reallocate the character buffer, such as setting Capacity
.
ToString()
Returns a managed string copy of this string.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | A managed string copy of this string. |
Overrides
TryResize(int, NativeArrayOptions)
Attempt to set the length in bytes of this string.
Declaration
public bool TryResize(int newLength, NativeArrayOptions clearOptions = NativeArrayOptions.ClearMemory)
Parameters
Type | Name | Description |
---|---|---|
int | newLength | The new length in bytes of the string. |
NativeArrayOptions | clearOptions | Whether any bytes added should be zeroed out. |
Returns
Type | Description |
---|---|
bool | Always true. |
Operators
operator ==(in NativeText, in FixedString128Bytes)
Returns true if two strings are equal.
Declaration
public static bool operator ==(in NativeText a, in FixedString128Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString128Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator ==(in NativeText, in FixedString32Bytes)
Returns true if two strings are equal.
Declaration
public static bool operator ==(in NativeText a, in FixedString32Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString32Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator ==(in NativeText, in FixedString4096Bytes)
Returns true if two strings are equal.
Declaration
public static bool operator ==(in NativeText a, in FixedString4096Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString4096Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator ==(in NativeText, in FixedString512Bytes)
Returns true if two strings are equal.
Declaration
public static bool operator ==(in NativeText a, in FixedString512Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString512Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator ==(in NativeText, in FixedString64Bytes)
Returns true if two strings are equal.
Declaration
public static bool operator ==(in NativeText a, in FixedString64Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString64Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are equal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator !=(in NativeText, in FixedString128Bytes)
Returns true if two strings are unequal.
Declaration
public static bool operator !=(in NativeText a, in FixedString128Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString128Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are unequal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator !=(in NativeText, in FixedString32Bytes)
Returns true if two strings are unequal.
Declaration
public static bool operator !=(in NativeText a, in FixedString32Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString32Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are unequal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator !=(in NativeText, in FixedString4096Bytes)
Returns true if two strings are unequal.
Declaration
public static bool operator !=(in NativeText a, in FixedString4096Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString4096Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are unequal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator !=(in NativeText, in FixedString512Bytes)
Returns true if two strings are unequal.
Declaration
public static bool operator !=(in NativeText a, in FixedString512Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString512Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are unequal. |
Remarks
Two strings are equal if they have equal length and all their characters match.
operator !=(in NativeText, in FixedString64Bytes)
Returns true if two strings are unequal.
Declaration
public static bool operator !=(in NativeText a, in FixedString64Bytes b)
Parameters
Type | Name | Description |
---|---|---|
NativeText | a | A string to compare. |
FixedString64Bytes | b | Another string to compare. |
Returns
Type | Description |
---|---|
bool | True if the two strings are unequal. |
Remarks
Two strings are equal if they have equal length and all their characters match.