Skip to main content

Class

Struct Class 

Source
pub struct Class {
    pub gc: GcVTable,
    pub kind: ObjKind,
    pub id: u32,
    pub name: Box<str>,
    pub capability: Capability,
    pub superclass: Option<&'static Class>,
    pub field_names: Vec<Sym>,
    pub vtable: Vec<u32>,
    pub variant_tag: Option<u32>,
    pub enum_id: Option<u32>,
    /* private fields */
}

Fields§

§gc: GcVTable§kind: ObjKind§id: u32§name: Box<str>§capability: Capability§superclass: Option<&'static Class>§field_names: Vec<Sym>§vtable: Vec<u32>

Virtual method table (function ids), for overridable methods of user classes.

§variant_tag: Option<u32>

For enum variant classes: the variant’s index within its enum.

§enum_id: Option<u32>

For enum variant classes: the enum’s id (shared by all its variants).

Implementations§

Source§

impl Class

Source

pub fn nfields(&self) -> usize

Source

pub fn lookup(&self, name: Sym) -> Option<u32>

Source

pub fn methods(&self) -> &FxHashMap<Sym, u32>

Source

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

True if self is other or inherits from it.

Source

pub fn field_index(&self, name: Sym) -> Option<usize>

Auto Trait Implementations§

§

impl !Freeze for Class

§

impl RefUnwindSafe for Class

§

impl Send for Class

§

impl Sync for Class

§

impl Unpin for Class

§

impl UnsafeUnpin for Class

§

impl UnwindSafe for Class

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> NativeData for T
where T: Any + Send + Sync,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.