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
sourceimpl ArchiveWith<SystemTime> for UnixTimestamp
impl ArchiveWith<SystemTime> for UnixTimestamp
type Archived = ArchivedDuration
type Archived = ArchivedDuration
The archived type of a With<F, Self>
.
sourceunsafe 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 more
sourceimpl Debug for UnixTimestamp
impl Debug for UnixTimestamp
sourceimpl<D: Fallible + ?Sized> DeserializeWith<ArchivedDuration, SystemTime, D> for UnixTimestamp
impl<D: Fallible + ?Sized> DeserializeWith<ArchivedDuration, SystemTime, D> for UnixTimestamp
sourcefn 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.
sourceimpl<S: Fallible + ?Sized> SerializeWith<SystemTime, S> for UnixTimestamp where
S::Error: From<UnixTimestampError>,
impl<S: Fallible + ?Sized> SerializeWith<SystemTime, S> for UnixTimestamp where
S::Error: From<UnixTimestampError>,
sourcefn 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 RefUnwindSafe for UnixTimestamp
impl Send for UnixTimestamp
impl Sync for UnixTimestamp
impl Unpin for UnixTimestamp
impl UnwindSafe for UnixTimestamp
Blanket Implementations
sourceimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
sourcefn pointer_metadata(_: &Self::ArchivedMetadata) -> <Self as Pointee>::Metadata
fn pointer_metadata(_: &Self::ArchivedMetadata) -> <Self as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more