Trait rkyv_dyn::DynSerializer
source · pub trait DynSerializer {
// Required methods
fn pos_dyn(&self) -> usize;
fn write_dyn(&mut self, bytes: &[u8]) -> Result<(), DynError>;
unsafe fn push_scratch_dyn(
&mut self,
layout: Layout
) -> Result<NonNull<[u8]>, DynError>;
unsafe fn pop_scratch_dyn(
&mut self,
ptr: NonNull<u8>,
layout: Layout
) -> Result<(), DynError>;
}
Expand description
An object-safe version of Serializer
.
Instead of an associated error type, DynSerializer
returns the DynError
type. If you have
a serializer that already implements Serializer
, then it will automatically implement
DynSerializer
.
Required Methods§
sourcefn write_dyn(&mut self, bytes: &[u8]) -> Result<(), DynError>
fn write_dyn(&mut self, bytes: &[u8]) -> Result<(), DynError>
Attempts to write the given bytes to the serializer.
sourceunsafe fn pop_scratch_dyn(
&mut self,
ptr: NonNull<u8>,
layout: Layout
) -> Result<(), DynError>
unsafe fn pop_scratch_dyn( &mut self, ptr: NonNull<u8>, layout: Layout ) -> Result<(), DynError>
Deallocates previously allocated scratch space.
Safety
ptr
must be the scratch memory last allocated withpush_scratch
.layout
must be the same layout that was used to allocate that block of memory.
Trait Implementations§
source§impl<'a> Fallible for dyn DynSerializer + 'a
impl<'a> Fallible for dyn DynSerializer + 'a
source§impl<'a> ScratchSpace for dyn DynSerializer + 'a
impl<'a> ScratchSpace for dyn DynSerializer + 'a
source§impl<'a> Serializer for dyn DynSerializer + 'a
impl<'a> Serializer for dyn DynSerializer + 'a
source§fn write(&mut self, bytes: &[u8]) -> Result<(), Self::Error>
fn write(&mut self, bytes: &[u8]) -> Result<(), Self::Error>
Attempts to write the given bytes to the serializer.
source§fn pad(&mut self, padding: usize) -> Result<(), Self::Error>
fn pad(&mut self, padding: usize) -> Result<(), Self::Error>
Advances the given number of bytes as padding.
source§fn align(&mut self, align: usize) -> Result<usize, Self::Error>
fn align(&mut self, align: usize) -> Result<usize, Self::Error>
Aligns the position of the serializer to the given alignment.
source§fn align_for<T>(&mut self) -> Result<usize, Self::Error>
fn align_for<T>(&mut self) -> Result<usize, Self::Error>
Aligns the position of the serializer to be suitable to write the given type.
source§unsafe fn resolve_aligned<T>(
&mut self,
value: &T,
resolver: <T as Archive>::Resolver
) -> Result<usize, Self::Error>where
T: Archive + ?Sized,
unsafe fn resolve_aligned<T>( &mut self, value: &T, resolver: <T as Archive>::Resolver ) -> Result<usize, Self::Error>where T: Archive + ?Sized,
Resolves the given value with its resolver and writes the archived type. Read more
source§fn serialize_value<T>(&mut self, value: &T) -> Result<usize, Self::Error>where
T: Serialize<Self>,
fn serialize_value<T>(&mut self, value: &T) -> Result<usize, Self::Error>where T: Serialize<Self>,
Archives the given object and returns the position it was archived at.
source§unsafe fn resolve_unsized_aligned<T>(
&mut self,
value: &T,
to: usize,
metadata_resolver: <T as ArchiveUnsized>::MetadataResolver
) -> Result<usize, Self::Error>where
T: ArchiveUnsized + ?Sized,
unsafe fn resolve_unsized_aligned<T>( &mut self, value: &T, to: usize, metadata_resolver: <T as ArchiveUnsized>::MetadataResolver ) -> Result<usize, Self::Error>where T: ArchiveUnsized + ?Sized,
Resolves the given reference with its resolver and writes the archived reference. Read more
source§fn serialize_unsized_value<T>(
&mut self,
value: &T
) -> Result<usize, Self::Error>where
T: SerializeUnsized<Self> + ?Sized,
fn serialize_unsized_value<T>( &mut self, value: &T ) -> Result<usize, Self::Error>where T: SerializeUnsized<Self> + ?Sized,
Archives a reference to the given object and returns the position it was archived at.