Struct rkyv::with::UnixTimestamp
source · pub struct UnixTimestamp;
Expand description
A wrapper that converts a SystemTime
to a
Duration
since UNIX_EPOCH
.
If the serialized time occurs before the UNIX epoch, serialization will panic during resolve
.
The resulting archived time will be an ArchivedDuration
relative to the UNIX epoch.
Regular serializers don’t support the custom error handling needed for this type by default. To
use this wrapper, a custom serializer with an error type satisfying
<S as Fallible>::Error: From<UnixTimestampError>
must be provided.
§Example
use rkyv::{Archive, with::UnixTimestamp};
use std::time::SystemTime;
#[derive(Archive)]
struct Example {
#[with(UnixTimestamp)]
time: SystemTime,
}
Trait Implementations§
source§impl ArchiveWith<SystemTime> for UnixTimestamp
impl ArchiveWith<SystemTime> for UnixTimestamp
§type Archived = ArchivedDuration
type Archived = ArchivedDuration
The archived type of a
With<F, Self>
.source§unsafe fn resolve_with(
field: &SystemTime,
pos: usize,
resolver: Self::Resolver,
out: *mut Self::Archived,
)
unsafe fn resolve_with( field: &SystemTime, pos: usize, resolver: Self::Resolver, out: *mut Self::Archived, )
Resolves the archived type using a reference to the field type
F
. Read moresource§impl Debug for UnixTimestamp
impl Debug for UnixTimestamp
source§impl<D: Fallible + ?Sized> DeserializeWith<ArchivedDuration, SystemTime, D> for UnixTimestamp
impl<D: Fallible + ?Sized> DeserializeWith<ArchivedDuration, SystemTime, D> for UnixTimestamp
source§fn deserialize_with(
field: &ArchivedDuration,
_: &mut D,
) -> Result<SystemTime, D::Error>
fn deserialize_with( field: &ArchivedDuration, _: &mut D, ) -> Result<SystemTime, D::Error>
Deserializes the field type
F
using the given deserializer.source§impl<S: Fallible + ?Sized> SerializeWith<SystemTime, S> for UnixTimestamp
impl<S: Fallible + ?Sized> SerializeWith<SystemTime, S> for UnixTimestamp
source§fn serialize_with(
field: &SystemTime,
_: &mut S,
) -> Result<Self::Resolver, S::Error>
fn serialize_with( field: &SystemTime, _: &mut S, ) -> Result<Self::Resolver, S::Error>
Serializes the field type
F
using the given serializer.Auto Trait Implementations§
impl Freeze for UnixTimestamp
impl RefUnwindSafe for UnixTimestamp
impl Send for UnixTimestamp
impl Sync for UnixTimestamp
impl Unpin for UnixTimestamp
impl UnwindSafe for UnixTimestamp
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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