Struct remoc_obs::vec::MirroredVec
source · [−]pub struct MirroredVec<T, Codec = Default> { /* private fields */ }
Expand description
A vector that is mirroring an observable vector.
Implementations
sourceimpl<T, Codec> MirroredVec<T, Codec> where
T: RemoteSend + Clone,
Codec: Codec,
impl<T, Codec> MirroredVec<T, Codec> where
T: RemoteSend + Clone,
Codec: Codec,
sourcepub async fn borrow(&self) -> Result<MirroredVecRef<'_, T>, RecvError>
pub async fn borrow(&self) -> Result<MirroredVecRef<'_, T>, RecvError>
Returns a reference to the current value of the vector.
Updates are paused while the read lock is held.
This method returns an error if the observed vector has been dropped or the connection to it failed before it was marked as done by calling ObservableVec::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<MirroredVecRef<'_, T>, RecvError>
pub async fn borrow_and_update(
&mut self
) -> Result<MirroredVecRef<'_, T>, RecvError>
Returns a reference to the current value of the vector 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 vector has been dropped or the connection to it failed before it was marked as done by calling ObservableVec::done. In this case the mirrored contents at the point of loss of connection can be obtained using detach.
sourcepub async fn detach(self) -> Vec<T>
pub async fn detach(self) -> Vec<T>
Stops updating the vector 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 vector has been lost or the vector has been marked as done.
sourcepub async fn subscribe(
&self,
buffer: usize
) -> Result<VecSubscription<T, Codec>, RecvError>
pub async fn subscribe(
&self,
buffer: usize
) -> Result<VecSubscription<T, Codec>, RecvError>
Subscribes to change events from this mirrored vector.
The current contents of the vector 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<VecSubscription<T, Codec>, RecvError>
pub async fn subscribe_incremental(
&self,
buffer: usize
) -> Result<VecSubscription<T, Codec>, RecvError>
Subscribes to change events from this mirrored vector with incremental sending of the current contents.
The current contents of the vector 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<T, Codec> Debug for MirroredVec<T, Codec>
impl<T, Codec> Debug for MirroredVec<T, Codec>
Auto Trait Implementations
impl<T, Codec = Default> !RefUnwindSafe for MirroredVec<T, Codec>
impl<T, Codec> Send for MirroredVec<T, Codec> where
Codec: Send,
T: Send + Sync,
impl<T, Codec> Sync for MirroredVec<T, Codec> where
Codec: Send,
T: Send + Sync,
impl<T, Codec> Unpin for MirroredVec<T, Codec>
impl<T, Codec = Default> !UnwindSafe for MirroredVec<T, 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