Skip to content

Commit e8eeb53

Browse files
authored
fix(various): bugs and parse-impl (#35)
1 parent 5bf5b1c commit e8eeb53

6 files changed

Lines changed: 26 additions & 3 deletions

File tree

packages/copper/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pistonite-cu"
3-
version = "0.7.3"
3+
version = "0.7.4"
44
edition = "2024"
55
description = "Battery-included common utils to speed up development of rust tools"
66
repository = "https://github.com/Pistonite/cu"
@@ -106,6 +106,7 @@ json-preserve-order = ["json", "serde_json/preserve_order"]
106106
yaml = ["parse", "serde", "dep:serde_yaml_ng"]
107107
toml = ["parse", "serde", "dep:toml"]
108108
toml-preserve-order = ["toml", "toml/preserve_order"]
109+
parse-impl = ["parse"] # re-export implementation details, such as toml::ser
109110

110111
# Internally used to document where nightly feature is used
111112
# (in particular, doc_cfg)

packages/copper/Taskfile.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ tasks:
5353
PACKAGE: pistonite-cu
5454
FEATURES: full
5555
- task: cargo:fmt-check
56-
- cmd: echo "checking default feature"; (grep "^default = \[\]$" Cargo.toml || rg "^default = \[\]$" Cargo.toml)
56+
- cmd: echo "checking default feature"; grep "^default = \[\]$" Cargo.toml
5757

5858
fix:
5959
- task: cargo:fmt-fix

packages/copper/src/cli/flags.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,29 @@ fn handle_result(start: Instant, result: crate::Result<()>) -> std::process::Exi
285285
// so user is directed to see what is the most important
286286
crate::debug!("finished in {elapsed:.2}s");
287287
}
288+
reset_color();
288289
std::process::ExitCode::FAILURE
289290
} else {
290291
if crate::lv::is_print_time_enabled() {
291292
crate::info!("finished in {elapsed:.2}s");
292293
}
294+
reset_color();
293295
std::process::ExitCode::SUCCESS
294296
}
295297
}
298+
299+
fn reset_color() {
300+
use std::io::IsTerminal as _;
301+
use std::io::Write as _;
302+
let mut stdout = std::io::stdout();
303+
if stdout.is_terminal() {
304+
let _ = write!(stdout, "\x1b[0m");
305+
let _ = stdout.flush();
306+
return;
307+
}
308+
let mut stderr = std::io::stderr();
309+
if stderr.is_terminal() {
310+
let _ = write!(stderr, "\x1b[0m");
311+
let _ = stderr.flush();
312+
}
313+
}

packages/copper/src/errhand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ macro_rules! unimplemented {
175175
return Err($crate::Error::msg("not implemented"));
176176
}};
177177
($($args:tt)*) => {{
178-
let msg = format!("{}", format_args!($(args)*));
178+
let msg = format!("{}", format_args!($($args)*));
179179
$crate::trace!("unexpected: not implemented reached: {msg}");
180180
$crate::bail!("not implemented: {msg}")
181181
}}

packages/copper/src/parse/json_impl.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
/// ```
3131
pub mod json {
3232
use crate::{Context, Parse};
33+
#[cfg(feature = "parse-impl")]
34+
pub use ::serde_json::{de, error, map, ser, value};
3335
use serde::{Deserialize, Serialize};
3436
pub use serde_json::{Map, Number, Value};
3537

packages/copper/src/parse/toml_impl.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ pub mod toml {
4141
use crate::{Context, Parse};
4242
pub use ::toml::value::{Date, Datetime, Offset, Time};
4343
pub use ::toml::{Spanned, Table, Value, value::Array as Vec};
44+
#[cfg(feature = "parse-impl")]
45+
pub use ::toml::{de, map, ser, value};
4446
use serde::{Deserialize, Serialize};
4547

4648
/// TOML parse delegate. See [`toml`](module@crate::toml)

0 commit comments

Comments
 (0)