Skip to content

Commit ca732ad

Browse files
committed
Support new features
1 parent eaf5c51 commit ca732ad

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "slog-json"
3-
version = "2.0.3-pre"
3+
version = "2.1.3-pre"
44
authors = ["Dawid Ciężarkiewicz <dpc@dpc.pw>"]
55
description = "JSON drain for slog-rs"
66
keywords = ["slog", "logging", "json"]
@@ -15,10 +15,11 @@ path = "lib.rs"
1515

1616
[features]
1717
nested-values = ["erased-serde", "slog/nested-values"]
18+
dynamic-keys = ["slog/dynamic-keys"]
1819
default = []
1920

2021
[dependencies]
21-
slog = { version = "2.0.12" }
22+
slog = { version = "2.1.1" }
2223
serde_json = "1"
2324
serde = "1"
2425
chrono = "0.4"
@@ -28,4 +29,4 @@ erased-serde = {version = "0.3", optional = true }
2829
slog-async = "2"
2930

3031
[package.metadata.docs.rs]
31-
features = ["nested-values"]
32+
features = ["nested-values", "dynamic-keys"]

lib.rs

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ use slog::{FnValue, PushFnValue};
3131
use slog::{OwnedKVList, KV, SendSyncRefUnwindSafeKV};
3232
use slog::Record;
3333
use std::{io, result, fmt};
34+
use slog::Key;
3435

3536
use std::cell::RefCell;
3637
use std::fmt::Write;
@@ -70,7 +71,8 @@ impl<S: serde::Serializer> SerdeSerializer<S> {
7071

7172
macro_rules! impl_m(
7273
($s:expr, $key:expr, $val:expr) => ({
73-
try!($s.ser_map.serialize_entry($key, $val)
74+
let k_s: &str = $key.as_ref();
75+
try!($s.ser_map.serialize_entry(k_s, $val)
7476
.map_err(|_| io::Error::new(io::ErrorKind::Other, "serde serialization error")));
7577
Ok(())
7678
});
@@ -79,63 +81,63 @@ macro_rules! impl_m(
7981
impl<S> slog::Serializer for SerdeSerializer<S>
8082
where S: serde::Serializer
8183
{
82-
fn emit_bool(&mut self, key: &str, val: bool) -> slog::Result {
84+
fn emit_bool(&mut self, key: Key, val: bool) -> slog::Result {
8385
impl_m!(self, key, &val)
8486
}
8587

86-
fn emit_unit(&mut self, key: &str) -> slog::Result {
88+
fn emit_unit(&mut self, key: Key) -> slog::Result {
8789
impl_m!(self, key, &())
8890
}
8991

90-
fn emit_char(&mut self, key: &str, val: char) -> slog::Result {
92+
fn emit_char(&mut self, key: Key, val: char) -> slog::Result {
9193
impl_m!(self, key, &val)
9294
}
9395

94-
fn emit_none(&mut self, key: &str) -> slog::Result {
96+
fn emit_none(&mut self, key: Key) -> slog::Result {
9597
let val: Option<()> = None;
9698
impl_m!(self, key, &val)
9799
}
98-
fn emit_u8(&mut self, key: &str, val: u8) -> slog::Result {
100+
fn emit_u8(&mut self, key: Key, val: u8) -> slog::Result {
99101
impl_m!(self, key, &val)
100102
}
101-
fn emit_i8(&mut self, key: &str, val: i8) -> slog::Result {
103+
fn emit_i8(&mut self, key: Key, val: i8) -> slog::Result {
102104
impl_m!(self, key, &val)
103105
}
104-
fn emit_u16(&mut self, key: &str, val: u16) -> slog::Result {
106+
fn emit_u16(&mut self, key: Key, val: u16) -> slog::Result {
105107
impl_m!(self, key, &val)
106108
}
107-
fn emit_i16(&mut self, key: &str, val: i16) -> slog::Result {
109+
fn emit_i16(&mut self, key: Key, val: i16) -> slog::Result {
108110
impl_m!(self, key, &val)
109111
}
110-
fn emit_usize(&mut self, key: &str, val: usize) -> slog::Result {
112+
fn emit_usize(&mut self, key: Key, val: usize) -> slog::Result {
111113
impl_m!(self, key, &val)
112114
}
113-
fn emit_isize(&mut self, key: &str, val: isize) -> slog::Result {
115+
fn emit_isize(&mut self, key: Key, val: isize) -> slog::Result {
114116
impl_m!(self, key, &val)
115117
}
116-
fn emit_u32(&mut self, key: &str, val: u32) -> slog::Result {
118+
fn emit_u32(&mut self, key: Key, val: u32) -> slog::Result {
117119
impl_m!(self, key, &val)
118120
}
119-
fn emit_i32(&mut self, key: &str, val: i32) -> slog::Result {
121+
fn emit_i32(&mut self, key: Key, val: i32) -> slog::Result {
120122
impl_m!(self, key, &val)
121123
}
122-
fn emit_f32(&mut self, key: &str, val: f32) -> slog::Result {
124+
fn emit_f32(&mut self, key: Key, val: f32) -> slog::Result {
123125
impl_m!(self, key, &val)
124126
}
125-
fn emit_u64(&mut self, key: &str, val: u64) -> slog::Result {
127+
fn emit_u64(&mut self, key: Key, val: u64) -> slog::Result {
126128
impl_m!(self, key, &val)
127129
}
128-
fn emit_i64(&mut self, key: &str, val: i64) -> slog::Result {
130+
fn emit_i64(&mut self, key: Key, val: i64) -> slog::Result {
129131
impl_m!(self, key, &val)
130132
}
131-
fn emit_f64(&mut self, key: &str, val: f64) -> slog::Result {
133+
fn emit_f64(&mut self, key: Key, val: f64) -> slog::Result {
132134
impl_m!(self, key, &val)
133135
}
134-
fn emit_str(&mut self, key: &str, val: &str) -> slog::Result {
136+
fn emit_str(&mut self, key: Key, val: &str) -> slog::Result {
135137
impl_m!(self, key, &val)
136138
}
137139
fn emit_arguments(&mut self,
138-
key: &str,
140+
key: Key,
139141
val: &fmt::Arguments)
140142
-> slog::Result {
141143

@@ -153,7 +155,7 @@ impl<S> slog::Serializer for SerdeSerializer<S>
153155
}
154156

155157
#[cfg(feature = "nested-values")]
156-
fn emit_serde(&mut self, key: &str, value: &slog::SerdeValue) -> slog::Result {
158+
fn emit_serde(&mut self, key: Key, value: &slog::SerdeValue) -> slog::Result {
157159
impl_m!(self, key, value.as_serde())
158160
}
159161
}

0 commit comments

Comments
 (0)