1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
mod debug;
pub use debug::*;
pub mod intrinsic_components;
pub use forgotten;
pub use react;
pub use react::{AsKey, Children};
pub use react_html as html;
pub use react_html::style;
pub use frender_macros::{component, def_props, rsx};
pub use react::Element;
pub mod prelude {
pub use super::html;
pub use super::intrinsic_components;
pub use super::react;
pub use super::react::{
Component, ComponentStatic, ReadRef, UseRender, UseRenderStatic, WriteRef,
};
pub use super::{component, def_props, rsx, style};
pub mod rsx_runtime {
pub use super::super::impl_rsx_prop;
pub use react::Fragment;
#[inline]
pub fn init_props_builder<TComp: react::Component>(
) -> <TComp::Props as react::Props>::InitialBuilder {
<TComp::Props as react::Props>::init_builder()
}
#[inline]
pub fn impl_rsx_static<
TComp: react::ComponentStatic,
TBuilder: react::PropsBuilder<TComp::Props>,
>(
props_builder: TBuilder,
key: Option<react::Key>,
) -> TComp::Element {
let props = react::PropsBuilder::build(props_builder);
TComp::create_element(props, key)
}
#[inline]
pub fn impl_rsx<TComp: react::Component, TBuilder: react::PropsBuilder<TComp::Props>>(
component: TComp,
props_builder: TBuilder,
key: Option<react::Key>,
) -> TComp::Element {
let props = react::PropsBuilder::build(props_builder);
component.create_element(props, key)
}
}
}
#[macro_export]
macro_rules! impl_rsx_prop {
($v:ident . $prop:ident ( $value:expr )) => {
$v.$prop($value)
};
}