summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cargo/registry.toml16
-rw-r--r--Cargo.lock2
-rw-r--r--Cargo.toml3
-rw-r--r--src/cmds/override/renderer/ron.rs17
-rw-r--r--src/cmds/override/renderer/ron_pretty.rs20
-rw-r--r--src/cmds/override/renderer/toml.rs16
-rw-r--r--src/cmds/override/renderer/yaml.rs16
7 files changed, 90 insertions, 0 deletions
diff --git a/.cargo/registry.toml b/.cargo/registry.toml
index 9077c4b..702ab20 100644
--- a/.cargo/registry.toml
+++ b/.cargo/registry.toml
@@ -25,6 +25,22 @@ type = "crate::cmds::r#override::renderer::json"
name = "json-pretty"
type = "crate::cmds::r#override::renderer::json_pretty"
+[renderer.ron]
+name = "ron"
+type = "crate::cmds::r#override::renderer::ron"
+
+[renderer.ron_pretty]
+name = "ron-pretty"
+type = "crate::cmds::r#override::renderer::ron_pretty"
+
+[renderer.toml]
+name = "toml"
+type = "crate::cmds::r#override::renderer::toml"
+
+[renderer.yaml]
+name = "yaml"
+type = "crate::cmds::r#override::renderer::yaml"
+
####################
### Auto-Collect ###
####################
diff --git a/Cargo.lock b/Cargo.lock
index f05db8c..fdd5831 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1146,9 +1146,11 @@ dependencies = [
"log",
"regex",
"render_system_macros",
+ "ron",
"rust-i18n",
"serde",
"serde_json",
+ "serde_yaml",
"thiserror 2.0.17",
"tokio",
"toml 0.9.8",
diff --git a/Cargo.toml b/Cargo.toml
index 745f431..5c078ad 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -64,6 +64,9 @@ thiserror = "2.0.17"
erased_serde = { package = "erased-serde", version = "0.4" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
+serde_yaml = "0.9"
+ron = "0.11.0"
+toml = "0.9"
# Command Line
clap = { version = "4.5", features = ["derive"] }
diff --git a/src/cmds/override/renderer/ron.rs b/src/cmds/override/renderer/ron.rs
new file mode 100644
index 0000000..8cd0bbd
--- /dev/null
+++ b/src/cmds/override/renderer/ron.rs
@@ -0,0 +1,17 @@
+use serde::Serialize;
+
+use crate::{
+ r_print,
+ systems::{cmd::errors::CmdRenderError, render::renderer::JVRenderResult},
+};
+
+pub async fn render<T: Serialize + Send>(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+
+ let ron_string =
+ ron::ser::to_string(data).map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", ron_string);
+
+ Ok(r)
+}
diff --git a/src/cmds/override/renderer/ron_pretty.rs b/src/cmds/override/renderer/ron_pretty.rs
new file mode 100644
index 0000000..cd6b7d5
--- /dev/null
+++ b/src/cmds/override/renderer/ron_pretty.rs
@@ -0,0 +1,20 @@
+use serde::Serialize;
+
+use crate::{
+ r_print,
+ systems::{cmd::errors::CmdRenderError, render::renderer::JVRenderResult},
+};
+
+pub async fn render<T: Serialize + Send>(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+ let mut pretty_config = ron::ser::PrettyConfig::new();
+ pretty_config.new_line = std::borrow::Cow::from("\n");
+ pretty_config.indentor = std::borrow::Cow::from(" ");
+
+ let ron_string = ron::ser::to_string_pretty(data, pretty_config)
+ .map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", ron_string);
+
+ Ok(r)
+}
diff --git a/src/cmds/override/renderer/toml.rs b/src/cmds/override/renderer/toml.rs
new file mode 100644
index 0000000..83de042
--- /dev/null
+++ b/src/cmds/override/renderer/toml.rs
@@ -0,0 +1,16 @@
+use serde::Serialize;
+
+use crate::{
+ r_print,
+ systems::{cmd::errors::CmdRenderError, render::renderer::JVRenderResult},
+};
+
+pub async fn render<T: Serialize + Send>(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+ let toml_string =
+ toml::to_string(data).map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", toml_string);
+
+ Ok(r)
+}
diff --git a/src/cmds/override/renderer/yaml.rs b/src/cmds/override/renderer/yaml.rs
new file mode 100644
index 0000000..a496fe7
--- /dev/null
+++ b/src/cmds/override/renderer/yaml.rs
@@ -0,0 +1,16 @@
+use serde::Serialize;
+
+use crate::{
+ r_print,
+ systems::{cmd::errors::CmdRenderError, render::renderer::JVRenderResult},
+};
+
+pub async fn render<T: Serialize + Send>(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+ let yaml_string =
+ serde_yaml::to_string(data).map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", yaml_string);
+
+ Ok(r)
+}