pub struct TransparentObserverSnapshot { /* private fields */ }Expand description
A transparent read-only snapshot.
Similar to TransparentObserverMutableSnapshot but for read-only snapshots.
§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 TransparentObserverSnapshot
impl TransparentObserverSnapshot
pub fn new( id: SnapshotId, invalid: SnapshotIdSet, read_observer: Option<ReadObserver>, parent: Option<Weak<TransparentObserverSnapshot>>, ) -> Arc<Self>
Sourcepub fn set_read_observer(&self, _observer: Option<ReadObserver>)
pub fn set_read_observer(&self, _observer: Option<ReadObserver>)
Set the read observer (only allowed if reusable).
pub fn snapshot_id(&self) -> SnapshotId
pub fn invalid(&self) -> SnapshotIdSet
pub fn read_only(&self) -> bool
pub fn root_transparent_readonly(self: &Arc<Self>) -> Arc<Self>
pub fn enter<T>(self: &Arc<Self>, f: impl FnOnce() -> T) -> T
pub fn take_nested_snapshot( &self, read_observer: Option<ReadObserver>, ) -> Arc<TransparentObserverSnapshot>
pub fn has_pending_changes(&self) -> bool
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
Auto Trait Implementations§
impl !Freeze for TransparentObserverSnapshot
impl !RefUnwindSafe for TransparentObserverSnapshot
impl !Send for TransparentObserverSnapshot
impl !Sync for TransparentObserverSnapshot
impl Unpin for TransparentObserverSnapshot
impl !UnwindSafe for TransparentObserverSnapshot
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