[][src]Trait sailfish::runtime::Render

pub trait Render {
    pub fn render(&self, b: &mut Buffer) -> Result<(), RenderError>;

    pub fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError> { ... }
}

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.

Safety

This trait allows modifying the previously-rendered contents or even decreasing the buffer size. However, such an operation easily cause unexpected rendering results. In order to avoid this, implementors should ensure that the contents which is already rendered won't be changed during render or render_escaped method is called.

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)
    }
}

Required methods

pub fn render(&self, b: &mut Buffer) -> Result<(), RenderError>[src]

render to Buffer without escaping

Loading content...

Provided methods

pub fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>[src]

render to Buffer with HTML escaping

Loading content...

Implementations on Foreign Types

impl Render for String[src]

impl<'_> Render for &'_ str[src]

impl Render for char[src]

impl Render for PathBuf[src]

impl Render for Path[src]

impl Render for bool[src]

impl Render for u8[src]

impl Render for u16[src]

impl Render for u32[src]

impl Render for u64[src]

impl Render for u128[src]

impl Render for i8[src]

impl Render for i16[src]

impl Render for i32[src]

impl Render for i64[src]

impl Render for i128[src]

impl Render for usize[src]

impl Render for isize[src]

impl Render for f32[src]

impl Render for f64[src]

impl<'a, T: Render + ?Sized> Render for &'a T[src]

impl<'a, T: Render + ?Sized> Render for &'a mut T[src]

impl<T: Render + ?Sized> Render for Box<T>[src]

impl<T: Render + ?Sized> Render for Rc<T>[src]

impl<T: Render + ?Sized> Render for Arc<T>[src]

impl<'a, T: Render + ToOwned + ?Sized> Render for Cow<'a, T>[src]

impl<'a, T: Render + ?Sized> Render for Ref<'a, T>[src]

impl<'a, T: Render + ?Sized> Render for RefMut<'a, T>[src]

impl<'a, T: Render + ?Sized> Render for MutexGuard<'a, T>[src]

impl<'a, T: Render + ?Sized> Render for RwLockReadGuard<'a, T>[src]

impl<'a, T: Render + ?Sized> Render for RwLockWriteGuard<'a, T>[src]

impl Render for NonZeroI8[src]

impl Render for NonZeroI16[src]

impl Render for NonZeroI32[src]

impl Render for NonZeroI64[src]

impl Render for NonZeroI128[src]

impl Render for NonZeroIsize[src]

impl Render for NonZeroU8[src]

impl Render for NonZeroU16[src]

impl Render for NonZeroU32[src]

impl Render for NonZeroU64[src]

impl Render for NonZeroU128[src]

impl Render for NonZeroUsize[src]

impl<T: Render> Render for Wrapping<T>[src]

Loading content...

Implementors

impl<'a, T: Render> Render for Lower<'a, T>[src]

impl<'a, T: Render> Render for Trim<'a, T>[src]

impl<'a, T: Render> Render for Truncate<'a, T>[src]

impl<'a, T: Render> Render for Upper<'a, T>[src]

impl<'a, T: Debug> Render for Debug<'a, T>[src]

impl<'a, T: Display> Render for Display<'a, T>[src]

impl<'a, T: Serialize> Render for Json<'a, T>[src]

This is supported on crate feature json only.
Loading content...