pub struct HeaplessCStringCodec<const N: usize>;Expand description
A codec for heapless C-style null-terminated strings.
§Examples
use byten::{HeaplessCStringCodec, Encoder, Decoder, Measurer, EncoderToVec as _};
let s: heapless::CString<32> = heapless::CString::from_bytes_with_nul(b"Hello, world!\0").unwrap();
let codec = HeaplessCStringCodec::<32>::new();
let encoded = codec.encode_to_heapless_vec::<32>(&s).unwrap();
assert_eq!(encoded.as_slice(), b"Hello, world!\0");
let mut decode_offset = 0;
let decoded: heapless::CString<32> = codec.decode(&encoded, &mut decode_offset).unwrap();
assert_eq!(decoded, s);
assert_eq!(decode_offset, encoded.len());
let size = codec.measure(&s).unwrap();
assert_eq!(size, encoded.len());Implementations§
Trait Implementations§
Source§impl<'encoded, 'decoded, const N: usize> Decoder<'encoded, 'decoded> for HeaplessCStringCodec<N>where
'encoded: 'decoded,
impl<'encoded, 'decoded, const N: usize> Decoder<'encoded, 'decoded> for HeaplessCStringCodec<N>where
'encoded: 'decoded,
Source§impl<const N: usize> Encoder for HeaplessCStringCodec<N>
impl<const N: usize> Encoder for HeaplessCStringCodec<N>
Auto Trait Implementations§
impl<const N: usize> Freeze for HeaplessCStringCodec<N>
impl<const N: usize> RefUnwindSafe for HeaplessCStringCodec<N>
impl<const N: usize> Send for HeaplessCStringCodec<N>
impl<const N: usize> Sync for HeaplessCStringCodec<N>
impl<const N: usize> Unpin for HeaplessCStringCodec<N>
impl<const N: usize> UnwindSafe for HeaplessCStringCodec<N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more