Struct jrsonnet_gc::GcCell [−][src]
pub struct GcCell<T: ?Sized + 'static> { /* fields omitted */ }
Expand description
A mutable memory location with dynamically checked borrow rules that can be used inside of a garbage-collected pointer.
This object is a RefCell
that can be used inside of a Gc<T>
.
Implementations
Consumes the GcCell
, returning the wrapped value.
Immutably borrows the wrapped value.
The borrow lasts until the returned GcCellRef
exits scope.
Multiple immutable borrows can be taken out at the same time.
Panics
Panics if the value is currently mutably borrowed.
Mutably borrows the wrapped value.
The borrow lasts until the returned GcCellRefMut
exits scope.
The value cannot be borrowed while this borrow is active.
Panics
Panics if the value is currently borrowed.
Immutably borrows the wrapped value, returning an error if the value is currently mutably borrowed.
The borrow lasts until the returned GcCellRef
exits scope. Multiple immutable borrows can be
taken out at the same time.
This is the non-panicking variant of borrow
.
Examples
use jrsonnet_gc::GcCell; let c = GcCell::new(5); { let m = c.borrow_mut(); assert!(c.try_borrow().is_err()); } { let m = c.borrow(); assert!(c.try_borrow().is_ok()); }
Mutably borrows the wrapped value, returning an error if the value is currently borrowed.
The borrow lasts until the returned GcCellRefMut
exits scope.
The value cannot be borrowed while this borrow is active.
This is the non-panicking variant of borrow_mut
.
Examples
use jrsonnet_gc::GcCell; let c = GcCell::new(5); { let m = c.borrow(); assert!(c.try_borrow_mut().is_err()); } assert!(c.try_borrow_mut().is_ok());
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Runs Finalize::finalize() on this object and all contained subobjects Read more
Auto Trait Implementations
impl<T> !RefUnwindSafe for GcCell<T>
impl<T: ?Sized> UnwindSafe for GcCell<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more