Struct i_slint_compiler::object_tree::Component
source · pub struct Component {Show 15 fields
pub node: Option<SyntaxNode>,
pub id: String,
pub root_element: ElementRc,
pub parent_element: Weak<RefCell<Element>>,
pub optimized_elements: RefCell<Vec<ElementRc>>,
pub embedded_file_resources: RefCell<HashMap<String, EmbeddedResources>>,
pub root_constraints: RefCell<LayoutConstraints>,
pub child_insertion_point: RefCell<Option<(ElementRc, ChildrenPlaceholder)>>,
pub inlined_init_code: RefCell<BTreeMap<usize, Expression>>,
pub init_code: RefCell<InitCode>,
pub used_types: RefCell<UsedSubTypes>,
pub popup_windows: RefCell<Vec<PopupWindow>>,
pub exported_global_names: RefCell<Vec<ExportedName>>,
pub private_properties: RefCell<Vec<(String, Type)>>,
pub is_root_component: Cell<bool>,
}
Expand description
A component is a type in the language which can be instantiated, Or is materialized for repeated expression.
Fields§
§node: Option<SyntaxNode>
§id: String
§root_element: ElementRc
§parent_element: Weak<RefCell<Element>>
The parent element within the parent component if this component represents a repeated element
optimized_elements: RefCell<Vec<ElementRc>>
List of elements that are not attached to the root anymore because they have been optimized away, but their properties may still be in use
embedded_file_resources: RefCell<HashMap<String, EmbeddedResources>>
Map of resources that should be embedded in the generated code, indexed by their absolute path on disk on the build system
root_constraints: RefCell<LayoutConstraints>
The layout constraints of the root item
child_insertion_point: RefCell<Option<(ElementRc, ChildrenPlaceholder)>>
When creating this component and inserting “children”, append them to the children of the element pointer to by this field.
inlined_init_code: RefCell<BTreeMap<usize, Expression>>
Code inserted from inlined components, ordered by offset of the place where it was inlined from. This way we can preserve the order across multiple inlining passes.
init_code: RefCell<InitCode>
§used_types: RefCell<UsedSubTypes>
The list of used extra types used (recursively) by this root component. (This only make sense on the root component)
popup_windows: RefCell<Vec<PopupWindow>>
§exported_global_names: RefCell<Vec<ExportedName>>
The names under which this component should be accessible if it is a global singleton and exported.
private_properties: RefCell<Vec<(String, Type)>>
The list of properties (name and type) declared as private in the component. This is used to issue better error in the generated code if the property is used.
is_root_component: Cell<bool>
This is the main entry point for the code generators. Such a component should have the full API, etc.
Implementations§
source§impl Component
impl Component
pub fn from_node( node: Component, diag: &mut BuildDiagnostics, tr: &TypeRegister ) -> Rc<Self>
sourcepub fn is_global(&self) -> bool
pub fn is_global(&self) -> bool
This component is a global component introduced with the “global” keyword
pub fn visible_in_public_api(&self) -> bool
sourcepub fn global_aliases(&self) -> Vec<String>
pub fn global_aliases(&self) -> Vec<String>
Returns the names of aliases to global singletons, exactly as specified in the .slint markup (not normalized).