Avoid heap allocation if we don't change the help text.

This commit is contained in:
Justus Winter 2024-10-23 16:19:43 +02:00
parent 5c392b7d0a
commit 41c536de4a
No known key found for this signature in database
GPG Key ID: 686F55B4AB2B3386
7 changed files with 15 additions and 15 deletions

View File

@ -95,13 +95,13 @@ pub struct Command {
pub struct ToInspectDoc {} pub struct ToInspectDoc {}
impl AdditionalDocs for ToInspectDoc { impl AdditionalDocs for ToInspectDoc {
fn help(arg: &'static str, help: &'static str) -> String { fn help(arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
let help = help.replace("Use", "Inspect"); let help = help.replace("Use", "Inspect");
match arg { match arg {
"cert" | "file" => help, "cert" | "file" => help,
_ => format!( _ => format!(
"{}. Note: User IDs are not authenticated.", "{}. Note: User IDs are not authenticated.",
help), help),
} }.into()
} }
} }

View File

@ -83,7 +83,7 @@ test_examples!(sq_key_delete, EXAMPLES);
pub struct DeleteKeyDoc {} pub struct DeleteKeyDoc {}
impl AdditionalDocs for DeleteKeyDoc { impl AdditionalDocs for DeleteKeyDoc {
fn help(arg: &'static str, help: &'static str) -> String { fn help(arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
match arg { match arg {
"file" => "file" =>
"Delete the secret key material from the key read from PATH" "Delete the secret key material from the key read from PATH"
@ -93,6 +93,6 @@ impl AdditionalDocs for DeleteKeyDoc {
help.replace("Use certificates", help.replace("Use certificates",
"Delete secret key material from the key") "Delete secret key material from the key")
}, },
} }.into()
} }
} }

View File

@ -92,7 +92,7 @@ pub struct Command {
pub struct KeyExpireDoc {} pub struct KeyExpireDoc {}
impl AdditionalDocs for KeyExpireDoc { impl AdditionalDocs for KeyExpireDoc {
fn help(arg: &'static str, help: &'static str) -> String { fn help(arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
match arg { match arg {
"file" => "file" =>
"Change the expiration of the key \ "Change the expiration of the key \
@ -103,6 +103,6 @@ impl AdditionalDocs for KeyExpireDoc {
help.replace("Use certificates", help.replace("Use certificates",
"Change the expiration of the key") "Change the expiration of the key")
}, },
} }.into()
} }
} }

View File

@ -76,8 +76,8 @@ test_examples!(sq_key_export, EXAMPLES);
pub struct ExportKeyDoc {} pub struct ExportKeyDoc {}
impl AdditionalDocs for ExportKeyDoc { impl AdditionalDocs for ExportKeyDoc {
fn help(_arg: &'static str, help: &'static str) -> String { fn help(_arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
debug_assert!(help.starts_with("Use certificates")); debug_assert!(help.starts_with("Use certificates"));
help.replace("Use certificates", "Export keys") help.replace("Use certificates", "Export keys").into()
} }
} }

View File

@ -53,8 +53,8 @@ test_examples!(sq_key_list, EXAMPLES);
pub struct ListKeyDoc {} pub struct ListKeyDoc {}
impl AdditionalDocs for ListKeyDoc { impl AdditionalDocs for ListKeyDoc {
fn help(_arg: &'static str, help: &'static str) -> String { fn help(_: &'static str, help: &'static str) -> clap::builder::StyledStr {
debug_assert!(help.starts_with("Use certificates")); debug_assert!(help.starts_with("Use certificates"));
help.replace("Use certificates", "List keys") help.replace("Use certificates", "List keys").into()
} }
} }

View File

@ -103,7 +103,7 @@ test_examples!(sq_key_password, EXAMPLES);
pub struct KeyPasswordDoc {} pub struct KeyPasswordDoc {}
impl AdditionalDocs for KeyPasswordDoc { impl AdditionalDocs for KeyPasswordDoc {
fn help(arg: &'static str, help: &'static str) -> String { fn help(arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
match arg { match arg {
"file" => "file" =>
"Change the password for the secret key material from the key \ "Change the password for the secret key material from the key \
@ -115,6 +115,6 @@ impl AdditionalDocs for KeyPasswordDoc {
"Change the password for the secret key material \ "Change the password for the secret key material \
from the key") from the key")
}, },
} }.into()
} }
} }

View File

@ -168,7 +168,7 @@ pub trait AdditionalDocs {
// XXX: This should return a Cow<'static, str>, but there is no // XXX: This should return a Cow<'static, str>, but there is no
// implementation of From<Cow<'static, str>> for StyledStr, // implementation of From<Cow<'static, str>> for StyledStr,
// see https://github.com/clap-rs/clap/issues/5785 // see https://github.com/clap-rs/clap/issues/5785
fn help(_arg: &'static str, help: &'static str) -> String { fn help(_arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
help.into() help.into()
} }
} }
@ -181,7 +181,7 @@ impl AdditionalDocs for NoDoc {}
/// Documentation for signer arguments. /// Documentation for signer arguments.
pub struct ToVerifyDoc {} pub struct ToVerifyDoc {}
impl AdditionalDocs for ToVerifyDoc { impl AdditionalDocs for ToVerifyDoc {
fn help(arg: &'static str, help: &'static str) -> String { fn help(arg: &'static str, help: &'static str) -> clap::builder::StyledStr {
match arg { match arg {
"cert" | "file" => format!( "cert" | "file" => format!(
"{} to verify the signatures with. \ "{} to verify the signatures with. \
@ -199,7 +199,7 @@ impl AdditionalDocs for ToVerifyDoc {
_ => format!( _ => format!(
"{} to verify the signatures with", "{} to verify the signatures with",
help), help),
} }.into()
} }
} }