pub struct ClassInstance {
pub def: Arc<ClassDef>,
pub values: RwLock<Vec<PerlValue>>,
pub isa_chain: Vec<String>,
}Expand description
Instance of a class Name extends ... impl ... { ... } definition.
Fields§
§def: Arc<ClassDef>§values: RwLock<Vec<PerlValue>>§isa_chain: Vec<String>Full ISA chain for this class (all ancestors, computed at instantiation).
Implementations§
Source§impl ClassInstance
impl ClassInstance
pub fn new(def: Arc<ClassDef>, values: Vec<PerlValue>) -> Self
pub fn new_with_isa( def: Arc<ClassDef>, values: Vec<PerlValue>, isa_chain: Vec<String>, ) -> Self
Sourcepub fn isa(&self, name: &str) -> bool
pub fn isa(&self, name: &str) -> bool
Check if this instance is-a given class name (direct or inherited).
pub fn get_field(&self, idx: usize) -> Option<PerlValue>
pub fn set_field(&self, idx: usize, val: PerlValue)
pub fn get_values(&self) -> Vec<PerlValue>
Sourcepub fn get_field_by_name(&self, name: &str) -> Option<PerlValue>
pub fn get_field_by_name(&self, name: &str) -> Option<PerlValue>
Get field value by name (searches through class and parent hierarchies).
Sourcepub fn set_field_by_name(&self, name: &str, val: PerlValue) -> bool
pub fn set_field_by_name(&self, name: &str, val: PerlValue) -> bool
Set field value by name.
Trait Implementations§
Source§impl Clone for ClassInstance
impl Clone for ClassInstance
Auto Trait Implementations§
impl !Freeze for ClassInstance
impl !RefUnwindSafe for ClassInstance
impl Send for ClassInstance
impl Sync for ClassInstance
impl Unpin for ClassInstance
impl UnsafeUnpin for ClassInstance
impl UnwindSafe for ClassInstance
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.