pub enum OwnedOrRef<'a, T> {
Borrowed(&'a T),
Owned(T),
}Expand description
A owned-or-ref enum
Variants§
Implementations§
Source§impl<T> OwnedOrRef<'_, T>
impl<T> OwnedOrRef<'_, T>
pub fn into_owned(self) -> T
Trait Implementations§
Source§impl<'a, F> Archive for OwnedOrRef<'a, F>where
F: Archive,
impl<'a, F> Archive for OwnedOrRef<'a, F>where
F: Archive,
Source§type Resolver = OwnedOrRefResolver<F>
type Resolver = OwnedOrRefResolver<F>
The resolver for this type. It must contain all the additional
information from serializing needed to make the archived type from
the normal type.
Source§fn resolve(&self, resolver: Self::Resolver, out: Place<Self::Archived>)
fn resolve(&self, resolver: Self::Resolver, out: Place<Self::Archived>)
Creates the archived version of this value at the given position and
writes it to the given output. Read more
Source§const COPY_OPTIMIZATION: CopyOptimization<Self> = _
const COPY_OPTIMIZATION: CopyOptimization<Self> = _
An optimization flag that allows the bytes of this type to be copied
directly to a writer instead of calling
serialize. Read moreSource§impl<'a, T, F> ArchiveWith<OwnedOrRef<'a, F>> for AsOwned<T>where
T: ArchiveWith<F>,
impl<'a, T, F> ArchiveWith<OwnedOrRef<'a, F>> for AsOwned<T>where
T: ArchiveWith<F>,
Source§type Archived = <T as ArchiveWith<F>>::Archived
type Archived = <T as ArchiveWith<F>>::Archived
The archived type of
Self with F.Source§type Resolver = <T as ArchiveWith<F>>::Resolver
type Resolver = <T as ArchiveWith<F>>::Resolver
The resolver of a
Self with F.Source§fn resolve_with(
field: &OwnedOrRef<'_, F>,
resolver: Self::Resolver,
out: Place<Self::Archived>,
)
fn resolve_with( field: &OwnedOrRef<'_, F>, resolver: Self::Resolver, out: Place<Self::Archived>, )
Resolves the archived type using a reference to the field type
F.Source§impl<T> AsRef<T> for OwnedOrRef<'_, T>
impl<T> AsRef<T> for OwnedOrRef<'_, T>
Source§impl<'a, T: Debug> Debug for OwnedOrRef<'a, T>
impl<'a, T: Debug> Debug for OwnedOrRef<'a, T>
Source§impl<'a, F, D: Fallible + ?Sized> Deserialize<OwnedOrRef<'a, F>, D> for Archived<OwnedOrRef<'a, F>>
impl<'a, F, D: Fallible + ?Sized> Deserialize<OwnedOrRef<'a, F>, D> for Archived<OwnedOrRef<'a, F>>
Source§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<OwnedOrRef<'a, F>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<OwnedOrRef<'a, F>, <D as Fallible>::Error>
Deserializes using the given deserializer
Source§impl<'a, T, F, D> DeserializeWith<<T as ArchiveWith<F>>::Archived, OwnedOrRef<'a, F>, D> for AsOwned<T>
impl<'a, T, F, D> DeserializeWith<<T as ArchiveWith<F>>::Archived, OwnedOrRef<'a, F>, D> for AsOwned<T>
Source§fn deserialize_with(
field: &T::Archived,
d: &mut D,
) -> Result<OwnedOrRef<'a, F>, D::Error>
fn deserialize_with( field: &T::Archived, d: &mut D, ) -> Result<OwnedOrRef<'a, F>, D::Error>
Deserializes the field type
F using the given deserializer.Source§impl<'a, T> From<&'a T> for OwnedOrRef<'a, T>
impl<'a, T> From<&'a T> for OwnedOrRef<'a, T>
Source§impl<T> From<T> for OwnedOrRef<'_, T>
impl<T> From<T> for OwnedOrRef<'_, T>
Source§impl<'a, 'b, A, B> PartialEq<OwnedOrRef<'a, A>> for OwnedOrRef<'b, B>where
B: PartialEq<A>,
impl<'a, 'b, A, B> PartialEq<OwnedOrRef<'a, A>> for OwnedOrRef<'b, B>where
B: PartialEq<A>,
Source§impl<'a, T, F, S> SerializeWith<OwnedOrRef<'a, F>, S> for AsOwned<T>
impl<'a, T, F, S> SerializeWith<OwnedOrRef<'a, F>, S> for AsOwned<T>
Source§fn serialize_with(
field: &OwnedOrRef<'_, F>,
s: &mut S,
) -> Result<Self::Resolver, S::Error>
fn serialize_with( field: &OwnedOrRef<'_, F>, s: &mut S, ) -> Result<Self::Resolver, S::Error>
Serializes the field type
F using the given serializer.impl<'a, T: Eq> Eq for OwnedOrRef<'a, T>
Auto Trait Implementations§
impl<'a, T> Freeze for OwnedOrRef<'a, T>where
T: Freeze,
impl<'a, T> RefUnwindSafe for OwnedOrRef<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for OwnedOrRef<'a, T>
impl<'a, T> Sync for OwnedOrRef<'a, T>where
T: Sync,
impl<'a, T> Unpin for OwnedOrRef<'a, T>where
T: Unpin,
impl<'a, T> UnsafeUnpin for OwnedOrRef<'a, T>where
T: UnsafeUnpin,
impl<'a, T> UnwindSafe for OwnedOrRef<'a, T>where
T: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§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> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
Creates the archived version of the metadata for this value.
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
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T> SerializeDyn for T
impl<T> SerializeDyn for T
Source§fn serialize_dyn(
&self,
serializer: &mut Strategy<Serializer<AlignedVec, ArenaHandle<'_>, Share>, Error>,
) -> Result<usize, Error>
fn serialize_dyn( &self, serializer: &mut Strategy<Serializer<AlignedVec, ArenaHandle<'_>, Share>, Error>, ) -> Result<usize, Error>
Writes the value to the serializer and returns the position it was written to.