Struct crdts::glist::GList [−][src]
pub struct GList<T: Ord> { /* fields omitted */ }
The GList is a grow-only list, that is, it allows inserts but not deletes. Elements in the list are paths through an ordered tree, the tree grows deeper when we try to insert between two elements who were inserted concurrently and whose paths happen to have the same prefix.
Implementations
impl<T: Ord + Clone> GList<T>
[src]
pub fn new() -> Self
[src]
Create an empty GList
pub fn read<'a, C: FromIterator<&'a T>>(&'a self) -> C
[src]
Read the elements of the list into a user defined container
pub fn read_into<C: FromIterator<T>>(self) -> C
[src]
Read the elements of the list into a user defined container, consuming the list in the process.
pub fn iter(&self) -> Iter<'_, Identifier<T>>
[src]
Iterate over the elements of the list
pub fn get(&self, idx: usize) -> Option<&Identifier<T>>
[src]
Return the element and it’s marker at the specified index
pub fn insert_before(
&self,
high_id_opt: Option<&Identifier<T>>,
elem: T
) -> Op<T>
[src]
&self,
high_id_opt: Option<&Identifier<T>>,
elem: T
) -> Op<T>
Generate an Op to insert the given element before the given marker
pub fn insert_after(&self, low_id_opt: Option<&Identifier<T>>, elem: T) -> Op<T>
[src]
Generate an insert op to insert the given element after the given marker
pub fn len(&self) -> usize
[src]
Get the length of the list.
pub fn is_empty(&self) -> bool
[src]
Check if the list is empty.
pub fn first(&self) -> Option<&Identifier<T>>
[src]
Get first element of the sequence represented by the list.
pub fn last(&self) -> Option<&Identifier<T>>
[src]
Get last element of the sequence represented by the list.
Trait Implementations
impl<T: Clone + Ord> Clone for GList<T>
[src]
impl<T: Ord> CmRDT for GList<T>
[src]
type Op = Op<T>
Op defines a mutation to the CRDT. As long as Op’s from one actor are replayed in exactly the same order they were generated by that actor, the CRDT will converge. In other words, we must have a total ordering on each actors operations, while requiring only a partial order over all ops. E.g. Read more
type Validation = Infallible
The validation error returned by validate_op
.
fn validate_op(&self, _: &Self::Op) -> Result<(), Self::Validation>
[src]
fn apply(&mut self, op: Self::Op)
[src]
impl<T: Ord> CvRDT for GList<T>
[src]
type Validation = Infallible
The validation error returned by validate_merge
.
fn validate_merge(&self, _: &Self) -> Result<(), Self::Validation>
[src]
fn merge(&mut self, other: Self)
[src]
impl<T: Debug + Ord> Debug for GList<T>
[src]
impl<T: Ord> Default for GList<T>
[src]
impl<'de, T: Ord> Deserialize<'de> for GList<T> where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl<T: Display + Ord> Display for GList<T>
[src]
impl<T: Eq + Ord> Eq for GList<T>
[src]
impl<T: Hash + Ord> Hash for GList<T>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T: PartialEq + Ord> PartialEq<GList<T>> for GList<T>
[src]
impl<T: Ord> Serialize for GList<T> where
T: Serialize,
[src]
T: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<T: Ord> StructuralEq for GList<T>
[src]
impl<T: Ord> StructuralPartialEq for GList<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for GList<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for GList<T> where
T: Send,
T: Send,
impl<T> Sync for GList<T> where
T: Sync,
T: Sync,
impl<T> Unpin for GList<T>
impl<T> UnwindSafe for GList<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,