aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock3
-rw-r--r--mingling_core/src/asset/comp.rs2
-rw-r--r--mingling_core/src/asset/comp/suggest.rs2
-rw-r--r--mingling_core/src/program.rs6
-rw-r--r--mingling_core/src/program/exec.rs12
-rw-r--r--mingling_core/src/program/setup/general_renderer.rs10
-rw-r--r--mingling_core/src/renderer/general.rs12
-rw-r--r--mingling_core/src/renderer/general/error.rs6
8 files changed, 25 insertions, 28 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 97da07c..cba66a1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -132,7 +132,6 @@ name = "example-basic"
version = "0.1.0"
dependencies = [
"mingling",
- "serde",
"tokio",
]
@@ -141,7 +140,6 @@ name = "example-completion"
version = "0.1.0"
dependencies = [
"mingling",
- "serde",
"tokio",
]
@@ -159,7 +157,6 @@ name = "example-picker"
version = "0.1.0"
dependencies = [
"mingling",
- "serde",
"tokio",
]
diff --git a/mingling_core/src/asset/comp.rs b/mingling_core/src/asset/comp.rs
index c7fe719..40482fd 100644
--- a/mingling_core/src/asset/comp.rs
+++ b/mingling_core/src/asset/comp.rs
@@ -46,7 +46,7 @@ impl CompletionHelper {
let program = this::<P>();
let args = ctx.all_words.iter().skip(1).cloned().collect::<Vec<_>>();
- let suggest = if let Some((dispatcher, args)) = match_user_input(program, args).ok() {
+ let suggest = if let Ok((dispatcher, args)) = match_user_input(program, args) {
trace!(
"dispatcher matched, dispatcher=\"{}\", args={:?}",
dispatcher.node().to_string(),
diff --git a/mingling_core/src/asset/comp/suggest.rs b/mingling_core/src/asset/comp/suggest.rs
index 55a874f..81000d5 100644
--- a/mingling_core/src/asset/comp/suggest.rs
+++ b/mingling_core/src/asset/comp/suggest.rs
@@ -80,7 +80,7 @@ impl PartialOrd for SuggestItem {
impl Ord for SuggestItem {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
- self.suggest().cmp(&other.suggest())
+ self.suggest().cmp(other.suggest())
}
}
diff --git a/mingling_core/src/program.rs b/mingling_core/src/program.rs
index 42ca531..cf8b06c 100644
--- a/mingling_core/src/program.rs
+++ b/mingling_core/src/program.rs
@@ -166,7 +166,7 @@ where
}
// Get all registered dispatcher names from the program
- pub fn get_nodes(&self) -> Vec<(String, &Box<dyn Dispatcher<G> + Send + Sync>)> {
+ pub fn get_nodes(&self) -> Vec<(String, &(dyn Dispatcher<G> + Send + Sync))> {
get_nodes(self)
}
}
@@ -260,7 +260,7 @@ macro_rules! __dispatch_program_chains {
// Get all registered dispatcher names from the program
pub fn get_nodes<C: ProgramCollect<Enum = G>, G: Display>(
program: &Program<C, G>,
-) -> Vec<(String, &Box<dyn Dispatcher<G> + Send + Sync>)> {
+) -> Vec<(String, &(dyn Dispatcher<G> + Send + Sync))> {
program
.dispatcher
.iter()
@@ -271,7 +271,7 @@ pub fn get_nodes<C: ProgramCollect<Enum = G>, G: Display>(
.split('.')
.collect::<Vec<_>>()
.join(" ");
- (node_str, disp)
+ (node_str, &**disp)
})
.collect()
}
diff --git a/mingling_core/src/program/exec.rs b/mingling_core/src/program/exec.rs
index 71d73e6..ff7e92b 100644
--- a/mingling_core/src/program/exec.rs
+++ b/mingling_core/src/program/exec.rs
@@ -21,12 +21,12 @@ where
let mut stop_next = false;
// Match user input
- match match_user_input(&program, program.args.clone()) {
+ match match_user_input(program, program.args.clone()) {
Ok((dispatcher, args)) => {
// Entry point
current = match dispatcher.begin(args) {
ChainProcess::Ok((any, Next::Renderer)) => {
- return Ok(render::<C, G>(&program, any));
+ return Ok(render::<C, G>(program, any));
}
ChainProcess::Ok((any, Next::Chain)) => any,
ChainProcess::Err(e) => return Err(e.into()),
@@ -47,7 +47,7 @@ where
if C::has_chain(&current) {
match C::do_chain(current).await {
ChainProcess::Ok((any, Next::Renderer)) => {
- return Ok(render::<C, G>(&program, any));
+ return Ok(render::<C, G>(program, any));
}
ChainProcess::Ok((any, Next::Chain)) => any,
ChainProcess::Err(e) => return Err(e.into()),
@@ -55,7 +55,7 @@ where
}
// If no chain exists, attempt to render
else if C::has_renderer(&current) {
- return Ok(render::<C, G>(&program, current));
+ return Ok(render::<C, G>(program, current));
}
// No renderer exists
else {
@@ -76,7 +76,7 @@ where
pub fn match_user_input<C, G>(
program: &Program<C, G>,
args: Vec<String>,
-) -> Result<(&Box<dyn Dispatcher<G> + Send + Sync>, Vec<String>), ProgramInternalExecuteError>
+) -> Result<(&(dyn Dispatcher<G> + Send + Sync), Vec<String>), ProgramInternalExecuteError>
where
C: ProgramCollect<Enum = G>,
G: Display,
@@ -85,7 +85,7 @@ where
let command = format!("{} ", args.join(" "));
// Find all nodes that match the command prefix
- let matching_nodes: Vec<&(String, &Box<dyn Dispatcher<G> + Send + Sync>)> = nodes
+ let matching_nodes: Vec<&(String, &(dyn Dispatcher<G> + Send + Sync))> = nodes
.iter()
// Also add a space to the node string to ensure consistent matching logic
.filter(|(node_str, _)| command.starts_with(&format!("{} ", node_str)))
diff --git a/mingling_core/src/program/setup/general_renderer.rs b/mingling_core/src/program/setup/general_renderer.rs
index 8b41b68..035f813 100644
--- a/mingling_core/src/program/setup/general_renderer.rs
+++ b/mingling_core/src/program/setup/general_renderer.rs
@@ -43,19 +43,19 @@ where
p.general_renderer_name = crate::GeneralRendererSetting::Json
});
program.global_flag("--json-pretty", |p| {
- p.general_renderer_name = crate::GeneralRendererSetting::JsonPretty.into();
+ p.general_renderer_name = crate::GeneralRendererSetting::JsonPretty;
});
program.global_flag("--yaml", |p| {
- p.general_renderer_name = crate::GeneralRendererSetting::Yaml.into();
+ p.general_renderer_name = crate::GeneralRendererSetting::Yaml;
});
program.global_flag("--toml", |p| {
- p.general_renderer_name = crate::GeneralRendererSetting::Toml.into();
+ p.general_renderer_name = crate::GeneralRendererSetting::Toml;
});
program.global_flag("--ron", |p| {
- p.general_renderer_name = crate::GeneralRendererSetting::Ron.into();
+ p.general_renderer_name = crate::GeneralRendererSetting::Ron;
});
program.global_flag("--ron-pretty", |p| {
- p.general_renderer_name = crate::GeneralRendererSetting::RonPretty.into();
+ p.general_renderer_name = crate::GeneralRendererSetting::RonPretty;
});
}
}
diff --git a/mingling_core/src/renderer/general.rs b/mingling_core/src/renderer/general.rs
index 83ea911..4ca2683 100644
--- a/mingling_core/src/renderer/general.rs
+++ b/mingling_core/src/renderer/general.rs
@@ -31,7 +31,7 @@ impl GeneralRenderer {
) -> Result<(), GeneralRendererSerializeError> {
let json_string = serde_json::to_string(data)
.map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", json_string).as_str());
+ r.print(json_string.to_string().as_str());
Ok(())
}
@@ -42,7 +42,7 @@ impl GeneralRenderer {
) -> Result<(), GeneralRendererSerializeError> {
let json_string = serde_json::to_string_pretty(data)
.map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", json_string).as_str());
+ r.print(json_string.to_string().as_str());
Ok(())
}
@@ -53,7 +53,7 @@ impl GeneralRenderer {
) -> Result<(), GeneralRendererSerializeError> {
let ron_string = ron::ser::to_string(data)
.map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", ron_string).as_str());
+ r.print(ron_string.to_string().as_str());
Ok(())
}
@@ -68,7 +68,7 @@ impl GeneralRenderer {
let ron_string = ron::ser::to_string_pretty(data, pretty_config)
.map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", ron_string).as_str());
+ r.print(ron_string.to_string().as_str());
Ok(())
}
@@ -79,7 +79,7 @@ impl GeneralRenderer {
) -> Result<(), GeneralRendererSerializeError> {
let toml_string =
toml::to_string(data).map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", toml_string).as_str());
+ r.print(toml_string.to_string().as_str());
Ok(())
}
@@ -90,7 +90,7 @@ impl GeneralRenderer {
) -> Result<(), GeneralRendererSerializeError> {
let yaml_string = serde_yaml::to_string(data)
.map_err(|e| GeneralRendererSerializeError::new(e.to_string()))?;
- r.print(format!("{}", yaml_string).as_str());
+ r.print(yaml_string.to_string().as_str());
Ok(())
}
}
diff --git a/mingling_core/src/renderer/general/error.rs b/mingling_core/src/renderer/general/error.rs
index 885b5bd..c462017 100644
--- a/mingling_core/src/renderer/general/error.rs
+++ b/mingling_core/src/renderer/general/error.rs
@@ -23,8 +23,8 @@ impl std::ops::Deref for GeneralRendererSerializeError {
}
}
-impl Into<String> for GeneralRendererSerializeError {
- fn into(self) -> String {
- self.error
+impl From<GeneralRendererSerializeError> for String {
+ fn from(val: GeneralRendererSerializeError) -> Self {
+ val.error
}
}