Struct freya::prelude::VNode

pub struct VNode<'a> {
    pub key: Option<&'a str>,
    pub parent: Option<ElementId>,
    pub template: Cell<Template<'static>>,
    pub root_ids: RefCell<Vec<ElementId, Global>>,
    pub dynamic_nodes: &'a [DynamicNode<'a>],
    pub dynamic_attrs: &'a [Attribute<'a>],
}
Expand description

A reference to a template along with any context needed to hydrate it

The dynamic parts of the template are stored separately from the static parts. This allows faster diffing by skipping static parts of the template.

Fields§

§key: Option<&'a str>

The key given to the root of this template.

In fragments, this is the key of the first child. In other cases, it is the key of the root.

§parent: Option<ElementId>

When rendered, this template will be linked to its parent manually

§template: Cell<Template<'static>>

The static nodes and static descriptor of the template

§root_ids: RefCell<Vec<ElementId, Global>>

The IDs for the roots of this template - to be used when moving the template around and removing it from the actual Dom

§dynamic_nodes: &'a [DynamicNode<'a>]

The dynamic parts of the template

§dynamic_attrs: &'a [Attribute<'a>]

The dynamic parts of the template

Implementations§

§

impl<'a> VNode<'a>

pub fn empty() -> Option<VNode<'a>>

Create a template with no nodes that will be skipped over during diffing

pub fn dynamic_root(&self, idx: usize) -> Option<&'a DynamicNode<'a>>

Load a dynamic root at the given index

Returns None if the root is actually a static node (Element/Text)

Trait Implementations§

§

impl<'a> Clone for VNode<'a>

§

fn clone(&self) -> VNode<'a>

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
§

impl<'a> Debug for VNode<'a>

§

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

Formats the value using the given formatter. Read more
§

impl<'a> IntoDynNode<'a, ()> for &'a VNode<'a>

§

fn into_vnode(self, _cx: &'a ScopeState) -> DynamicNode<'a>

Consume this item along with a scopestate and produce a DynamicNode Read more
§

impl<'a> IntoDynNode<'a, ()> for VNode<'a>

§

fn into_vnode(self, _cx: &'a ScopeState) -> DynamicNode<'a>

Consume this item along with a scopestate and produce a DynamicNode Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for VNode<'a>

§

impl<'a> !Send for VNode<'a>

§

impl<'a> !Sync for VNode<'a>

§

impl<'a> Unpin for VNode<'a>

§

impl<'a> !UnwindSafe for VNode<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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.

§

impl<T> Instrument for T

§

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

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

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 Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T> To for Twhere T: ?Sized,

§

fn to<T>(self) -> Twhere Self: Into<T>,

Converts to T by calling Into<T>::into.
§

fn try_to<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
source§

impl<T> ToOwned for Twhere 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 Twhere 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 Twhere 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> CloneAny for Twhere T: Any + Clone,