~repos /tide-jsx

#rust#proc-macro#jsx

git clone https://pyrossh.dev/repos/tide-jsx.git

Tide + JSX


7bffb936 vpzomtrrfrt

5 years ago
Add Render impls for numeric primitives (#35)
render/src/lib.rs CHANGED
@@ -167,6 +167,7 @@
167
167
  pub mod fragment;
168
168
  pub mod html;
169
169
  pub mod html_escaping;
170
+ mod numbers;
170
171
  mod render;
171
172
  mod simple_element;
172
173
  mod text_element;
render/src/numbers.rs ADDED
@@ -0,0 +1,29 @@
1
+ //! Render impls for numeric primitives
2
+
3
+ use crate::Render;
4
+ use std::fmt::{Result, Write};
5
+
6
+ macro_rules! simple_render_impl {
7
+ ($t:ty) => {
8
+ impl Render for $t {
9
+ fn render_into<W: Write>(self, writer: &mut W) -> Result {
10
+ write!(writer, "{}", self)
11
+ }
12
+ }
13
+ };
14
+ }
15
+
16
+ simple_render_impl!(f32);
17
+ simple_render_impl!(f64);
18
+ simple_render_impl!(i128);
19
+ simple_render_impl!(i16);
20
+ simple_render_impl!(i32);
21
+ simple_render_impl!(i64);
22
+ simple_render_impl!(i8);
23
+ simple_render_impl!(isize);
24
+ simple_render_impl!(u128);
25
+ simple_render_impl!(u16);
26
+ simple_render_impl!(u32);
27
+ simple_render_impl!(u64);
28
+ simple_render_impl!(u8);
29
+ simple_render_impl!(usize);
render_tests/src/lib.rs CHANGED
@@ -118,6 +118,16 @@ fn owned_string() {
118
118
  );
119
119
  }
120
120
 
121
+ #[test]
122
+ fn number() {
123
+ use pretty_assertions::assert_eq;
124
+ use render::html;
125
+
126
+ let num = 42;
127
+
128
+ assert_eq!(html! { <p>{num}</p> }, "<p>42</p>")
129
+ }
130
+
121
131
  mod kaki {
122
132
  // A simple HTML 5 doctype declaration
123
133
  use render::html::HTML5Doctype;