Struct Element

Source
pub struct Element {
Show 17 fields pub id: String, pub base_type: Type, pub bindings: BindingsMap, pub property_analysis: RefCell<HashMap<String, PropertyAnalysis>>, pub children: Vec<ElementRc>, pub enclosing_component: Weak<Component>, pub property_declarations: BTreeMap<String, PropertyDeclaration>, pub named_references: NamedReferenceContainer, pub repeated: Option<RepeatedElementInfo>, pub states: Vec<State>, pub transitions: Vec<Transition>, pub child_of_layout: bool, pub layout_info_prop: Option<(NamedReference, NamedReference)>, pub is_flickable_viewport: bool, pub item_index: OnceCell<usize>, pub item_index_of_first_children: OnceCell<usize>, pub node: Option<Element>,
}
Expand description

An Element is an instantiation of a Component

Fields§

§id: String

The id as named in the original .60 file.

Note that it can only be used for lookup before inlining. After inlining there can be duplicated id in the component. The id are then re-assigned unique id in the assign_id pass

§base_type: Type§bindings: BindingsMap

Currently contains also the callbacks. FIXME: should that be changed?

§property_analysis: RefCell<HashMap<String, PropertyAnalysis>>§children: Vec<ElementRc>§enclosing_component: Weak<Component>

The component which contains this element.

§property_declarations: BTreeMap<String, PropertyDeclaration>§named_references: NamedReferenceContainer

Main owner for a reference to a property.

§repeated: Option<RepeatedElementInfo>

Tis element is part of a `for in :

§states: Vec<State>§transitions: Vec<Transition>§child_of_layout: bool

true when this item’s geometry is handled by a layout

§layout_info_prop: Option<(NamedReference, NamedReference)>

The property pointing to the layout info. (horizontal, vertical)

§is_flickable_viewport: bool

true if this Element is the fake Flickable viewport

§item_index: OnceCell<usize>

This is the component-local index of this item in the item tree array. It is generated after the last pass and before the generators run.

§item_index_of_first_children: OnceCell<usize>

the index of the first children in the tree, set with item_index

§node: Option<Element>

The AST node, if available

Implementations§

Source§

impl Element

Source

pub fn from_node( node: Element, id: String, parent_type: Type, component_child_insertion_point: &mut Option<(ElementRc, ChildrenPlaceholder)>, diag: &mut BuildDiagnostics, tr: &TypeRegister, ) -> ElementRc

Source

pub fn lookup_property<'a>(&self, name: &'a str) -> PropertyLookupResult<'a>

Return the type of a property in this element or its base, along with the final name, in case the provided name points towards a property alias. Type::Invalid is returned if the property does not exist.

Source

pub fn span(&self) -> Span

Return the Span of this element in the AST for error reporting

Source

pub fn native_class(&self) -> Option<Rc<NativeClass>>

Source

pub fn builtin_type(&self) -> Option<Rc<BuiltinElement>>

Source

pub fn layout_info_prop( &self, orientation: Orientation, ) -> Option<&NamedReference>

Source

pub fn original_name(&self) -> String

Returns the element’s name as specified in the markup, not normalized.

Source

pub fn is_binding_set( self: &Element, property_name: &str, need_explicit: bool, ) -> bool

Return true if the binding is set, either on this element or in a base

If need_explicit is true, then only consider binding set in the code, not the ones set by the compiler later.

Source

pub fn set_binding_if_not_set( &mut self, property_name: String, expression_fn: impl FnOnce() -> Expression, )

Set the property property_name of this Element only if it was not set. the expression_fn will only be called if it isn’t set

Source

pub fn sub_component(&self) -> Option<&Rc<Component>>

Trait Implementations§

Source§

impl Debug for Element

Source§

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

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

impl Default for Element

Source§

fn default() -> Element

Returns the “default value” for a type. Read more
Source§

impl Spanned for Element

Auto Trait Implementations§

§

impl !Freeze for Element

§

impl !RefUnwindSafe for Element

§

impl !Send for Element

§

impl !Sync for Element

§

impl Unpin for Element

§

impl !UnwindSafe for Element

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> IntoEither for T

Source§

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
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 = 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.
Source§

impl<T> ErasedDestructor for T
where T: 'static,