pub struct NestedMutableSnapshot { /* private fields */ }Expand description
A nested mutable snapshot.
This is a mutable snapshot that has a parent. Changes made in this
snapshot are applied to the parent when apply() is called, not
to the global snapshot.
§Thread Safety
Contains Cell<T> and RefCell<T> which are not Send/Sync. This is safe because
snapshots are stored in thread-local storage and never shared across threads. The Arc
is used for cheap cloning within a single thread, not for cross-thread sharing.
Implementations§
Source§impl NestedMutableSnapshot
impl NestedMutableSnapshot
pub fn new( id: SnapshotId, invalid: SnapshotIdSet, read_observer: Option<ReadObserver>, write_observer: Option<WriteObserver>, parent: Weak<MutableSnapshot>, base_parent_id: SnapshotId, ) -> Arc<Self>
pub fn snapshot_id(&self) -> SnapshotId
pub fn invalid(&self) -> SnapshotIdSet
pub fn read_only(&self) -> bool
pub fn root_mutable(&self) -> Arc<MutableSnapshot>
pub fn enter<T>(self: &Arc<Self>, f: impl FnOnce() -> T) -> T
pub fn take_nested_snapshot( &self, read_observer: Option<ReadObserver>, ) -> Arc<ReadonlySnapshot>
pub fn has_pending_changes(&self) -> bool
pub fn pending_children(&self) -> Vec<SnapshotId> ⓘ
pub fn has_pending_children(&self) -> bool
pub fn parent_mutable(&self) -> Option<Arc<MutableSnapshot>>
pub fn dispose(&self)
pub fn record_read(&self, state: &dyn StateObject)
pub fn record_write(&self, state: Arc<dyn StateObject>)
pub fn close(&self)
pub fn is_disposed(&self) -> bool
pub fn apply(&self) -> SnapshotApplyResult
pub fn take_nested_mutable_snapshot( self: &Arc<Self>, read_observer: Option<ReadObserver>, write_observer: Option<WriteObserver>, ) -> Arc<NestedMutableSnapshot>
Auto Trait Implementations§
impl !Freeze for NestedMutableSnapshot
impl !RefUnwindSafe for NestedMutableSnapshot
impl !Send for NestedMutableSnapshot
impl !Sync for NestedMutableSnapshot
impl Unpin for NestedMutableSnapshot
impl UnsafeUnpin for NestedMutableSnapshot
impl !UnwindSafe for NestedMutableSnapshot
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
Mutably borrows from an owned value. Read more