pub trait Render {
// Required method
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>;
// Provided method
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError> { ... }
}
Expand description
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§
Provided Methods§
sourcefn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
render to Buffer
with HTML escaping
Implementations on Foreign Types§
source§impl Render for bool
impl Render for bool
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for char
impl Render for char
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for f32
impl Render for f32
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for f64
impl Render for f64
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for i8
impl Render for i8
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for i16
impl Render for i16
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for i32
impl Render for i32
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for i64
impl Render for i64
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for i128
impl Render for i128
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for isize
impl Render for isize
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for str
impl Render for str
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for u8
impl Render for u8
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for u16
impl Render for u16
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for u32
impl Render for u32
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for u64
impl Render for u64
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for u128
impl Render for u128
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for usize
impl Render for usize
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for String
impl Render for String
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroI8
impl Render for NonZeroI8
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroI16
impl Render for NonZeroI16
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroI32
impl Render for NonZeroI32
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroI64
impl Render for NonZeroI64
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroI128
impl Render for NonZeroI128
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroIsize
impl Render for NonZeroIsize
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroU8
impl Render for NonZeroU8
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroU16
impl Render for NonZeroU16
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroU32
impl Render for NonZeroU32
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroU64
impl Render for NonZeroU64
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroU128
impl Render for NonZeroU128
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for NonZeroUsize
impl Render for NonZeroUsize
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for Path
impl Render for Path
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl Render for PathBuf
impl Render for PathBuf
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ToOwned + ?Sized> Render for Cow<'a, T>
impl<'a, T: Render + ToOwned + ?Sized> Render for Cow<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for &'a T
impl<'a, T: Render + ?Sized> Render for &'a T
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for &'a mut T
impl<'a, T: Render + ?Sized> Render for &'a mut T
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for Ref<'a, T>
impl<'a, T: Render + ?Sized> Render for Ref<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for RefMut<'a, T>
impl<'a, T: Render + ?Sized> Render for RefMut<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for MutexGuard<'a, T>
impl<'a, T: Render + ?Sized> Render for MutexGuard<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for RwLockReadGuard<'a, T>
impl<'a, T: Render + ?Sized> Render for RwLockReadGuard<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<'a, T: Render + ?Sized> Render for RwLockWriteGuard<'a, T>
impl<'a, T: Render + ?Sized> Render for RwLockWriteGuard<'a, T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<T: Render + ?Sized> Render for Box<T>
impl<T: Render + ?Sized> Render for Box<T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<T: Render + ?Sized> Render for Rc<T>
impl<T: Render + ?Sized> Render for Rc<T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<T: Render + ?Sized> Render for Arc<T>
impl<T: Render + ?Sized> Render for Arc<T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
source§impl<T: Render> Render for Wrapping<T>
impl<T: Render> Render for Wrapping<T>
fn render(&self, b: &mut Buffer) -> Result<(), RenderError>
fn render_escaped(&self, b: &mut Buffer) -> Result<(), RenderError>
Implementors§
impl<'a, T: Debug + ?Sized> Render for Debug<'a, T>
impl<'a, T: Display + ?Sized> Render for Display<'a, T>
impl<'a, T: Serialize + ?Sized> Render for Json<'a, T>
Available on crate feature
json
only.