From 130288beb4f134e30f731fde608f9f07dc920822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Rodrigues=20Miguel?= Date: Fri, 17 Sep 2021 09:33:19 -0300 Subject: [PATCH] dialogs: use `Cow` to avoid cloning a String --- src/dialogs.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/dialogs.rs b/src/dialogs.rs index 714dcc1..c71e5ec 100644 --- a/src/dialogs.rs +++ b/src/dialogs.rs @@ -1,4 +1,7 @@ -use std::io::{self, Write}; +use std::{ + borrow::Cow, + io::{self, Write}, +}; use crate::utils::colors; @@ -15,9 +18,9 @@ impl<'a> Confirmation<'a> { pub fn ask(&self, substitute: Option<&'a str>) -> crate::Result { let message = match (self.placeholder, substitute) { - (None, _) => self.prompt.into(), + (None, _) => Cow::Borrowed(self.prompt), (Some(_), None) => return Err(crate::Error::InternalError), - (Some(placeholder), Some(subs)) => self.prompt.replace(placeholder, subs), + (Some(placeholder), Some(subs)) => Cow::Owned(self.prompt.replace(placeholder, subs)), }; loop {