Struct debris_llir::class::Class

source ·
pub struct Class {
    pub kind: ClassKind,
    pub properties: OnceCell<ObjectProperties>,
}
Expand description

A class combines ClassKind and corresponding properties (Mostly associated methods).

Fields§

§kind: ClassKind§properties: OnceCell<ObjectProperties>

Implementations§

source§

impl Class

source

pub fn new_empty(kind: ClassKind) -> Self

Constructs a new class with an empty properties map

source

pub fn matches(&self, other: &Class) -> bool

Returns if the value class other matches this pattern

source

pub fn matches_type(&self, other: &Class) -> bool

Returns whether the other class has the same type as this class or diverges.

source

pub fn diverges(&self) -> bool

Whether it is impossible to construct a value of this class

source

pub fn get_property(&self, ident: &Ident) -> Option<ObjectRef>

Returns a property of this class

Panics

panics if this class is not initialized yet

source

pub fn new_obj_from_allocator( &self, ctx: &TypeContext, allocator: &ItemIdAllocator ) -> Option<ObjectRef>

Constructs a new runtime object that corresponds to this class, if possible

Trait Implementations§

source§

impl Debug for Class

source§

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

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

impl Display for Class

source§

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

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

impl PartialEq for Class

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Class

source§

impl StructuralEq for Class

source§

impl StructuralPartialEq for Class

Auto Trait Implementations§

§

impl !RefUnwindSafe for Class

§

impl !Send for Class

§

impl !Sync for Class

§

impl Unpin for Class

§

impl !UnwindSafe for Class

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere 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 Qwhere 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.