pub unsafe trait ToStr {
const TEXT_SIZE: usize;
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str;
fn to_str_if<'a>(&self, buffer: &'a mut [u8]) -> Option<&'a str> { ... }
}
Describes conversion to string
This trait is unsafe due to following requirements:
- Implementation must never read buffer, unless it was already written by it;
- It writes from the end of buffer (necessary only when you use
Buffer
).
Max size in bytes to hold the string
Implementation MUST guarantee that this size of buffer is enough to fit any possible textual
representation
Loading content...
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
Writes textual representation to the buffer
Returns str
stored in the provided buffer
Can panic, if buffer is not sufficient.
Or write only partially
Implementation is allowed to write any part of the buffer.
It is not allowed to read it, unless it was written already.
Debug builds must never invoke UB when calling this function.
UB in release mode is fine if one wants to write efficient code.
Loading content...
fn to_str_if<'a>(&self, buffer: &'a mut [u8]) -> Option<&'a str>
Performs textual conversion by writing to the buffer, if possible.
If not possible MUST return None
By default returns None
if buffer size is below TEXT_SIZE
Otherwise calls to_str()
while passing buffer as it is
Loading content...
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
Loading content...
impl ToStr for i8
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for i16
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for i32
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for i64
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for i128
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for isize
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for u8
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for u16
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for u32
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for u64
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for u128
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl ToStr for usize
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl<'a, T: ?Sized + ToStr> ToStr for &'a T
[src]
fn to_str<'b>(&self, buffer: &'b mut [u8]) -> &'b str
[src]
impl<'a, T: ?Sized + ToStr> ToStr for &'a mut T
[src]
fn to_str<'b>(&self, buffer: &'b mut [u8]) -> &'b str
[src]
impl<T> ToStr for *const T
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
impl<T> ToStr for *mut T
[src]
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str
[src]
Loading content...