Struct uefi::CStr16[][src]

#[repr(transparent)]
pub struct CStr16(_);
Expand description

An UCS-2 null-terminated string

This type is largely inspired by std::ffi::CStr, see the documentation of CStr for more details on its semantics.

Implementations

Wraps a raw UEFI string with a safe C string wrapper

Safety

The function will start accessing memory from ptr until the first null byte. It’s the callers responsability to ensure ptr points to a valid string, in accessible memory.

Creates a C string wrapper from a u16 slice

Since not every u16 value is a valid UCS-2 code point, this function must do a bit more validity checking than CStr::from_bytes_with_nul

Unsafely creates a C string wrapper from a u16 slice.

Safety

It’s the callers responsability to ensure chars is a valid UCS-2 null-terminated string, with no interior null bytes.

Returns the inner pointer to this C string

Converts this C string to a u16 slice

Converts this C string to a u16 slice containing the trailing 0 char

Returns an iterator over this C string

Writes each Char16 as a [´char´] (4 bytes long in Rust language) into the buffer. It is up the the implementer of core::fmt::Write to convert the char to a string with proper encoding/charset. For example, in the case of [core::alloc::string::String] all Rust chars (UTF-32) get converted to UTF-8.

Example

let firmware_vendor_c16_str: CStr16 = ...;
// crate "arrayvec" uses stack-allocated arrays for Strings => no heap allocations
let mut buf = arrayvec::ArrayString::<128>::new();
firmware_vendor_c16_str.as_str_in_buf(&mut buf);
log::info!("as rust str: {}", buf.as_str());

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more