Update doc comments
This commit is contained in:
parent
03413d1bcc
commit
be293c8f90
|
@ -42,6 +42,10 @@ pub use runtime::{RenderError, RenderResult};
|
||||||
|
|
||||||
/// Template that can be rendered with consuming itself.
|
/// Template that can be rendered with consuming itself.
|
||||||
pub trait TemplateOnce: Sized {
|
pub trait TemplateOnce: Sized {
|
||||||
|
/// Render the template and return the rendering result as `RenderResult`
|
||||||
|
///
|
||||||
|
/// This method never returns `Err`, unless you manually implement `Render` trait
|
||||||
|
/// for custom type and return `Err` inside it.
|
||||||
#[inline]
|
#[inline]
|
||||||
fn render_once(self) -> runtime::RenderResult {
|
fn render_once(self) -> runtime::RenderResult {
|
||||||
let mut buf = String::new();
|
let mut buf = String::new();
|
||||||
|
@ -49,6 +53,7 @@ pub trait TemplateOnce: Sized {
|
||||||
Ok(buf)
|
Ok(buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Render the template and append the result to `buf`.
|
||||||
fn render_once_to_string(self, buf: &mut String) -> Result<(), RenderError>;
|
fn render_once_to_string(self, buf: &mut String) -> Result<(), RenderError>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,9 @@ impl Buffer {
|
||||||
self.len = 0;
|
self.len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Converts a `Buffer` into a `String`.
|
||||||
|
///
|
||||||
|
/// This consumes the `Buffer`, so we do not need to copy its contents.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn into_string(self) -> String {
|
pub fn into_string(self) -> String {
|
||||||
let buf = ManuallyDrop::new(self);
|
let buf = ManuallyDrop::new(self);
|
||||||
|
|
|
@ -38,6 +38,19 @@ pub fn escape(feed: &str, buf: &mut Buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// default escape function
|
/// default escape function
|
||||||
|
///
|
||||||
|
/// This function appends the escaped contents of `feed` into `buf`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use sailfish::runtime::Buffer;
|
||||||
|
/// use sailfish::runtime::escape::escape;
|
||||||
|
///
|
||||||
|
/// let mut buf = Buffer::new();
|
||||||
|
/// escape("<h1>Hello, world!</h1>", &mut buf);
|
||||||
|
/// assert_eq!(buf.as_str(), "<h1>Hello, world!</h1>");
|
||||||
|
/// ```
|
||||||
#[cfg(not(target_feature = "avx2"))]
|
#[cfg(not(target_feature = "avx2"))]
|
||||||
pub fn escape(feed: &str, buf: &mut Buffer) {
|
pub fn escape(feed: &str, buf: &mut Buffer) {
|
||||||
let fun = if is_x86_feature_detected!("avx2") {
|
let fun = if is_x86_feature_detected!("avx2") {
|
||||||
|
@ -52,6 +65,7 @@ pub fn escape(feed: &str, buf: &mut Buffer) {
|
||||||
unsafe { fun(feed, buf) };
|
unsafe { fun(feed, buf) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Change the default escape function
|
||||||
pub fn register_escape_fn(fun: fn(&str, &mut Buffer)) {
|
pub fn register_escape_fn(fun: fn(&str, &mut Buffer)) {
|
||||||
FN.store(fun as FnRaw, Ordering::Relaxed);
|
FN.store(fun as FnRaw, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,24 @@ use super::buffer::Buffer;
|
||||||
use super::{escape, RenderError};
|
use super::{escape, RenderError};
|
||||||
|
|
||||||
/// types which can be rendered inside buffer block (`<%= %>`)
|
/// types which can be rendered inside buffer block (`<%= %>`)
|
||||||
|
///
|
||||||
|
/// If you want to render the custom data, you must implement this trait and specify
|
||||||
|
/// the behaviour.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use sailfish::runtime::{Buffer, Render, RenderError};
|
||||||
|
///
|
||||||
|
/// struct MyU64(u64);
|
||||||
|
///
|
||||||
|
/// impl Render for MyU64 {
|
||||||
|
/// #[inline]
|
||||||
|
/// fn render(&self, b: &mut Buffer) -> Result<(), RenderError> {
|
||||||
|
/// self.0.render(b)
|
||||||
|
/// }
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
pub trait Render {
|
pub trait Render {
|
||||||
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>;
|
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use std::sync::atomic::{AtomicUsize, Ordering};
|
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||||
|
|
||||||
/// Dynamic size hint
|
/// Dynamically updated size hint
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct SizeHint {
|
pub struct SizeHint {
|
||||||
value: AtomicUsize,
|
value: AtomicUsize,
|
||||||
|
|
Loading…
Reference in New Issue