pub struct Element { /* private fields */ }
Expand description

A rendered ElementComponent instance.

Implementations§

source§

impl Element

source

pub fn new() -> Self

Creates a new Element with no children.

source

pub fn from_element_component(part: Box<dyn ElementComponent>) -> Self

Creates a new Element from the given component.

source

pub fn vec_of(self) -> Vec<Self>

Convenience method to construct a Vec<Element> from a single Element.

source

pub fn with<T: ComponentValue + Sync + Send + Clone + 'static>( self, component: Component<T>, value: T ) -> Self

Adds the given component with value to the element.

source

pub fn init<T: ComponentValue + Sync + Send + Clone + 'static>( self, component: Component<T>, value: T ) -> Self

Sets the given component to value on the element during initialization only.

source

pub fn init_default<T: ComponentValue + Sync + Send + Clone + Default + 'static>( self, component: Component<T> ) -> Self

Calls Self::init with the default value for the component’s type.

source

pub fn remove<T: ComponentValue + Clone>(self, component: Component<T>) -> Self

Removes the given component from the element.

Warning: this only removes components on the current element.

source

pub fn children(self, children: Vec<Element>) -> Self

Sets the children of the element.

source

pub fn spawner<F: Fn(&mut World, Entity) -> EntityId + Sync + Send + 'static>( self, handler: F ) -> Self

Set the function used to spawn the element.

source

pub fn despawner<F: Fn(&mut World, EntityId) + Sync + Send + 'static>( self, handler: F ) -> Self

Set the function used to despawn the element.

source

pub fn on_spawned<F: Fn(&mut World, EntityId, &str) + Sync + Send + 'static>( self, handler: F ) -> Self

Set the callback to call when the element is spawned. The third argument is the instance ID.

source

pub fn on_despawn<F: Fn(&mut World, EntityId, &str) + Sync + Send + 'static>( self, handler: F ) -> Self

Set the callback to call when the element is despawned. The third argument is the instance ID.

source

pub fn key<T: Into<String>>(self, key: T) -> Self

Set the unique key used to identify this element.

This is used to disambiguate elements with the same type. This should be used when rendering lists of elements.

source

pub fn memoize_subtree(self, memo_key: impl Into<String>) -> Self

Avoid rendering the subtree, except when the memo_key is changed.

source

pub fn has_component(&self, component: impl Into<ComponentDesc>) -> bool

Returns true if the element has the given component.

source

pub fn spawn_tree(self) -> ElementTree

This spawns the elemet tree and returns it. The tree won’t be automatically updated, but can manually be updated by calling the update method.

source

pub fn spawn_interactive(self)

This spawns the element tree and sets up listeners to automatically update it.

This is equivalent to calling Self::spawn_tree and then calling ElementTree::update on the tree each frame.

You may want to update the tree manually if you want to replace the root Element:

let mut tree = Element::new().spawn_tree();
Frame::subscribe(move |_| {
    if some_condition {
        tree.migrate_root(&mut World, App::el(new_properties));
    }
    tree.update(&mut World);
});

Trait Implementations§

source§

impl Clone for Element

source§

fn clone(&self) -> Element

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
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() -> Self

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

impl<T: ElementComponent + 'static> From<T> for Element

source§

fn from(part: T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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> AsAny for T
where T: Any,

source§

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

source§

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

source§

fn type_name(&self) -> &'static str

Gets the type name of self
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> Downcast for T
where T: AsAny + ?Sized,

source§

fn is<T>(&self) -> bool
where T: AsAny,

Returns true if the boxed type is the same as T. Read more
source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: AsAny,

Forward to the method defined on the type Any.
source§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: AsAny,

Forward to the method defined on the type Any.
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> ElementComponentName for T

source§

fn element_component_name(&self) -> &'static str

Returns the name of the type implementing ElementComponent.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> AnyCloneable for T
where T: Clone + Debug + Any + 'static,