pub enum StorageSyncDestination {
PhysicalOwner(Did),
PlacementKey(Did),
}Expand description
Destination semantics for a storage sync hand-off.
Routing law:
StorageSyncDestination::PhysicalOwneris routed as a node DID through physical Chord membership.StorageSyncDestination::PlacementKeyis routed through storage ownership for that placement key.
Safety: a physical-owner receiver still validates each placement before acking, so a stale sender cannot trigger local cleanup for a key the receiver does not own.
Variants§
PhysicalOwner(Did)
Route to a physical node DID, then let the receiver validate entry ownership.
PlacementKey(Did)
Route through storage ownership for this placement key.
Implementations§
Source§impl StorageSyncDestination
impl StorageSyncDestination
Sourcepub const fn physical_owner(did: Did) -> Self
pub const fn physical_owner(did: Did) -> Self
Build a physical-owner sync destination.
Sourcepub const fn placement_key(did: Did) -> Self
pub const fn placement_key(did: Did) -> Self
Build a placement-key sync destination.
Sourcepub const fn route(self) -> StorageSyncRoute
pub const fn route(self) -> StorageSyncRoute
Return the routing semantics for this destination.
Trait Implementations§
Source§impl Clone for StorageSyncDestination
impl Clone for StorageSyncDestination
Source§fn clone(&self) -> StorageSyncDestination
fn clone(&self) -> StorageSyncDestination
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for StorageSyncDestination
Source§impl Debug for StorageSyncDestination
impl Debug for StorageSyncDestination
Source§impl<'de> Deserialize<'de> for StorageSyncDestination
impl<'de> Deserialize<'de> for StorageSyncDestination
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for StorageSyncDestination
Source§impl Ord for StorageSyncDestination
impl Ord for StorageSyncDestination
Source§fn cmp(&self, other: &StorageSyncDestination) -> Ordering
fn cmp(&self, other: &StorageSyncDestination) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl PartialEq for StorageSyncDestination
impl PartialEq for StorageSyncDestination
Source§impl PartialOrd for StorageSyncDestination
impl PartialOrd for StorageSyncDestination
Source§impl Serialize for StorageSyncDestination
impl Serialize for StorageSyncDestination
impl StructuralPartialEq for StorageSyncDestination
Auto Trait Implementations§
impl Freeze for StorageSyncDestination
impl RefUnwindSafe for StorageSyncDestination
impl Send for StorageSyncDestination
impl Sync for StorageSyncDestination
impl Unpin for StorageSyncDestination
impl UnsafeUnpin for StorageSyncDestination
impl UnwindSafe for StorageSyncDestination
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<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.