chore: clean things up

This commit is contained in:
Jonathan Kelley committed 2022-11-03 01:38:18 -07:00
1 parent 584504feb7
commit 5d91f51e17
9 files changed
+30 -48

No files matched your search

+1 -3
View File
@@ -1,11 +1,9 @@
use std::cell::Cell;
use futures_util::Future; use futures_util::Future;
use crate::{ use crate::{
component::{Component, ComponentFn, Dummy, IntoComponent}, component::{Component, ComponentFn, Dummy, IntoComponent},
element::Element,
scopes::{Scope, ScopeState}, scopes::{Scope, ScopeState},
Element,
}; };
pub trait AnyProps { pub trait AnyProps {
+1 -6
View File
@@ -1,9 +1,4 @@
use std::num::NonZeroUsize; use crate::{nodes::VNode, virtualdom::VirtualDom};
use crate::{
nodes::{Template, VNode},
virtualdom::VirtualDom,
};
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct ElementId(pub usize); pub struct ElementId(pub usize);
+2 -2
View File
@@ -4,7 +4,7 @@
use futures_util::Future; use futures_util::Future;
use crate::{element::Element, scopes::Scope}; use crate::{scopes::Scope, Element};
pub type Component<T = ()> = fn(Scope<T>) -> Element; pub type Component<T = ()> = fn(Scope<T>) -> Element;
@@ -38,7 +38,7 @@ impl Future for Dummy {
fn poll( fn poll(
self: std::pin::Pin<&mut Self>, self: std::pin::Pin<&mut Self>,
cx: &mut std::task::Context<'_>, _cx: &mut std::task::Context<'_>,
) -> std::task::Poll<Self::Output> { ) -> std::task::Poll<Self::Output> {
unreachable!() unreachable!()
} }
-3
View File
@@ -1,3 +0,0 @@
use crate::nodes::{Template, VNode};
pub type Element<'a> = Option<VNode<'a>>;
+8 -6
View File
@@ -1,6 +1,5 @@
use std::{any::Any, cell::Cell}; use crate::{arena::ElementId, virtualdom::VirtualDom, Attribute, AttributeValue};
use std::cell::Cell;
use crate::{arena::ElementId, scopes::ScopeId, virtualdom::VirtualDom, Attribute, AttributeValue};
/// User Events are events that are shuttled from the renderer into the [`VirtualDom`] through the scheduler channel. /// User Events are events that are shuttled from the renderer into the [`VirtualDom`] through the scheduler channel.
/// ///
@@ -122,9 +121,12 @@ impl VirtualDom {
.dynamic_attrs .dynamic_attrs
.iter() .iter()
.enumerate() .enumerate()
.filter(|(idx, attr)| is_path_ascendant(parent.template.node_paths[*idx], path)) .filter_map(|(idx, attr)| {
.filter(|(idx, attr)| attr.name == event.name) match is_path_ascendant(parent.template.node_paths[idx], path) {
.map(|(_, attr)| attr), true if attr.name == event.name => Some(attr),
_ => None,
}
}),
); );
index = parent.parent; index = parent.parent;
+10 -10
View File
@@ -4,7 +4,6 @@ mod bump_frame;
mod component; mod component;
mod create; mod create;
mod diff; mod diff;
mod element;
mod events; mod events;
mod factory; mod factory;
mod future_container; mod future_container;
@@ -18,7 +17,7 @@ mod scopes;
mod virtualdom; mod virtualdom;
pub(crate) mod innerlude { pub(crate) mod innerlude {
pub use crate::element::Element; pub use crate::arena::*;
pub use crate::events::*; pub use crate::events::*;
pub use crate::future_container::*; pub use crate::future_container::*;
pub use crate::lazynodes::*; pub use crate::lazynodes::*;
@@ -28,10 +27,10 @@ pub(crate) mod innerlude {
pub use crate::scopes::*; pub use crate::scopes::*;
pub use crate::virtualdom::*; pub use crate::virtualdom::*;
// /// An [`Element`] is a possibly-none [`VNode`] created by calling `render` on [`Scope`] or [`ScopeState`]. /// An [`Element`] is a possibly-none [`VNode`] created by calling `render` on [`Scope`] or [`ScopeState`].
// /// ///
// /// Any [`None`] [`Element`] will automatically be coerced into a placeholder [`VNode`] with the [`VNode::Placeholder`] variant. /// Any [`None`] [`Element`] will automatically be coerced into a placeholder [`VNode`] with the [`VNode::Placeholder`] variant.
// pub type Element<'a> = Option<VNodea<'a>>; pub type Element<'a> = Option<VNode<'a>>;
/// A [`Component`] is a function that takes a [`Scope`] and returns an [`Element`]. /// A [`Component`] is a function that takes a [`Scope`] and returns an [`Element`].
/// ///
@@ -67,12 +66,16 @@ pub(crate) mod innerlude {
} }
pub use crate::innerlude::{ pub use crate::innerlude::{
// AnyAttributeValue, AnyEvent,
fc_to_builder, fc_to_builder,
// AnyAttributeValue, AnyEvent, Attribute, AttributeValue, Component, Element, ElementId,
Attribute, Attribute,
AttributeValue, AttributeValue,
Attributes,
Component,
DynamicNode, DynamicNode,
Element, Element,
ElementId,
ElementPath,
EventPriority, EventPriority,
LazyNodes, LazyNodes,
NodeFactory, NodeFactory,
@@ -88,9 +91,6 @@ pub use crate::innerlude::{
VNode, VNode,
VirtualDom, VirtualDom,
}; };
// EventHandler, EventPriority, IntoVNode, LazyNodes, Listener, NodeFactory, Properties, Renderer,
// SchedulerMsg, Scope, ScopeId, ScopeState, TaskId, Template, TemplateAttribute, TemplateNode,
// UiEvent, UserEvent, VComponent, VElement, VNode, VTemplate, VText, VirtualDom,
/// The purpose of this module is to alleviate imports of many common types /// The purpose of this module is to alleviate imports of many common types
/// ///
+1 -1
View File
@@ -1,6 +1,6 @@
use crate::any_props::VComponentProps; use crate::any_props::VComponentProps;
use crate::arena::ElementPath; use crate::arena::ElementPath;
use crate::component::{Component, IntoComponent}; use crate::component::Component;
use crate::diff::DirtyScope; use crate::diff::DirtyScope;
use crate::future_container::FutureQueue; use crate::future_container::FutureQueue;
use crate::innerlude::SchedulerMsg; use crate::innerlude::SchedulerMsg;
+3 -13
View File
@@ -13,16 +13,12 @@
#[macro_use] #[macro_use]
mod errors; mod errors;
// #[cfg(any(feature = "hot-reload", debug_assertions))]
// mod attributes;
mod component; mod component;
mod element; mod element;
mod ifmt; mod ifmt;
mod node; mod node;
mod template; mod template;
use std::collections::HashMap;
// Re-export the namespaces into each other // Re-export the namespaces into each other
pub use component::*; pub use component::*;
pub use element::*; pub use element::*;
@@ -108,6 +104,7 @@ impl<'a> ToTokens for TemplateRenderer<'a> {
Some(BodyNode::Component(comp)) if self.roots.len() == 1 => comp.key().cloned(), Some(BodyNode::Component(comp)) if self.roots.len() == 1 => comp.key().cloned(),
_ => None, _ => None,
}; };
let key_tokens = match key { let key_tokens = match key {
Some(tok) => quote! { Some( __cx.raw_text_inline(#tok) ) }, Some(tok) => quote! { Some( __cx.raw_text_inline(#tok) ) },
None => quote! { None }, None => quote! { None },
@@ -124,15 +121,8 @@ impl<'a> ToTokens for TemplateRenderer<'a> {
let roots = quote! { #( #root_printer ),* }; let roots = quote! { #( #root_printer ),* };
let node_printer = &context.dynamic_nodes; let node_printer = &context.dynamic_nodes;
let dyn_attr_printer = &context.dynamic_attributes; let dyn_attr_printer = &context.dynamic_attributes;
let node_paths = context let node_paths = context.node_paths.iter().map(|it| quote!(&[#(#it),*]));
.node_paths let attr_paths = context.attr_paths.iter().map(|it| quote!(&[#(#it),*]));
.iter()
.map(|items| quote!(&[#(#items),*]));
let attr_paths = context
.attr_paths
.iter()
.map(|items| quote!(&[#(#items),*]));
out_tokens.append_all(quote! { out_tokens.append_all(quote! {
static TEMPLATE: ::dioxus::core::Template = ::dioxus::core::Template { static TEMPLATE: ::dioxus::core::Template = ::dioxus::core::Template {
+4 -4
View File
@@ -1,7 +1,7 @@
use proc_macro2::TokenStream; // use proc_macro2::TokenStream;
use quote::TokenStreamExt; // use quote::TokenStreamExt;
use quote::{quote, ToTokens}; // use quote::{quote, ToTokens};
use syn::{Expr, Ident, LitStr}; // use syn::{Expr, Ident, LitStr};
// #[cfg(any(feature = "hot-reload", debug_assertions))] // #[cfg(any(feature = "hot-reload", debug_assertions))]
// pub fn try_parse_template( // pub fn try_parse_template(