pub enum EntryOperation {
Overwrite(Entry),
Extend(Entry),
Touch(Entry),
JoinSubring(String, Did),
Tombstone(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.
JoinSubring(String, Did)
Join subring.
Tombstone(Entry)
Tombstone observed relay-message payloads in a two-phase set.
The payload identifies the relay-message 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.
Implementations§
Source§impl EntryOperation
impl EntryOperation
Sourcepub fn stamped(self, actor: Did) -> Result<Self>
pub fn stamped(self, actor: Did) -> Result<Self>
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>
pub fn gen_default_entry(self) -> Result<Entry>
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<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for EntryOperation
Source§impl HandleMsg<EntryOperation> for MessageHandler
impl HandleMsg<EntryOperation> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 EntryOperation,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 EntryOperation,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl PartialEq for EntryOperation
impl PartialEq for EntryOperation
Source§fn eq(&self, other: &EntryOperation) -> bool
fn eq(&self, other: &EntryOperation) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for EntryOperation
impl Serialize for EntryOperation
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
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>
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>
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.