ahecha_html/render/render_string/
numbers.rs1use std::fmt::{Result, Write};
2
3macro_rules! impl_renderable {
4 ($($t:ty),*) => {
5 $(
6 impl crate::render::RenderString for $t {
7 fn render_into<W: Write>(self, writer: &mut W) -> Result {
8 write!(writer, "{}", self)
9 }
10 }
11
12 impl crate::render::RenderString for & $t {
13 fn render_into<W: Write>(self, writer: &mut W) -> Result {
14 write!(writer, "{}", self)
15 }
16 }
17 )*
18 };
19}
20
21impl_renderable!(u8, u16, u32, u64, u128, usize, i8, i16, i32, i64, i128, isize, f32, f64);
22
23#[cfg(test)]
24mod test {
25 use crate::{
26 html::{Element, Node},
27 render::RenderString,
28 Children, NodeId,
29 };
30
31 #[test]
32 fn test_render_into() {
33 let element = Element {
34 name: "div",
35 attributes: Default::default(),
36 children: Children::default()
37 .set(Node::Element(
38 Element {
39 name: "span",
40 attributes: Default::default(),
41 children: Children::default()
42 .set(Node::Text("Hello".to_owned()))
43 .set(Node::Text(" ".to_owned()))
44 .set(Node::Text("1".to_owned())),
45 },
46 NodeId::new(),
47 ))
48 .set(Node::Text(", World 2".to_owned())),
49 };
50
51 assert_eq!(element.render(), "<div><span>Hello 1</span>, World 2</div>");
52 }
53}