Trait rkyv_dyn::DynSerializer
source · [−]pub trait DynSerializer {
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
Attempts to write the given bytes to the serializer.
Trait Implementations
sourceimpl<'a> Fallible for dyn DynSerializer + 'a
impl<'a> Fallible for dyn DynSerializer + 'a
sourceimpl<'a> ScratchSpace for dyn DynSerializer + 'a
impl<'a> ScratchSpace for dyn DynSerializer + 'a
sourceimpl<'a> Serializer for dyn DynSerializer + 'a
impl<'a> Serializer for dyn DynSerializer + 'a
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourcefn 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.
sourceunsafe 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
sourcefn 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.
sourceunsafe 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
sourcefn 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.