lib.rs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. use std::any::Any;
  2. use std::future::Future;
  3. use std::hash::BuildHasherDefault;
  4. use std::pin::Pin;
  5. pub use node_ref::NodeMask;
  6. pub use passes::AnyMapLike;
  7. pub use passes::{Dependancy, Pass, TypeErasedPass};
  8. use prelude::FromAnyValue;
  9. pub use real_dom::{NodeMut, NodeRef, RealDom};
  10. use rustc_hash::FxHasher;
  11. pub use tree::NodeId;
  12. #[cfg(feature = "dioxus")]
  13. pub mod dioxus;
  14. pub mod layout_attributes;
  15. pub mod node;
  16. pub mod node_ref;
  17. pub mod node_watcher;
  18. mod passes;
  19. pub mod real_dom;
  20. pub mod tree;
  21. pub mod utils;
  22. pub mod prelude {
  23. pub use crate::node::{ElementNode, FromAnyValue, NodeType, OwnedAttributeView};
  24. pub use crate::node_ref::{AttributeMaskBuilder, NodeMaskBuilder, NodeView};
  25. pub use crate::passes::{Dependancy, Pass};
  26. pub use crate::real_dom::{NodeImmutable, NodeMut, NodeRef, RealDom};
  27. pub use crate::tree::NodeId;
  28. pub use crate::SendAnyMap;
  29. }
  30. pub type FxDashMap<K, V> = dashmap::DashMap<K, V, BuildHasherDefault<FxHasher>>;
  31. pub type FxDashSet<K> = dashmap::DashSet<K, BuildHasherDefault<FxHasher>>;
  32. pub type SendAnyMap = anymap::Map<dyn Any + Send + Sync + 'static>;
  33. pub trait Renderer<V: FromAnyValue + Send + Sync, E> {
  34. fn render(&mut self, root: NodeMut<V>);
  35. fn handle_event(&mut self, node: NodeMut<V>, event: &str, value: E);
  36. fn poll_async(&mut self) -> Pin<Box<dyn Future<Output = ()> + Send>> {
  37. Box::pin(async {})
  38. }
  39. }