add component support

This commit is contained in:
Evan Almloff committed 2022-05-27 09:47:44 -05:00
1 parent 07da854455
commit a0c7e4d78a
8 files changed
+62 -14

No files matched your search

+3
View File
@@ -22,6 +22,7 @@ use syn::{
token, Expr, Ident, LitStr, Result, Token,
};
#[derive(PartialEq, Eq)]
pub struct Component {
pub name: syn::Path,
pub body: Vec<ComponentField>,
@@ -149,11 +150,13 @@ impl ToTokens for Component {
}
// the struct's fields info
#[derive(PartialEq, Eq)]
pub struct ComponentField {
pub name: Ident,
pub content: ContentField,
}
#[derive(PartialEq, Eq)]
pub enum ContentField {
ManExpr(Expr),
Formatted(LitStr),
+3
View File
@@ -10,6 +10,7 @@ use syn::{
// =======================================
// Parse the VNode::Element type
// =======================================
#[derive(PartialEq, Eq)]
pub struct Element {
pub name: Ident,
pub key: Option<LitStr>,
@@ -189,6 +190,7 @@ impl ToTokens for Element {
}
}
#[derive(PartialEq, Eq)]
pub enum ElementAttr {
/// attribute: "valuee {}"
AttrText {
@@ -225,6 +227,7 @@ pub enum ElementAttr {
Meta(String),
}
#[derive(PartialEq, Eq)]
pub struct ElementAttrNamed {
pub el_name: Ident,
pub attr: ElementAttr,
+1
View File
@@ -15,6 +15,7 @@ Parse
-> "text {with_args}"
-> (0..10).map(|f| rsx!("asd")), // <--- notice the comma - must be a complete expr
*/
#[derive(PartialEq, Eq)]
pub enum BodyNode {
Element(Element),
Component(Component),