Skip to content

Commit f5af618

Browse files
authored
feat(json): Abstract away writing json (#97)
2 parents b81edde + 5630304 commit f5af618

5 files changed

Lines changed: 10 additions & 6 deletions

File tree

Cargo.lock

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/libtest-json/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ pre-release-replacements = [
2626
[features]
2727
default = []
2828
serde = ["dep:serde"]
29+
json = ["dep:serde_json", "serde"]
2930
unstable-schema = ["serde", "dep:schemars", "dep:serde_json"]
3031

3132
[dependencies]

crates/libtest-json/src/event.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ pub enum Event {
3232
},
3333
}
3434

35+
impl Event {
36+
#[cfg(feature = "json")]
37+
pub fn to_jsonline(&self) -> String {
38+
serde_json::to_string(self).expect("always valid json")
39+
}
40+
}
41+
3542
#[derive(Copy, Clone, Default, Debug, PartialEq, Eq)]
3643
#[cfg_attr(feature = "unstable-schema", derive(schemars::JsonSchema))]
3744
#[cfg_attr(feature = "serde", derive(serde::Serialize))]

crates/libtest2-harness/Cargo.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pre-release-replacements = [
2626
[features]
2727
default = []
2828
color = ["dep:anstream", "dep:anstyle"]
29-
json = ["libtest-json/serde", "dep:serde", "dep:serde_json"]
29+
json = ["libtest-json/json"]
3030
threads = []
3131

3232
[dependencies]
@@ -35,8 +35,6 @@ lexarg-error = { version = "0.1.0", path = "../lexarg-error" }
3535
libtest-lexarg = { version = "0.1.0", path = "../libtest-lexarg" }
3636
anstream = { version = "0.6.4", optional = true }
3737
anstyle = { version = "1.0.10", optional = true }
38-
serde = { version = "1.0.160", features = ["derive"], optional = true }
39-
serde_json = { version = "1.0.96", optional = true }
4038
libtest-json = { version = "0.1.0", path = "../libtest-json" }
4139

4240
[dev-dependencies]

crates/libtest2-harness/src/notify/json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ impl<W: std::io::Write> JsonNotifier<W> {
1313

1414
impl<W: std::io::Write> super::Notifier for JsonNotifier<W> {
1515
fn notify(&mut self, event: Event) -> std::io::Result<()> {
16-
let event = serde_json::to_string(&event)?;
16+
let event = event.to_jsonline();
1717
writeln!(self.writer, "{event}")?;
1818
Ok(())
1919
}

0 commit comments

Comments
 (0)