pub struct ZTArray<'a, T>where
T: DecoderFor<'a, T>,{ /* private fields */ }
Expand description
A zero-terminated array.
Implementations§
Source§impl<'a, T> ZTArray<'a, T>where
T: DecoderFor<'a, T>,
impl<'a, T> ZTArray<'a, T>where
T: DecoderFor<'a, T>,
Source§impl<'a, T> ZTArray<'a, T>where
T: DataTypeFixedSize + DecoderFor<'a, T>,
impl<'a, T> ZTArray<'a, T>where
T: DataTypeFixedSize + DecoderFor<'a, T>,
Trait Implementations§
Source§impl<'a, T> ArrayExt<'a> for ZTArray<'a, T>where
T: DecoderFor<'a, T>,
impl<'a, T> ArrayExt<'a> for ZTArray<'a, T>where
T: DecoderFor<'a, T>,
Source§fn into_slice(self) -> &'a [u8] ⓘ
fn into_slice(self) -> &'a [u8] ⓘ
Convert the array into a slice of bytes.
Source§impl<'a, T> DataType for ZTArray<'a, T>where
T: DataType + DecoderFor<'a, T>,
impl<'a, T> DataType for ZTArray<'a, T>where
T: DataType + DecoderFor<'a, T>,
const META: StructFieldMeta
fn encode_usize(buf: &mut BufWriter<'_>, value: usize)
fn decode_usize(buf: &mut &[u8]) -> Result<usize, ParseError>
Source§impl<'a, T> DecoderFor<'a, ZTArray<'a, T>> for ZTArray<'a, T>where
T: DataType + DecoderFor<'a, T>,
impl<'a, T> DecoderFor<'a, ZTArray<'a, T>> for ZTArray<'a, T>where
T: DataType + DecoderFor<'a, T>,
fn decode_for(buf: &mut &'a [u8]) -> Result<ZTArray<'a, T>, ParseError>
Source§impl<T, IT> EncoderFor<ZTArray<'static, T>> for &[IT]
Slice encoder
impl<T, IT> EncoderFor<ZTArray<'static, T>> for &[IT]
Slice encoder
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T, const N: usize, IT> EncoderFor<ZTArray<'static, T>> for &[IT; N]
Array reference encoder
impl<T, const N: usize, IT> EncoderFor<ZTArray<'static, T>> for &[IT; N]
Array reference encoder
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T, IT> EncoderFor<ZTArray<'static, T>> for &Vec<IT>
Direct &Vec encoder
impl<T, IT> EncoderFor<ZTArray<'static, T>> for &Vec<IT>
Direct &Vec
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T, const N: usize, IT> EncoderFor<ZTArray<'static, T>> for [IT; N]
Array encoder
impl<T, const N: usize, IT> EncoderFor<ZTArray<'static, T>> for [IT; N]
Array encoder
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T, F, I, II, IT> EncoderFor<ZTArray<'static, T>> for Fwhere
T: DataType + DecoderFor<'static, T>,
F: Fn() -> I,
I: IntoIterator<Item = IT, IntoIter = II>,
IT: EncoderFor<T>,
II: Iterator<Item = IT>,
Function encoder: see the note about about non-restartable iterators.
impl<T, F, I, II, IT> EncoderFor<ZTArray<'static, T>> for Fwhere
T: DataType + DecoderFor<'static, T>,
F: Fn() -> I,
I: IntoIterator<Item = IT, IntoIter = II>,
IT: EncoderFor<T>,
II: Iterator<Item = IT>,
Function encoder: see the note about about non-restartable iterators.
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T, IT> EncoderFor<ZTArray<'static, T>> for Vec<IT>
Direct Vec encoder
impl<T, IT> EncoderFor<ZTArray<'static, T>> for Vec<IT>
Direct Vec
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T> EncoderFor<ZTArray<'static, T>> for ZTArray<'static, T>
Self encoder
impl<T> EncoderFor<ZTArray<'static, T>> for ZTArray<'static, T>
Self encoder
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<'a, T> IntoIterator for &ZTArray<'a, T>where
T: DecoderFor<'a, T>,
impl<'a, T> IntoIterator for &ZTArray<'a, T>where
T: DecoderFor<'a, T>,
Source§impl<'a, T> IntoIterator for ZTArray<'a, T>where
T: DecoderFor<'a, T>,
impl<'a, T> IntoIterator for ZTArray<'a, T>where
T: DecoderFor<'a, T>,
Source§impl<'a, const N: usize> PartialEq<&[u8; N]> for ZTArray<'a, u8>
Arrays of u8
can be compared to fixed-size slices.
impl<'a, const N: usize> PartialEq<&[u8; N]> for ZTArray<'a, u8>
Arrays of u8
can be compared to fixed-size slices.
impl<'a, T> Copy for ZTArray<'a, T>where
T: Copy + DecoderFor<'a, T>,
Auto Trait Implementations§
impl<'a, T> Freeze for ZTArray<'a, T>
impl<'a, T> RefUnwindSafe for ZTArray<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for ZTArray<'a, T>where
T: Send,
impl<'a, T> Sync for ZTArray<'a, T>where
T: Sync,
impl<'a, T> Unpin for ZTArray<'a, T>where
T: Unpin,
impl<'a, T> UnwindSafe for ZTArray<'a, T>where
T: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> EncoderFor<Rest<'static>> for T
impl<T> EncoderFor<Rest<'static>> for T
fn encode_for(&self, buf: &mut BufWriter<'_>)
Source§impl<T> EncoderForExt for Twhere
T: ?Sized,
impl<T> EncoderForExt for Twhere
T: ?Sized,
Source§fn to_vec<F>(&self) -> Vec<u8> ⓘwhere
F: 'static,
Self: EncoderFor<F>,
fn to_vec<F>(&self) -> Vec<u8> ⓘwhere
F: 'static,
Self: EncoderFor<F>,
Convert this builder into a vector of bytes. This is generally
not the most efficient way to perform serialization.
Source§fn encode_buffer<F>(&self, buf: &mut [u8]) -> Result<usize, usize>where
F: 'static,
Self: EncoderFor<F>,
fn encode_buffer<F>(&self, buf: &mut [u8]) -> Result<usize, usize>where
F: 'static,
Self: EncoderFor<F>,
Encode this builder into a given buffer. If the buffer is
too small, the function will return the number of bytes
required to encode the builder.
Source§fn encode_buffer_uninit<'a, F>(
&self,
buf: &'a mut [MaybeUninit<u8>],
) -> Result<&'a mut [u8], usize>where
F: 'static,
Self: EncoderFor<F>,
fn encode_buffer_uninit<'a, F>(
&self,
buf: &'a mut [MaybeUninit<u8>],
) -> Result<&'a mut [u8], usize>where
F: 'static,
Self: EncoderFor<F>,
Encode this builder into a given buffer. If the buffer is
too small, the function will return the number of bytes
required to encode the builder.