summaryrefslogtreecommitdiff
path: root/src/cmds/renderer/json_pretty.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-01-27 06:16:58 +0800
committer魏曹先生 <1992414357@qq.com>2026-01-27 06:16:58 +0800
commit2abc5acd25756f3ef6a6ad34f8777ffe241e750d (patch)
treeb312764324b4da037d5b3c46957a77dcd19502f3 /src/cmds/renderer/json_pretty.rs
parent4eef9ce364bb660421a96052a3fb126a33b22c63 (diff)
Reorganize command modules under a unified cmds directory
Diffstat (limited to 'src/cmds/renderer/json_pretty.rs')
-rw-r--r--src/cmds/renderer/json_pretty.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cmds/renderer/json_pretty.rs b/src/cmds/renderer/json_pretty.rs
new file mode 100644
index 0000000..a4a3ba5
--- /dev/null
+++ b/src/cmds/renderer/json_pretty.rs
@@ -0,0 +1,26 @@
+use serde::Serialize;
+
+use crate::{
+ r_print,
+ systems::cmd::{
+ errors::CmdRenderError,
+ renderer::{JVRenderResult, JVResultRenderer},
+ },
+};
+
+pub struct JVResultPrettyJsonRenderer;
+
+impl<T> JVResultRenderer<T> for JVResultPrettyJsonRenderer
+where
+ T: Serialize + Sync,
+{
+ async fn render(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+ let json_string = serde_json::to_string_pretty(data)
+ .map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", json_string);
+
+ Ok(r)
+ }
+}