dioxus_rsx

Struct TemplateBody

Source
pub struct TemplateBody {
    pub roots: Vec<BodyNode>,
    pub template_idx: DynIdx,
    pub node_paths: Vec<Vec<u8>>,
    pub attr_paths: Vec<(Vec<u8>, usize)>,
    pub dynamic_text_segments: Vec<FormattedSegment>,
    pub diagnostics: Diagnostics,
}
Expand description

A set of nodes in a template position

this could be:

  • The root of a callbody
  • The children of a component
  • The children of a for loop
  • The children of an if chain

The TemplateBody when needs to be parsed into a surrounding Body to be correctly re-indexed By default every body has a 0 default index

Fields§

§roots: Vec<BodyNode>§template_idx: DynIdx§node_paths: Vec<Vec<u8>>§attr_paths: Vec<(Vec<u8>, usize)>§dynamic_text_segments: Vec<FormattedSegment>§diagnostics: Diagnostics

Implementations§

Source§

impl TemplateBody

Source

pub fn new(nodes: Vec<BodyNode>) -> Self

Create a new TemplateBody from a set of nodes

This will fill in all the necessary path information for the nodes in the template and will overwrite data like dynamic indexes.

Source

pub fn normalized(&self) -> Self

Normalize the Template body for rendering. If the body is completely empty, insert a placeholder node

Source

pub fn is_empty(&self) -> bool

Source

pub fn implicit_key(&self) -> Option<&AttributeValue>

Source

pub fn get_dyn_node(&self, path: &[u8]) -> &BodyNode

Source

pub fn get_dyn_attr(&self, path: &Vec<u8>, idx: usize) -> &Attribute

Source

pub fn dynamic_attributes(&self) -> impl DoubleEndedIterator<Item = &Attribute>

Source

pub fn dynamic_nodes(&self) -> impl DoubleEndedIterator<Item = &BodyNode>

Source

pub fn literal_component_properties( &self, ) -> impl Iterator<Item = &HotLiteral> + '_

Iterate through the literal component properties of this rsx call in depth-first order

Trait Implementations§

Source§

impl Clone for TemplateBody

Source§

fn clone(&self) -> TemplateBody

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 TemplateBody

Source§

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

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

impl Parse for TemplateBody

Source§

fn parse(input: ParseStream<'_>) -> Result<Self>

Parse the nodes of the callbody as Body.

Source§

impl PartialEq for TemplateBody

Source§

fn eq(&self, other: &TemplateBody) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ToTokens for TemplateBody

Our ToTokens impl here just defers to rendering a template out like any other Body. This is because the parsing phase filled in all the additional metadata we need

Source§

fn to_tokens(&self, tokens: &mut TokenStream2)

Write self to the given TokenStream. Read more
Source§

fn to_token_stream(&self) -> TokenStream

Convert self directly into a TokenStream object. Read more
Source§

fn into_token_stream(self) -> TokenStream
where Self: Sized,

Convert self directly into a TokenStream object. Read more
Source§

impl Eq for TemplateBody

Source§

impl StructuralPartialEq for TemplateBody

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> 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> Spanned for T
where T: Spanned + ?Sized,

Source§

fn span(&self) -> Span

Returns a Span covering the complete contents of this syntax tree node, or Span::call_site() if this node is empty.
Source§

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

Source§

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>,

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.