pub enum EntryOperation {
Overwrite(Entry),
Extend(Entry),
Touch(Entry),
Tombstone(Entry),
CompactData(Entry),
}Expand description
Operations supported by a DHT storage entry.
Variants§
Overwrite(Entry)
Create or update an Entry.
Extend(Entry)
Touch(Entry)
Extend data to a Data kind Entry uniquely.
If any element is already existed, move it to the end of the data vector.
This operation will create an Entry if it does not exist.
Tombstone(Entry)
Tombstone observed data or relay-message payloads in a two-phase set.
The payload identifies the entry carrier and the values to remove. If CRDT dots are present, those dots are the remove witnesses; otherwise the receiver tombstones currently observed dots with matching payload bytes.
CompactData(Entry)
Compact a Data kind entry after removing listed payload bytes.
The receiver computes the compacted live set from its current local entry, not from a sender snapshot. This preserves concurrent live writes already observed by the storage owner. The operation carries one source-stamped register floor shared by every replica, so divergent storage owners stay join-compatible after compaction.
Implementations§
Source§impl EntryOperation
impl EntryOperation
Sourcepub fn stamped(self, actor: Did) -> Result<EntryOperation, Error>
pub fn stamped(self, actor: Did) -> Result<EntryOperation, Error>
Return this operation with CRDT versions assigned at the operation boundary.
Existing CRDT witnesses are preserved so forwarded operations keep the origin’s dot/version instead of being reissued by every routing hop.
Sourcepub fn gen_default_entry(self) -> Result<Entry, Error>
pub fn gen_default_entry(self) -> Result<Entry, Error>
Generate a target Entry when it is not existed.
Trait Implementations§
Source§impl Clone for EntryOperation
impl Clone for EntryOperation
Source§fn clone(&self) -> EntryOperation
fn clone(&self) -> EntryOperation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EntryOperation
impl Debug for EntryOperation
Source§impl<'de> Deserialize<'de> for EntryOperation
impl<'de> Deserialize<'de> for EntryOperation
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<EntryOperation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<EntryOperation, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for EntryOperation
Source§impl PartialEq for EntryOperation
impl PartialEq for EntryOperation
Source§impl Serialize for EntryOperation
impl Serialize for EntryOperation
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for EntryOperation
Auto Trait Implementations§
impl Freeze for EntryOperation
impl RefUnwindSafe for EntryOperation
impl Send for EntryOperation
impl Sync for EntryOperation
impl Unpin for EntryOperation
impl UnsafeUnpin for EntryOperation
impl UnwindSafe for EntryOperation
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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
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
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
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> ⓘ
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>
impl<T> MaybeSend for T
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
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.