PnCounter

Struct PnCounter 

Source
pub struct PnCounter { /* private fields */ }
Expand description

A state-based positive/negative counter with per-author components.

Implementations§

Source§

impl PnCounter

Source

pub const fn new() -> PnCounter

Constructs a zero counter.

Source

pub fn increment( &mut self, author: AuthorId, amount: u64, ) -> Result<(), CrdtError>

Adds to an author’s monotonic positive component.

Source

pub fn decrement( &mut self, author: AuthorId, amount: u64, ) -> Result<(), CrdtError>

Adds to an author’s monotonic negative component.

Source

pub fn value(&self) -> Result<i128, CrdtError>

Computes the signed counter value with overflow checking.

Source

pub fn merge(&mut self, other: &PnCounter) -> Result<(), CrdtError>

Deterministically combines another replica’s state.

Source

pub fn canonicalize_for_commit( &self, author: AuthorId, _sequence: u64, _context: &VersionVector, _next_operation: &mut u32, ) -> Result<PnCounter, CrdtError>

Attributes the visible signed value solely to the authenticated commit author.

Trait Implementations§

Source§

impl Clone for PnCounter

Source§

fn clone(&self) -> PnCounter

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PnCounter

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'bytes, Ctx> Decode<'bytes, Ctx> for PnCounter

Source§

fn decode( __d777: &mut Decoder<'bytes>, __ctx777: &mut Ctx, ) -> Result<PnCounter, Error>

Decode a value using the given Decoder. Read more
§

fn nil() -> Option<Self>

If possible, return a nil value of Self. Read more
Source§

impl Default for PnCounter

Source§

fn default() -> PnCounter

Returns the “default value” for a type. Read more
Source§

impl<Ctx> Encode<Ctx> for PnCounter

Source§

fn encode<__W777>( &self, __e777: &mut Encoder<__W777>, __ctx777: &mut Ctx, ) -> Result<(), Error<<__W777 as Write>::Error>>
where __W777: Write,

Encode a value of this type using the given Encoder. Read more
§

fn is_nil(&self) -> bool

Is this value of Self a nil value? Read more
Source§

impl FieldState for PnCounter

Source§

const CRDT_KIND: CrdtKind = CrdtKind::PnCounter

The deterministic merge strategy.
Source§

type Value = i128

The application value carried by this field strategy.
Source§

fn encode_state(&self) -> Result<Vec<u8>, RecordError>

Encodes complete causal field state.
Source§

fn decode_state(bytes: &[u8]) -> Result<PnCounter, RecordError>

Strictly decodes complete causal field state.
Source§

fn visible_values(&self) -> Result<Vec<Vec<u8>>, RecordError>

Encodes each currently visible application value for filtering and indexes.
Source§

fn merge_state(&mut self, other: &PnCounter) -> Result<(), RecordError>

Deterministically merges complete causal state from another replica.
Source§

fn canonicalize_for_commit( &self, author: AuthorId, sequence: u64, context: &VersionVector, next_operation: &mut u32, ) -> Result<PnCounter, RecordError>

Reissues all causal identities from one authenticated commit envelope.
Source§

fn value_type_name() -> &'static str

Stable Rust logical value type used in schema compatibility checks.
Source§

impl Merge for PnCounter

Source§

fn merge(&mut self, other: &PnCounter) -> Result<(), CrdtError>

Merges other into this value.
Source§

impl PartialEq for PnCounter

Source§

fn eq(&self, other: &PnCounter) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for PnCounter

Source§

impl StructuralPartialEq for PnCounter

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> RecordKey for T
where T: Encode<()> + for<'bytes> Decode<'bytes, ()>,

Source§

fn encode_key(&self) -> Result<Vec<u8>, RecordError>

Encodes this key into its unique durable representation.
Source§

fn decode_key(bytes: &[u8]) -> Result<T, RecordError>

Strictly decodes a key from its unique durable representation.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more