pub trait ZeroCopyBuilder<E: Endian = NativeEndian, const ALIGN: usize = 0> {
type Target: ZeroCopy;
// Required method
fn build_to_target(
self,
builder: &mut ZeroBuilder,
offset: usize,
) -> Self::Target;
// Provided method
fn build(self, builder: &mut ZeroBuilder) -> usize
where Self: Sized { ... }
}Available on crate feature
zero-copy only.Expand description
A trait for types that can be built into a zero-copy structure.
Required Associated Types§
Required Methods§
Sourcefn build_to_target(
self,
builder: &mut ZeroBuilder,
offset: usize,
) -> Self::Target
Available on crate feature alloc only.
fn build_to_target( self, builder: &mut ZeroBuilder, offset: usize, ) -> Self::Target
alloc only.Build the zero-copy type into the builder.
Provided Methods§
Sourcefn build(self, builder: &mut ZeroBuilder) -> usizewhere
Self: Sized,
Available on crate feature alloc only.
fn build(self, builder: &mut ZeroBuilder) -> usizewhere
Self: Sized,
alloc only.Build the zero-copy type into the builder and return its offset.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<E: Endian, T, B, const ALIGN: usize> ZeroCopyBuilder<E, ALIGN> for Vec<B>where
B: ZeroCopyBuilder<E, 0, Target = T>,
T: ZeroCopy,
Available on crate feature alloc only.
impl<E: Endian, T, B, const ALIGN: usize> ZeroCopyBuilder<E, ALIGN> for Vec<B>where
B: ZeroCopyBuilder<E, 0, Target = T>,
T: ZeroCopy,
Available on crate feature
alloc only.Source§fn build_to_target(
self,
builder: &mut ZeroBuilder,
offset: usize,
) -> Self::Target
fn build_to_target( self, builder: &mut ZeroBuilder, offset: usize, ) -> Self::Target
Builds the object into the target location.
Source§impl<E: Endian, T, B, const N: usize> ZeroCopyBuilder<E> for [B; N]where
B: ZeroCopyBuilder<E, 0, Target = T>,
T: ZeroCopy,
impl<E: Endian, T, B, const N: usize> ZeroCopyBuilder<E> for [B; N]where
B: ZeroCopyBuilder<E, 0, Target = T>,
T: ZeroCopy,
Source§fn build_to_target(
self,
builder: &mut ZeroBuilder,
offset: usize,
) -> Self::Target
fn build_to_target( self, builder: &mut ZeroBuilder, offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for String
Available on crate feature alloc only.
impl<E: Endian> ZeroCopyBuilder<E> for String
Available on crate feature
alloc only.Source§fn build_to_target(
self,
builder: &mut ZeroBuilder,
offset: usize,
) -> Self::Target
fn build_to_target( self, builder: &mut ZeroBuilder, offset: usize, ) -> Self::Target
Builds the object into the target location.
Source§impl<E: Endian> ZeroCopyBuilder<E> for bool
impl<E: Endian> ZeroCopyBuilder<E> for bool
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for char
impl<E: Endian> ZeroCopyBuilder<E> for char
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for f32
impl<E: Endian> ZeroCopyBuilder<E> for f32
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for f64
impl<E: Endian> ZeroCopyBuilder<E> for f64
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for i8
impl<E: Endian> ZeroCopyBuilder<E> for i8
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for i16
impl<E: Endian> ZeroCopyBuilder<E> for i16
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for i32
impl<E: Endian> ZeroCopyBuilder<E> for i32
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for i64
impl<E: Endian> ZeroCopyBuilder<E> for i64
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for i128
impl<E: Endian> ZeroCopyBuilder<E> for i128
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for u8
impl<E: Endian> ZeroCopyBuilder<E> for u8
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for u16
impl<E: Endian> ZeroCopyBuilder<E> for u16
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for u32
impl<E: Endian> ZeroCopyBuilder<E> for u32
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for u64
impl<E: Endian> ZeroCopyBuilder<E> for u64
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.Source§impl<E: Endian> ZeroCopyBuilder<E> for u128
impl<E: Endian> ZeroCopyBuilder<E> for u128
Source§fn build_to_target(
self,
_builder: &mut ZeroBuilder,
_offset: usize,
) -> Self::Target
fn build_to_target( self, _builder: &mut ZeroBuilder, _offset: usize, ) -> Self::Target
Available on crate feature
alloc only.