#![warn(missing_docs)]
#![allow(clippy::style)]
#![no_std]
mod buffer;
mod numeric;
mod utils;
pub use buffer::Buffer;
pub type Buffer8 = Buffer<{i8::TEXT_SIZE}>;
pub type Buffer16 = Buffer<{i16::TEXT_SIZE}>;
pub type Buffer32 = Buffer<{i32::TEXT_SIZE}>;
pub type Buffer64 = Buffer<{i64::TEXT_SIZE}>;
pub type BufferSized = Buffer<{isize::TEXT_SIZE}>;
pub type Buffer128 = Buffer<{i128::TEXT_SIZE}>;
pub unsafe trait ToStr {
const TEXT_SIZE: usize;
fn to_str<'a>(&self, buffer: &'a mut [u8]) -> &'a str;
#[inline]
fn to_str_if<'a>(&self, buffer: &'a mut [u8]) -> Option<&'a str> {
if buffer.len() < Self::TEXT_SIZE {
None
} else {
Some(self.to_str(buffer))
}
}
}
unsafe impl<T: ?Sized + ToStr> ToStr for &T {
const TEXT_SIZE: usize = T::TEXT_SIZE;
#[inline(always)]
fn to_str<'b>(&self, buffer: &'b mut [u8]) -> &'b str {
(&**self).to_str(buffer)
}
}
unsafe impl<T: ?Sized + ToStr> ToStr for &mut T {
const TEXT_SIZE: usize = T::TEXT_SIZE;
#[inline(always)]
fn to_str<'b>(&self, buffer: &'b mut [u8]) -> &'b str {
(&**self).to_str(buffer)
}
}