Struct remoc_obs::hash_map::MirroredHashMap
source · [−]pub struct MirroredHashMap<K, V, Codec = Default> { /* private fields */ }
Expand description
A hash map that is mirroring an observable hash map.
Implementations
sourceimpl<K, V, Codec> MirroredHashMap<K, V, Codec> where
K: RemoteSend + Eq + Hash + Clone,
V: RemoteSend + Clone,
Codec: Codec,
impl<K, V, Codec> MirroredHashMap<K, V, Codec> where
K: RemoteSend + Eq + Hash + Clone,
V: RemoteSend + Clone,
Codec: Codec,
sourcepub async fn borrow(&self) -> Result<MirroredHashMapRef<'_, K, V>, RecvError>
pub async fn borrow(&self) -> Result<MirroredHashMapRef<'_, K, V>, RecvError>
Returns a reference to the current value of the hash map.
Updates are paused while the read lock is held.
This method returns an error if the observed hash map has been dropped or the connection to it failed before it was marked as done by calling ObservableHashMap::done. In this case the mirrored contents at the point of loss of connection can be obtained using detach.
sourcepub async fn borrow_and_update(
&mut self
) -> Result<MirroredHashMapRef<'_, K, V>, RecvError>
pub async fn borrow_and_update(
&mut self
) -> Result<MirroredHashMapRef<'_, K, V>, RecvError>
Returns a reference to the current value of the hash map and marks it as seen.
Thus changed will not return immediately until the value changes after this method returns.
Updates are paused while the read lock is held.
This method returns an error if the observed hash map has been dropped or the connection to it failed before it was marked as done by calling ObservableHashMap::done. In this case the mirrored contents at the point of loss of connection can be obtained using detach.
sourcepub async fn detach(self) -> HashMap<K, V>
pub async fn detach(self) -> HashMap<K, V>
Stops updating the hash map and returns its current contents.
sourcepub async fn changed(&mut self)
pub async fn changed(&mut self)
Waits for a change and marks the newest value as seen.
This also returns when connection to the observed hash map has been lost or the hash map has been marked as done.
sourcepub async fn subscribe(
&self,
buffer: usize
) -> Result<HashMapSubscription<K, V, Codec>, RecvError>
pub async fn subscribe(
&self,
buffer: usize
) -> Result<HashMapSubscription<K, V, Codec>, RecvError>
Subscribes to change events from this mirrored hash map.
The current contents of the hash map is included with the subscription.
buffer
specifies the maximum size of the event buffer for this subscription in number of events.
If it is exceeded the subscription is shed and the receiver gets a RecvError::Lagged.
sourcepub async fn subscribe_incremental(
&self,
buffer: usize
) -> Result<HashMapSubscription<K, V, Codec>, RecvError>
pub async fn subscribe_incremental(
&self,
buffer: usize
) -> Result<HashMapSubscription<K, V, Codec>, RecvError>
Subscribes to change events from this mirrored hash map with incremental sending of the current contents.
The current contents of the hash map are sent incrementally.
buffer
specifies the maximum size of the event buffer for this subscription in number of events.
If it is exceeded the subscription is shed and the receiver gets a RecvError::Lagged.
Trait Implementations
sourceimpl<K, V, Codec> Debug for MirroredHashMap<K, V, Codec>
impl<K, V, Codec> Debug for MirroredHashMap<K, V, Codec>
Auto Trait Implementations
impl<K, V, Codec = Default> !RefUnwindSafe for MirroredHashMap<K, V, Codec>
impl<K, V, Codec> Send for MirroredHashMap<K, V, Codec> where
Codec: Send,
K: Send + Sync,
V: Send + Sync,
impl<K, V, Codec> Sync for MirroredHashMap<K, V, Codec> where
Codec: Send,
K: Send + Sync,
V: Send + Sync,
impl<K, V, Codec> Unpin for MirroredHashMap<K, V, Codec>
impl<K, V, Codec = Default> !UnwindSafe for MirroredHashMap<K, V, Codec>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more