slog

Trait Value

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

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§

Source

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

Serialize self into Serializer

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

Implementations on Foreign Types§

Source§

impl Value for SocketAddr

Source§

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

Source§

impl Value for bool

Source§

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

Source§

impl Value for char

Source§

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

Source§

impl Value for f32

Source§

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

Source§

impl Value for f64

Source§

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

Source§

impl Value for i8

Source§

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

Source§

impl Value for i16

Source§

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

Source§

impl Value for i32

Source§

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

Source§

impl Value for i64

Source§

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

Source§

impl Value for i128

Source§

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

Source§

impl Value for isize

Source§

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

Source§

impl Value for str

Source§

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

Source§

impl Value for u8

Source§

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

Source§

impl Value for u16

Source§

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

Source§

impl Value for u32

Source§

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

Source§

impl Value for u64

Source§

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

Source§

impl Value for u128

Source§

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

Source§

impl Value for ()

Source§

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

Source§

impl Value for usize

Source§

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

Source§

impl Value for String

Source§

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

Source§

impl Value for Error

Source§

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

Source§

impl<'a> Value for Arguments<'a>

Source§

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

Source§

impl<'a> Value for Display<'a>

Source§

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

Source§

impl<'a, V> Value for &'a V
where V: Value + ?Sized,

Source§

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

Source§

impl<T> Value for Box<T>
where T: Value + ?Sized,

Source§

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

Source§

impl<T> Value for Rc<T>
where T: Value,

Source§

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

Source§

impl<T> Value for Arc<T>
where T: Value + ?Sized,

Source§

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

Source§

impl<T> Value for Wrapping<T>
where T: Value,

Source§

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

Source§

impl<T: Value> Value for Option<T>

Source§

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

Implementors§

Source§

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

Source§

impl<E> Value for ErrorValue<E>
where E: 'static + Error,

Source§

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