Struct c_fixed_string::CFixedString [] [src]

pub struct CFixedString { /* fields omitted */ }

This type owns a fixed length buffer containing a C-style string. The string is terminated by the first null byte in the buffer, or by the length of the buffer if no null byte is present.

The length of the buffer is known as the limit of the CFixedString. The len() method returns the length of the string within the buffer.

Any bytes after the first null byte are not considered part of the string and may contain garbage data. When comparing or hashing CFixedStrings, these bytes are not included.

Performance

Be aware that many of the methods on this type which would normally be expected to run in constant time may run in time linear in the length of the string. For this reason, it is recommended to use the type only for interop with C code, and to convert to a standard string or byte buffer as soon as possible.

Methods

impl CFixedString
[src]

[src]

Construct a new fixed-length C string from a byte slice The first null byte terminates the string, but the length of the slice determines the limit of this fixed-size string.

[src]

Construct an empty string with the specified limit. The buffer is entirely zero-initialized.

[src]

Retakes ownership of a CFixedString that was transferred to C.

Safety

This should only ever be called with a pointer and limit that was earlier obtained from a CFixedString. The previous string must have been forgotten to ensure that the memory has not already been freed.

[src]

Converts the CFixedString into a String if it contains valid Unicode data.

On failure, ownership of the original CFixedString is returned.

[src]

Converts the CFixedString into a CString. If necessary, the buffer will be extended to make room for a final null byte. If the buffer does not need to be extended, no allocation will be performed.

[src]

Converts the CFixedString into a byte buffer. The length of the buffer will equal the length of the string up to but not including the first null byte. The capacity of the buffer will equal the limit of the CFixedString.

[src]

Converts the CFixedString into a byte buffer. The length of the buffer will equal the limit of the CFixedString. The buffer may contain garbage values after the first null byte.

[src]

Extracts a CFixedStr slice containing the entire buffer.

[src]

Extracts a mutable CFixedStr slice containing the entire buffer.

[src]

Converts this CFixedString into a boxed CFixedStr

Methods from Deref<Target = CFixedStr>

[src]

Returns the inner pointer to this CFixedStr.

Safety

It is your responsibility to make sure the underlying memory is not freed to early.

[src]

Returns the inner pointer to this mutable CFixedStr.

Safety

It is your responsibility to make sure the underlying memory is not freed to early.

[src]

Returns the limit of this CFixedStr. This corresponds to the longest possible string that could be stored here.

[src]

Returns the length of the CFixedStr. This operation takes linear time.

[src]

Coverts this CFixedStr to a byte slice. The length of the slice is equal to the length of the string up to but not including the first null byte.

[src]

Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the length of the string up to but not including the first null byte.

[src]

Coverts this CFixedStr to a byte slice. The length of the slice is equal to the length of the string up to and including the first null byte, if it exists.

[src]

Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the length of the string up to and including the first null byte, if it exists.

[src]

Coverts this CFixedStr to a byte slice. The length of the slice is equal to the limit of the CFixedStr.

[src]

Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the limit of the CFixedStr.

[src]

Yields a &str slice if the CFixedStr contains valid UTF-8.

This function will calculate the length of this string and check for UTF-8 validity, and then return the &str if it's valid.

[src]

Converts a CFixedStr into a Cow.

This function will calculate the length of this string and then return the resulting slice as a Cow<str>, replacing any invalid UTF-8 sequences with U+FFFD REPLACEMENT CHARACTER.

[src]

Converts a CFixedStr into a Cow.

This function will calculate the length of this string, and then ensure it has a terminating null byte. If a null byte is already present, the Borrowed variant can be returned.

Trait Implementations

impl Drop for CFixedString
[src]

[src]

Executes the destructor for this type. Read more

impl Deref for CFixedString
[src]

The resulting type after dereferencing.

[src]

Dereferences the value.

impl DerefMut for CFixedString
[src]

[src]

Mutably dereferences the value.

impl Debug for CFixedString
[src]

[src]

Formats the value using the given formatter.

impl Clone for CFixedString
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Hash for CFixedString
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl PartialEq for CFixedString
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

1.0.0
[src]

This method tests for !=.

impl Eq for CFixedString
[src]

impl PartialOrd for CFixedString
[src]

[src]

This method returns an ordering between self and other values if one exists. Read more

1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Ord for CFixedString
[src]

[src]

This method returns an Ordering between self and other. Read more

1.22.0
[src]

Compares and returns the maximum of two values. Read more

1.22.0
[src]

Compares and returns the minimum of two values. Read more

impl Default for CFixedString
[src]

[src]

Returns the "default value" for a type. Read more

impl Borrow<CFixedStr> for CFixedString
[src]

[src]

Immutably borrows from an owned value. Read more

impl<'a> From<&'a CFixedStr> for CFixedString
[src]

[src]

Performs the conversion.

impl Index<RangeFull> for CFixedString
[src]

The returned type after indexing.

[src]

Performs the indexing (container[index]) operation.

impl IndexMut<RangeFull> for CFixedString
[src]

[src]

Performs the mutable indexing (container[index]) operation.

impl AsRef<CFixedStr> for CFixedString
[src]

[src]

Performs the conversion.