Trait slog::Value [] [src]

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

Value that can be serialized

Types that implement this type implement custome serialization in the structured part of the log macros. Without an implementation of Value for your type you must emit using either the ? "debug", % "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

Serialize self into Serializer

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

Implementations on Foreign Types

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

[src]

impl Value for usize
[src]

[src]

impl Value for isize
[src]

[src]

impl Value for bool
[src]

[src]

impl Value for char
[src]

[src]

impl Value for u8
[src]

[src]

impl Value for i8
[src]

[src]

impl Value for u16
[src]

[src]

impl Value for i16
[src]

[src]

impl Value for u32
[src]

[src]

impl Value for i32
[src]

[src]

impl Value for f32
[src]

[src]

impl Value for u64
[src]

[src]

impl Value for i64
[src]

[src]

impl Value for f64
[src]

[src]

impl Value for ()
[src]

[src]

impl Value for str
[src]

[src]

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

[src]

impl Value for String
[src]

[src]

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

[src]

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

[src]

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

[src]

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

[src]

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

[src]

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

[src]

Implementors