From baa8759d680b5ed5fd6f568adba80f3fa7a52c1f Mon Sep 17 00:00:00 2001 From: Arijit Basu Date: Wed, 26 Oct 2022 14:21:28 +0530 Subject: [PATCH] Minor performance improvement --- src/cli.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 21ac989..6063ab8 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -214,8 +214,14 @@ fn fmt_msg_in(args: Vec) -> Result { bail!("too many arguments") } - let msg: yaml::Value = yaml::from_str(&msg)?; - let msg = json::to_string(&msg)?; + // Since we'll mostly by passing json using `-m`, and json is faster than yaml + // let's try to validate using json first. + let msg = if let Ok(val) = json::from_str::(&msg) { + json::to_string(&val)? + } else { + let val: yaml::Value = yaml::from_str(&msg)?; + json::to_string(&val)? + }; Ok(msg) }