Rename [render, render_to] -> [to_string, render]
It's more consistent with existing conventions
This commit is contained in:
parent
dd9679fa89
commit
d8ee991da2
2 changed files with 28 additions and 30 deletions
|
@ -29,7 +29,7 @@
|
|||
//! let markup = html! {
|
||||
//! p { "Hi, " $name "!" }
|
||||
//! };
|
||||
//! assert_eq!(markup.render(), "<p>Hi, Lyra!</p>");
|
||||
//! assert_eq!(markup.to_string(), "<p>Hi, Lyra!</p>");
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
|
@ -169,25 +169,15 @@ pub fn escape(s: &str) -> String {
|
|||
|
||||
/// A block of HTML markup, as returned by the `html!` macro.
|
||||
///
|
||||
/// Use `.render()` to convert it to a `String`, or `.render_to()` to
|
||||
/// Use `.to_string()` to convert it to a `String`, or `.render()` to
|
||||
/// write it directly to a handle.
|
||||
pub struct Markup<F> {
|
||||
callback: F,
|
||||
}
|
||||
|
||||
impl<F> Markup<F> where F: Fn(&mut fmt::Writer) -> fmt::Result {
|
||||
/// Render the markup to a `String`.
|
||||
pub fn render(&self) -> String {
|
||||
let mut buf = String::new();
|
||||
self.render_fmt(&mut buf).unwrap();
|
||||
buf
|
||||
}
|
||||
|
||||
/// Render the markup to a `std::io::Writer`.
|
||||
///
|
||||
/// This may be more efficient than calling `.render()`, as it
|
||||
/// doesn't allocate an intermediate `String`.
|
||||
pub fn render_to(&self, w: &mut Writer) -> IoResult<()> {
|
||||
pub fn render(&self, w: &mut Writer) -> IoResult<()> {
|
||||
struct WriterWrapper<'a, 'b: 'a> {
|
||||
inner: &'a mut (Writer + 'b),
|
||||
}
|
||||
|
@ -210,6 +200,14 @@ impl<F> Markup<F> where F: Fn(&mut fmt::Writer) -> fmt::Result {
|
|||
}
|
||||
}
|
||||
|
||||
impl<F> ToString for Markup<F> where F: Fn(&mut fmt::Writer) -> fmt::Result {
|
||||
fn to_string(&self) -> String {
|
||||
let mut buf = String::new();
|
||||
self.render_fmt(&mut buf).unwrap();
|
||||
buf
|
||||
}
|
||||
}
|
||||
|
||||
/// Internal functions used by the `maud_macros` package. You should
|
||||
/// never need to call these directly.
|
||||
#[doc(hidden)]
|
||||
|
|
|
@ -6,13 +6,13 @@ extern crate maud;
|
|||
|
||||
#[test]
|
||||
fn literals() {
|
||||
let s = html!("du\tcks" -23 3.14 '\n' "geese").render();
|
||||
let s = html!("du\tcks" -23 3.14 '\n' "geese").to_string();
|
||||
assert_eq!(s, "du\tcks-233.14\ngeese");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn escaping() {
|
||||
let s = html!("<flim&flam>").render();
|
||||
let s = html!("<flim&flam>").to_string();
|
||||
assert_eq!(s, "<flim&flam>");
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ fn semicolons() {
|
|||
"three";
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
"four";
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, "onetwothreefour");
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ fn blocks() {
|
|||
" ducks" " geese"
|
||||
}
|
||||
" swans"
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, "hello ducks geese swans");
|
||||
}
|
||||
|
||||
|
@ -45,19 +45,19 @@ mod elements {
|
|||
fn simple() {
|
||||
let s = html! {
|
||||
p { b { "pickle" } "barrel" i { "kumquat" } }
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, "<p><b>pickle</b>barrel<i>kumquat</i></p>");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn nesting() {
|
||||
let s = html!(html body div p sup "butts").render();
|
||||
let s = html!(html body div p sup "butts").to_string();
|
||||
assert_eq!(s, "<html><body><div><p><sup>butts</sup></p></div></body></html>");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty() {
|
||||
let s = html!("pinkie" br/ "pie").render();
|
||||
let s = html!("pinkie" br/ "pie").to_string();
|
||||
assert_eq!(s, "pinkie<br>pie");
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ mod elements {
|
|||
section id="midriff" {
|
||||
p class="hotpink" "Hello!"
|
||||
}
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, concat!(
|
||||
r#"<link rel="stylesheet" href="styles.css">"#,
|
||||
r#"<section id="midriff"><p class="hotpink">Hello!</p></section>"#));
|
||||
|
@ -76,7 +76,7 @@ mod elements {
|
|||
|
||||
#[test]
|
||||
fn empty_attributes() {
|
||||
let s = html! { div readonly=! input type="checkbox" checked=! / }.render();
|
||||
let s = html! { div readonly=! input type="checkbox" checked=! / }.to_string();
|
||||
assert_eq!(s, r#"<div readonly><input type="checkbox" checked></div>"#);
|
||||
}
|
||||
}
|
||||
|
@ -84,13 +84,13 @@ mod elements {
|
|||
mod splices {
|
||||
#[test]
|
||||
fn literals() {
|
||||
let s = html! { $"<pinkie>" }.render();
|
||||
let s = html! { $"<pinkie>" }.to_string();
|
||||
assert_eq!(s, "<pinkie>");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn raw_literals() {
|
||||
let s = html! { $$"<pinkie>" }.render();
|
||||
let s = html! { $$"<pinkie>" }.to_string();
|
||||
assert_eq!(s, "<pinkie>");
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,7 @@ mod splices {
|
|||
}
|
||||
result
|
||||
}
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, "3628800");
|
||||
}
|
||||
|
||||
|
@ -112,14 +112,14 @@ mod splices {
|
|||
|
||||
#[test]
|
||||
fn statics() {
|
||||
let s = html! { $BEST_PONY }.render();
|
||||
let s = html! { $BEST_PONY }.to_string();
|
||||
assert_eq!(s, "Pinkie Pie");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn closures() {
|
||||
let best_pony = "Pinkie Pie";
|
||||
let s = html! { $best_pony }.render();
|
||||
let s = html! { $best_pony }.to_string();
|
||||
assert_eq!(s, "Pinkie Pie");
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ mod splices {
|
|||
};
|
||||
let s = html! {
|
||||
"Name: " $pinkie.name ". Rating: " $pinkie.repugnance()
|
||||
}.render();
|
||||
}.to_string();
|
||||
assert_eq!(s, "Name: Pinkie Pie. Rating: 1");
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ mod splices {
|
|||
#[test]
|
||||
fn nested_macro_invocation() {
|
||||
let best_pony = "Pinkie Pie";
|
||||
let s = html! { $(format!("{}", best_pony)) }.render();
|
||||
let s = html! { $(format!("{}", best_pony)) }.to_string();
|
||||
assert_eq!(s, "Pinkie Pie");
|
||||
}
|
||||
*/
|
||||
|
@ -165,5 +165,5 @@ mod splices {
|
|||
#[test]
|
||||
fn issue_1() {
|
||||
let markup = html! { "Test" };
|
||||
let _ = markup.render();
|
||||
let _ = markup.to_string();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue