Trait slog::Value[][src]

pub trait Value {
    fn serialize(
        &self,
        record: &Record<'_>,
        key: Key,
        serializer: &mut dyn Serializer
    ) -> Result; }

Value that can be serialized

Types that implement this type implement custom serialization in the structured part of the log macros. Without an implementation of Value for your type you must emit using either the ? “debug”, #? “pretty-debug”, % “display”, #% “alternate display” or SerdeValue (if you have the nested-values feature enabled) formatters.

Example

use slog::{Key, Value, Record, Result, Serializer};
struct MyNewType(i64);

impl Value for MyNewType {
    fn serialize(&self, _rec: &Record, key: Key, serializer: &mut Serializer) -> Result {
        serializer.emit_i64(key, self.0)
    }
}

See also KV for formatting both the key and value.

Required methods

fn serialize(
    &self,
    record: &Record<'_>,
    key: Key,
    serializer: &mut dyn Serializer
) -> Result
[src]

Serialize self into Serializer

Structs implementing this trait should generally only call respective methods of serializer.

Loading content...

Implementations on Foreign Types

impl<'a, V: ?Sized> Value for &'a V where
    V: Value
[src]

impl Value for usize[src]

impl Value for isize[src]

impl Value for bool[src]

impl Value for char[src]

impl Value for u8[src]

impl Value for i8[src]

impl Value for u16[src]

impl Value for i16[src]

impl Value for u32[src]

impl Value for i32[src]

impl Value for f32[src]

impl Value for u64[src]

impl Value for i64[src]

impl Value for f64[src]

impl Value for u128[src]

impl Value for i128[src]

impl Value for ()[src]

impl Value for str[src]

impl<'a> Value for Arguments<'a>[src]

impl Value for String[src]

impl<T: Value> Value for Option<T>[src]

impl<T: ?Sized> Value for Box<T> where
    T: Value
[src]

impl<T: ?Sized> Value for Arc<T> where
    T: Value
[src]

impl<T> Value for Rc<T> where
    T: Value
[src]

impl<T> Value for Wrapping<T> where
    T: Value
[src]

impl<'a> Value for Display<'a>[src]

impl Value for SocketAddr[src]

impl Value for Error[src]

Loading content...

Implementors

impl<'a, V: 'a + Value, F> Value for FnValue<V, F> where
    F: 'a + for<'c, 'd> Fn(&'c Record<'d>) -> V, 
[src]

impl<E> Value for ErrorValue<E> where
    E: 'static + Error
[src]

impl<F> Value for PushFnValue<F> where
    F: 'static + for<'c, 'd> Fn(&'c Record<'d>, PushFnValueSerializer<'c>) -> Result
[src]

Loading content...