summaryrefslogtreecommitdiff
path: root/gen
diff options
context:
space:
mode:
Diffstat (limited to 'gen')
-rw-r--r--gen/Cargo.toml2
-rw-r--r--gen/src/gen_override_renderer.rs7
2 files changed, 6 insertions, 3 deletions
diff --git a/gen/Cargo.toml b/gen/Cargo.toml
index 186082b..52c7d8a 100644
--- a/gen/Cargo.toml
+++ b/gen/Cargo.toml
@@ -6,7 +6,7 @@ version.workspace = true
[dependencies]
just_fmt = "0.1.2"
-tokio = { version = "1", features = ["rt", "rt-multi-thread"] }
+tokio = { version = "1", features = ["full"] }
chrono = "0.4"
toml = "0.9"
regex = "1.12"
diff --git a/gen/src/gen_override_renderer.rs b/gen/src/gen_override_renderer.rs
index 63b3464..cb78e01 100644
--- a/gen/src/gen_override_renderer.rs
+++ b/gen/src/gen_override_renderer.rs
@@ -163,7 +163,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*[^)]+\s*\)").ok()?;
+ let cmd_output_re = Regex::new(r"cmd_output!\s*\(\s*([A-Za-z_][A-Za-z0-9_:]*)\s*=>").ok()?;
for cap in cmd_output_re.captures_iter(code) {
let type_name = cap[1].trim();
output_types.push(type_name.to_string());
@@ -171,12 +171,15 @@ pub fn get_output_types(code: &String) -> Option<Vec<String>> {
// Find all early_cmd_output! macros
let early_cmd_output_re =
- Regex::new(r"early_cmd_output!\s*\(\s*([^,]+)\s*=>\s*[^)]+\s*\)").ok()?;
+ Regex::new(r"early_cmd_output!\s*\(\s*([A-Za-z_][A-Za-z0-9_:]*)\s*=>").ok()?;
for cap in early_cmd_output_re.captures_iter(code) {
let type_name = cap[1].trim();
output_types.push(type_name.to_string());
}
+ output_types.sort();
+ output_types.dedup();
+
Some(output_types)
}