Skip to content

Commit

Permalink
Merge pull request #3978 from epage/perf
Browse files Browse the repository at this point in the history
perf: Remove some monomorphization bloat
  • Loading branch information
epage committed Jul 24, 2022
2 parents 7518332 + 8e38caa commit 0eaec60
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/builder/command.rs
Expand Up @@ -171,8 +171,12 @@ impl<'help> Command<'help> {
/// ```
/// [argument]: Arg
#[must_use]
pub fn arg<A: Into<Arg<'help>>>(mut self, a: A) -> Self {
let mut arg = a.into();
pub fn arg<A: Into<Arg<'help>>>(self, a: A) -> Self {
let arg = a.into();
self.arg_internal(arg)
}

fn arg_internal(mut self, mut arg: Arg<'help>) -> Self {
if let Some(current_disp_ord) = self.current_disp_ord.as_mut() {
if !arg.is_positional() && arg.provider != ArgProvider::Generated {
let current = *current_disp_ord;
Expand Down Expand Up @@ -401,8 +405,12 @@ impl<'help> Command<'help> {
/// ```
#[inline]
#[must_use]
pub fn subcommand<S: Into<Self>>(mut self, subcmd: S) -> Self {
let mut subcmd = subcmd.into();
pub fn subcommand<S: Into<Self>>(self, subcmd: S) -> Self {
let subcmd = subcmd.into();
self.subcommand_internal(subcmd)
}

fn subcommand_internal(mut self, mut subcmd: Self) -> Self {
if let Some(current_disp_ord) = self.current_disp_ord.as_mut() {
let current = *current_disp_ord;
subcmd.disp_ord.get_or_insert(current);
Expand Down

0 comments on commit 0eaec60

Please sign in to comment.