feat: find kid first arg
This commit is contained in:
@@ -270,13 +270,9 @@ fn read_slot(config: &Option<TinyEncryptConfig>, kid: &str, slot: &Option<String
|
||||
Some(slot) => Ok(slot.to_string()),
|
||||
None => {
|
||||
if let Some(config) = config {
|
||||
if let Some(e) = config.find_by_kid(kid) {
|
||||
if let Some(args) = &e.args {
|
||||
if let Some(first_arg) = args.iter().next() {
|
||||
information!("Found kid: {}'s slot: {}", kid, first_arg);
|
||||
return Ok(first_arg.to_string());
|
||||
}
|
||||
}
|
||||
if let Some(first_arg) = config.find_first_arg_by_kid(kid) {
|
||||
information!("Found kid: {}'s slot: {}", kid, first_arg);
|
||||
return Ok(first_arg.to_string());
|
||||
}
|
||||
}
|
||||
print!("Input slot(eg 82, 83 ...): ");
|
||||
|
||||
@@ -72,6 +72,14 @@ impl TinyEncryptConfig {
|
||||
Ok(config)
|
||||
}
|
||||
|
||||
pub fn find_first_arg_by_kid(&self, kid: &str) -> Option<&String> {
|
||||
self.find_args_by_kid(kid).map(|a| a.iter().next()).flatten()
|
||||
}
|
||||
|
||||
pub fn find_args_by_kid(&self, kid: &str) -> Option<&Vec<String>> {
|
||||
self.find_by_kid(kid).map(|e| e.args.as_ref()).flatten()
|
||||
}
|
||||
|
||||
pub fn find_by_kid(&self, kid: &str) -> Option<&TinyEncryptConfigEnvelop> {
|
||||
self.envelops.iter().find(|e| e.kid == kid)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user