Struct Store
pub struct Store { /* private fields */ }Expand description
Store is a core element of a document. It contains all of the information, like block store map of root types, pending updates waiting to be applied once a missing update information arrives and all subscribed callbacks.
Implementations§
§impl Store
impl Store
pub fn pending_update(&self) -> Option<&PendingUpdate>
pub fn pending_update(&self) -> Option<&PendingUpdate>
If there are any missing updates, this method will return a pending update which contains updates waiting for their predecessors to arrive in order to be integrated.
pub fn pending_update_mut(&mut self) -> Option<&mut PendingUpdate>
pub fn pending_update_mut(&mut self) -> Option<&mut PendingUpdate>
Returns a mutable reference to the pending update if it exists.
pub fn pending_ds(&self) -> Option<&DeleteSet>
pub fn pending_ds(&self) -> Option<&DeleteSet>
If there are some delete updates waiting for missing updates to arrive in order to be applied, this method will return them.
pub fn pending_ds_mut(&mut self) -> Option<&mut DeleteSet>
pub fn pending_ds_mut(&mut self) -> Option<&mut DeleteSet>
Returns a mutable reference to the pending delete set if it exists.
pub fn is_subdoc(&self) -> bool
pub fn get_local_state(&self) -> u32
pub fn get_local_state(&self) -> u32
Get the latest clock sequence number observed and integrated into a current store client. This is exclusive value meaning it describes a clock value of the beginning of the next block that’s about to be inserted. You cannot use that clock value to find any existing block content.
pub fn encode_state_from_snapshot<E>(
&self,
snapshot: &Snapshot,
encoder: &mut E,
) -> Result<(), Error>where
E: Encoder,
pub fn encode_state_from_snapshot<E>(
&self,
snapshot: &Snapshot,
encoder: &mut E,
) -> Result<(), Error>where
E: Encoder,
Encodes all changes from current transaction block store up to a given snapshot.
This enables to encode state of a document at some specific point in the past.
pub fn encode_diff<E>(&self, sv: &StateVector, encoder: &mut E)where
E: Encoder,
pub fn encode_diff<E>(&self, sv: &StateVector, encoder: &mut E)where
E: Encoder,
Compute a diff to sync with another client.
This is the most efficient method to sync with another client by only syncing the differences.
The sync protocol in Yrs/js is:
- Send StateVector to the other client.
- The other client comutes a minimal diff to sync by using the StateVector.
pub fn get_type_from_path( &self, path: &VecDeque<PathSegment>, ) -> Option<BranchPtr>
pub fn subdocs(&self) -> SubdocsIter<'_>
pub fn subdocs(&self) -> SubdocsIter<'_>
Returns a collection of sub documents linked within the structures of this document store.
pub fn subdoc_guids(&self) -> SubdocGuids<'_>
pub fn subdoc_guids(&self) -> SubdocGuids<'_>
Returns a collection of globally unique identifiers of sub documents linked within the structures of this document store.
Trait Implementations§
§impl Encode for Store
impl Encode for Store
§fn encode<E>(&self, encoder: &mut E)where
E: Encoder,
fn encode<E>(&self, encoder: &mut E)where
E: Encoder,
Encodes the document state to a binary format.
Document updates are idempotent and commutative. Caveats:
- It doesn’t matter in which order document updates are applied.
- As long as all clients receive the same document updates, all clients end up with the same content.
- Even if an update contains known information, the unknown information is extracted and integrated into the document structure.
Auto Trait Implementations§
impl Freeze for Store
impl !RefUnwindSafe for Store
impl !Send for Store
impl !Sync for Store
impl Unpin for Store
impl !UnwindSafe for Store
Blanket Implementations§
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
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.