uuid/external/
slog_support.rs1use crate::{non_nil::NonNilUuid, Uuid};
13
14impl slog::Value for Uuid {
15 fn serialize(
16 &self,
17 _: &slog::Record<'_>,
18 key: slog::Key,
19 serializer: &mut dyn slog::Serializer,
20 ) -> Result<(), slog::Error> {
21 serializer.emit_arguments(key, &format_args!("{}", self))
22 }
23}
24
25impl slog::Value for NonNilUuid {
26 fn serialize(
27 &self,
28 record: &slog::Record<'_>,
29 key: slog::Key,
30 serializer: &mut dyn slog::Serializer,
31 ) -> Result<(), slog::Error> {
32 Uuid::from(*self).serialize(record, key, serializer)
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use crate::tests::new;
39
40 use slog::{crit, Drain};
41
42 #[test]
43 fn test_slog_kv() {
44 let root = slog::Logger::root(slog::Discard.fuse(), slog::o!());
45 let u1 = new();
46 crit!(root, "test"; "u1" => u1);
47 }
48}