pub struct YMap(_);Expand description
Collection used to store key-value entries in an unordered manner. Keys are always represented as UTF-8 strings. Values can be any value type supported by Yrs: JSON-like primitives as well as shared data types.
In terms of conflict resolution, Map uses logical last-write-wins principle, meaning the past updates are automatically overridden and discarded by newer ones, while concurrent updates made by different peers are resolved into a single value using document id seniority to establish order.
Implementations§
source§impl YMap
impl YMap
sourcepub fn new(init: Option<Object>) -> Self
pub fn new(init: Option<Object>) -> Self
Creates a new preliminary instance of a YMap shared data type, with its state
initialized to provided parameter.
Preliminary instances can be nested into other shared data types such as YArray and YMap.
Once a preliminary instance has been inserted this way, it becomes integrated into ywasm
document store and cannot be nested again: attempt to do so will result in an exception.
sourcepub fn prelim(&self) -> bool
pub fn prelim(&self) -> bool
Returns true if this is a preliminary instance of YMap.
Preliminary instances can be nested into other shared data types such as YArray and YMap.
Once a preliminary instance has been inserted this way, it becomes integrated into ywasm
document store and cannot be nested again: attempt to do so will result in an exception.
sourcepub fn length(&self, txn: &ImplicitTransaction) -> u32
pub fn length(&self, txn: &ImplicitTransaction) -> u32
Returns a number of entries stored within this instance of YMap.
sourcepub fn to_json(&self, txn: &ImplicitTransaction) -> JsValue
pub fn to_json(&self, txn: &ImplicitTransaction) -> JsValue
Converts contents of this YMap instance into a JSON representation.
sourcepub fn set(&self, key: &str, value: JsValue, txn: &ImplicitTransaction)
pub fn set(&self, key: &str, value: JsValue, txn: &ImplicitTransaction)
Sets a given key-value entry within this instance of YMap. If another entry was
already stored under given key, it will be overridden with new value.
sourcepub fn delete(&mut self, key: &str, txn: &ImplicitTransaction)
pub fn delete(&mut self, key: &str, txn: &ImplicitTransaction)
Removes an entry identified by a given key from this instance of YMap, if such exists.
sourcepub fn get(&self, key: &str, txn: &ImplicitTransaction) -> JsValue
pub fn get(&self, key: &str, txn: &ImplicitTransaction) -> JsValue
Returns value of an entry stored under given key within this instance of YMap,
or undefined if no such entry existed.
sourcepub fn entries(&self, txn: &ImplicitTransaction) -> JsValue
pub fn entries(&self, txn: &ImplicitTransaction) -> JsValue
Returns an iterator that can be used to traverse over all entries stored within this
instance of YMap. Order of entry is not specified.
Example:
import YDoc from 'ywasm'
/// document on machine A
const doc = new YDoc()
const map = doc.getMap('name')
const txn = doc.beginTransaction()
try {
map.set(txn, 'key1', 'value1')
map.set(txn, 'key2', true)
for (let [key, value] of map.entries(txn)) {
console.log(key, value)
}
} finally {
txn.free()
}
sourcepub fn observe(&mut self, f: Function) -> YMapObserver
pub fn observe(&mut self, f: Function) -> YMapObserver
Subscribes to all operations happening over this instance of YMap. All changes are
batched and eventually triggered during transaction commit phase.
Returns an YObserver which, when free’d, will unsubscribe current callback.
sourcepub fn observe_deep(&mut self, f: Function) -> YEventObserver
pub fn observe_deep(&mut self, f: Function) -> YEventObserver
Subscribes to all operations happening over this Y shared type, as well as events in
shared types stored within this one. All changes are batched and eventually triggered
during transaction commit phase.
Returns an YEventObserver which, when free’d, will unsubscribe current callback.
Trait Implementations§
source§impl FromWasmAbi for YMap
impl FromWasmAbi for YMap
source§impl IntoWasmAbi for YMap
impl IntoWasmAbi for YMap
source§impl LongRefFromWasmAbi for YMap
impl LongRefFromWasmAbi for YMap
source§impl OptionFromWasmAbi for YMap
impl OptionFromWasmAbi for YMap
source§impl OptionIntoWasmAbi for YMap
impl OptionIntoWasmAbi for YMap
source§impl RefFromWasmAbi for YMap
impl RefFromWasmAbi for YMap
source§impl RefMutFromWasmAbi for YMap
impl RefMutFromWasmAbi for YMap
Auto Trait Implementations§
impl !RefUnwindSafe for YMap
impl !Send for YMap
impl !Sync for YMap
impl Unpin for YMap
impl !UnwindSafe for YMap
Blanket Implementations§
source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::Abisource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.