rune::core::object::cell

Struct ObjCell

Source
#[repr(transparent)]
pub(crate) struct ObjCell(Cell<Gc<ObjectType<'static>>>);
Expand description

This type represents and immutable view into an Object. The reason we have an additional type is because there could be other references to this same cell that can change the underlying data, so this is wrapper around std::cell::Cell type. It is not valid to mutate the data under a reference unless it is inside an Unsafe Cell. However because this struct could also be used in an immutable data structure (function constants), we need to ensure that this cell cannot be mutated by default. This type is not safe to be copy or clone.

Tuple Fields§

§0: Cell<Gc<ObjectType<'static>>>

Implementations§

Source§

impl ObjCell

Source

pub(crate) fn get(&self) -> Gc<ObjectType<'_>>

Source

pub(in core) unsafe fn new( obj: Gc<ObjectType<'_>>, ) -> Self

Source

pub(in core) unsafe fn as_mut( &self, ) -> &MutObjCell

Casts to a MutObjCell. Caller must ensure that the data structure is mutable.

Trait Implementations§

Source§

impl Hash for ObjCell

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ObjCell

Source§

fn eq(&self, other: &ObjCell) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Trace for ObjCell

Source§

fn trace(&self, state: &mut GcState)

Source§

impl Debug for ObjCell

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ObjCell

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ObjCell

Source§

impl StructuralPartialEq for ObjCell

Auto Trait Implementations§

§

impl !Freeze for ObjCell

§

impl !RefUnwindSafe for ObjCell

§

impl Send for ObjCell

§

impl !Sync for ObjCell

§

impl Unpin for ObjCell

§

impl !UnwindSafe for ObjCell

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.