pub struct Atom {
pub value: TrackedMutex<Value>,
pub meta: TrackedMutex<Option<Value>>,
pub validator: TrackedMutex<Option<Value>>,
pub watches: TrackedMutex<Vec<(Value, Value)>>,
}Expand description
A Clojure atom — a thread-safe mutable reference.
Fields§
§value: TrackedMutex<Value>§meta: TrackedMutex<Option<Value>>§validator: TrackedMutex<Option<Value>>§watches: TrackedMutex<Vec<(Value, Value)>>Implementations§
Source§impl Atom
impl Atom
pub fn new(v: Value) -> Self
pub fn snapshot(&self) -> ValueSnapshot
pub fn deref(&self) -> Value
pub fn reset(&self, v: Value) -> Value
Sourcepub fn compare_and_set(&self, expected: &Value, value: Value) -> bool
pub fn compare_and_set(&self, expected: &Value, value: Value) -> bool
Replace the value only if it still equals expected.
Failed attempts do not publish or lease the candidate.
pub fn add_watch(&self, key: Value, callback: Value)
pub fn remove_watch(&self, key: &Value)
pub fn protect_watches(&self)
pub fn get_meta(&self) -> Option<Value>
pub fn set_meta(&self, m: Option<Value>)
pub fn get_validator(&self) -> Option<Value>
pub fn set_validator(&self, vf: Option<Value>)
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Atom
impl !Send for Atom
impl !Sync for Atom
impl Forget for Atom
impl RefUnwindSafe for Atom
impl Unpin for Atom
impl UnsafeUnpin for Atom
impl UnwindSafe for Atom
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