on master help sign in
Port examples to new `Node` representation
549f7a4Nick Fitzgerald
examples/counter/crate/src/lib.rs+13−15
@@ -22,40 +22,38 @@ impl Counter {
22}
22}
23
23
24impl Render for Counter {
24impl Render for Counter {
25− fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::NodeRef<'bump>
25+ fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::Node<'bump>
26 where
26 where
27 'a: 'bump,
27 'a: 'bump,
28 {
28 {
29 let val = bumpalo::format!(in bump, "{}", self.val);
29 let val = bumpalo::format!(in bump, "{}", self.val);
30
30
31− let increment = bump.alloc(Node::element(
31+ let increment = Node::element(
32+ bump,
32 "button",
33 "button",
33 [Attribute {
34 [Attribute {
34 name: "data-action",
35 name: "data-action",
35 value: "increment",
36 value: "increment",
36 }],
37 }],
37− [bump.alloc(Node::text("+")).into()],
38+ [Node::text("+")],
38− ));
39+ );
39
40
40− let decrement = bump.alloc(Node::element(
41+ let decrement = Node::element(
42+ bump,
41 "button",
43 "button",
42 [Attribute {
44 [Attribute {
43 name: "data-action",
45 name: "data-action",
44 value: "decrement",
46 value: "decrement",
45 }],
47 }],
46− [bump.alloc(Node::text("-")).into()],
48+ [Node::text("-")],
47− ));
49+ );
48
50
49− bump.alloc(Node::element(
51+ Node::element(
52+ bump,
50 "div",
53 "div",
51 [],
54 [],
52− [
53− increment.into(),
54− bump.alloc(Node::text(val.into_bump_str())).into(),
55+ [increment, Node::text(val.into_bump_str()), decrement],
55− decrement.into(),
56+ )
56− ],
57− ))
58− .into()
59 }
57 }
60}
58}
61
59
examples/hello-world/crate/src/lib.rs+5−9
@@ -11,20 +11,16 @@ impl<'who> HelloWorld<'who> {
11}
11}
12
12
13impl<'who> Render for HelloWorld<'who> {
13impl<'who> Render for HelloWorld<'who> {
14− fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::NodeRef<'bump>
14+ fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::Node<'bump>
15 where
15 where
16 'a: 'bump,
16 'a: 'bump,
17 {
17 {
18− bump.alloc(Node::element(
18+ Node::element(
19+ bump,
19 "p",
20 "p",
20 [],
21 [],
21− [
22− bump.alloc(Node::text("Hello, ")).into(),
22+ [Node::text("Hello, "), Node::text(self.0), Node::text("!")],
23− bump.alloc(Node::text(self.0)).into(),
23+ )
24− bump.alloc(Node::text("!")).into(),
25− ],
26− ))
27− .into()
28 }
24 }
29}
25}
30
26
examples/input-form/crate/src/lib.rs+6−6
@@ -19,11 +19,12 @@ impl SayHelloTo {
19}
19}
20
20
21impl Render for SayHelloTo {
21impl Render for SayHelloTo {
22− fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::NodeRef<'bump>
22+ fn render<'a, 'bump>(&'a self, bump: &'bump Bump) -> dodrio::node::Node<'bump>
23 where
23 where
24 'a: 'bump,
24 'a: 'bump,
25 {
25 {
26− let input = bump.alloc(Node::element(
26+ let input = Node::element(
27+ bump,
27 "input",
28 "input",
28 [
29 [
29 Attribute {
30 Attribute {
@@ -36,13 +37,12 @@ impl Render for SayHelloTo {
36 },
37 },
37 ],
38 ],
38 [],
39 [],
39− ));
40+ );
40
41
41 let hello = bumpalo::format!(in bump, "Hello, {}!", self.who);
42 let hello = bumpalo::format!(in bump, "Hello, {}!", self.who);
42− let hello = bump.alloc(Node::text(hello.into_bump_str()));
43+ let hello = Node::text(hello.into_bump_str());
43
44
44− bump.alloc(Node::element("div", [], [input.into(), hello.into()]))
45+ Node::element(bump, "div", [], [input, hello])
45− .into()
46 }
46 }
47}
47}
48
48