summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gen/gen_override_renderer.rs2
-rw-r--r--src/cmds/cmd/hexdump.rs2
-rw-r--r--src/cmds/cmd/sheetdump.rs2
-rw-r--r--src/cmds/cmd/status.rs2
-rw-r--r--src/systems/cmd/macros.rs11
5 files changed, 10 insertions, 9 deletions
diff --git a/gen/gen_override_renderer.rs b/gen/gen_override_renderer.rs
index 2ac97bd..dafca91 100644
--- a/gen/gen_override_renderer.rs
+++ b/gen/gen_override_renderer.rs
@@ -126,7 +126,7 @@ pub fn get_output_types(code: &String) -> Option<Vec<String>> {
let mut output_types = Vec::new();
// Find all cmd_output! macros
- let cmd_output_re = Regex::new(r"cmd_output!\s*\(\s*[^,]+,\s*([^)]+)\s*\)").ok()?;
+ let cmd_output_re = Regex::new(r"cmd_output!\s*\(\s*([^,]+)\s*=>\s*[^)]+\s*\)").ok()?;
for cap in cmd_output_re.captures_iter(code) {
let type_name = cap[1].trim();
output_types.push(type_name.to_string());
diff --git a/src/cmds/cmd/hexdump.rs b/src/cmds/cmd/hexdump.rs
index 82f5d45..66022ef 100644
--- a/src/cmds/cmd/hexdump.rs
+++ b/src/cmds/cmd/hexdump.rs
@@ -40,7 +40,7 @@ async fn exec(
collect: Collect,
) -> Result<(Box<dyn std::any::Any + Send + 'static>, TypeId), CmdExecuteError> {
let output = JVHexOutput { data: collect.data };
- cmd_output!(output, JVHexOutput)
+ cmd_output!(JVHexOutput => output)
}
crate::command_template!();
diff --git a/src/cmds/cmd/sheetdump.rs b/src/cmds/cmd/sheetdump.rs
index defb8ff..1945f44 100644
--- a/src/cmds/cmd/sheetdump.rs
+++ b/src/cmds/cmd/sheetdump.rs
@@ -58,7 +58,7 @@ async fn exec(
let result = JVMappingsOutput {
mappings: mappings_vec,
};
- cmd_output!(result, JVMappingsOutput)
+ cmd_output!(JVMappingsOutput => result)
}
crate::command_template!();
diff --git a/src/cmds/cmd/status.rs b/src/cmds/cmd/status.rs
index 5d5f4a3..3ca2a25 100644
--- a/src/cmds/cmd/status.rs
+++ b/src/cmds/cmd/status.rs
@@ -150,7 +150,7 @@ async fn exec(
now_time: collect.now_time,
};
- cmd_output!(output, JVStatusOutput)
+ cmd_output!(JVStatusOutput => output)
}
crate::command_template!();
diff --git a/src/systems/cmd/macros.rs b/src/systems/cmd/macros.rs
index 454ad30..efb14f7 100644
--- a/src/systems/cmd/macros.rs
+++ b/src/systems/cmd/macros.rs
@@ -76,7 +76,7 @@
/// todo!();
///
/// // Use the following method to return results
-/// cmd_output!(output, JVCustomOutput)
+/// cmd_output!(JVCustomOutput => output)
/// }
/// ```
///
@@ -119,7 +119,7 @@
/// collect: Collect,
/// ) -> Result<(Box<dyn std::any::Any + Send + 'static>, TypeId), CmdExecuteError> {
/// todo!();
-/// cmd_output!(output, JVCustomOutput)
+/// cmd_output!(JVCustomOutput => output)
/// }
/// ```
macro_rules! command_template {
@@ -162,10 +162,11 @@ macro_rules! command_template {
#[macro_export]
macro_rules! cmd_output {
- ($v:expr, $t:ty) => {
+ ($t:ty => $v:expr) => {{
+ let checked_value: $t = $v;
Ok((
- Box::new($v) as Box<dyn std::any::Any + Send + 'static>,
+ Box::new(checked_value) as Box<dyn std::any::Any + Send + 'static>,
std::any::TypeId::of::<$t>(),
))
- };
+ }};
}