Removed a few useless clone().

This commit is contained in:
Antoine POPINEAU 2024-05-02 14:22:10 +02:00
parent 59c4fa4cfe
commit dd56f3fb7a
No known key found for this signature in database
GPG Key ID: E8379674E92D25D2
7 changed files with 22 additions and 15 deletions

View File

@ -204,18 +204,18 @@ impl Greeter {
// If we should remember the last logged-in user.
if greeter.remember {
if let Some(username) = get_last_user_username() {
greeter.username = MaskedString::from(username.clone(), get_last_user_name());
greeter.username = MaskedString::from(username, get_last_user_name());
// If, on top of that, we should remember their last session.
if greeter.remember_user_session {
if let Ok(ref session_path) = get_last_user_session_path(&username) {
if let Ok(ref session_path) = get_last_user_session_path(greeter.username.get()) {
// Set the selected menu option and the session source.
greeter.sessions.selected = greeter.sessions.options.iter().position(|Session { path, .. }| path.as_deref() == Some(session_path)).unwrap_or(0);
greeter.session_source = SessionSource::Session(greeter.sessions.selected);
}
// See if we have the last free-form command from the user.
if let Ok(command) = get_last_user_session(&username) {
if let Ok(command) = get_last_user_session(greeter.username.get()) {
greeter.session_source = SessionSource::Command(command);
}
}

View File

@ -104,7 +104,7 @@ pub fn get_last_user_name() -> Option<String> {
}
pub fn write_last_username(username: &MaskedString) {
let _ = fs::write(LAST_USER_USERNAME, username.value.clone());
let _ = fs::write(LAST_USER_USERNAME, &username.value);
if let Some(ref name) = username.mask {
let _ = fs::write(LAST_USER_NAME, name);

View File

@ -44,7 +44,7 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame) -> Result<(u16, u16), Box<dyn
let command_label_text = prompt_value(theme, Some(fl!("new_command")));
let command_label = Paragraph::new(command_label_text).style(theme.of(&[Themed::Prompt]));
let command_value_text = Span::from(greeter.buffer.clone());
let command_value_text = Span::from(&greeter.buffer);
let command_value = Paragraph::new(command_value_text).style(theme.of(&[Themed::Input]));
f.render_widget(command_label, chunks[0]);

View File

@ -1,4 +1,4 @@
use std::error::Error;
use std::{borrow::Cow, error::Error};
use tui::{
prelude::Rect,
@ -18,7 +18,7 @@ use crate::{
use super::style::Themed;
pub trait MenuItem {
fn format(&self) -> String;
fn format(&self) -> Cow<'_, str>;
}
#[derive(Default)]

View File

@ -1,3 +1,5 @@
use std::borrow::Cow;
use crate::{power::PowerOption, ui::common::menu::MenuItem};
#[derive(SmartDefault, Clone)]
@ -8,7 +10,7 @@ pub struct Power {
}
impl MenuItem for Power {
fn format(&self) -> String {
self.label.clone()
fn format(&self) -> Cow<'_, str> {
Cow::Borrowed(&self.label)
}
}

View File

@ -1,4 +1,7 @@
use std::path::{Path, PathBuf};
use std::{
borrow::Cow,
path::{Path, PathBuf},
};
use crate::Greeter;
@ -86,8 +89,8 @@ pub struct Session {
}
impl MenuItem for Session {
fn format(&self) -> String {
self.name.clone()
fn format(&self) -> Cow<'_, str> {
Cow::Borrowed(&self.name)
}
}

View File

@ -1,3 +1,5 @@
use std::borrow::Cow;
use super::common::menu::MenuItem;
#[derive(Default, Clone)]
@ -7,10 +9,10 @@ pub struct User {
}
impl MenuItem for User {
fn format(&self) -> String {
fn format(&self) -> Cow<'_, str> {
match &self.name {
Some(name) => format!("{name} ({})", self.username),
None => self.username.clone(),
Some(name) => Cow::Owned(format!("{name} ({})", self.username)),
None => Cow::Borrowed(&self.username),
}
}
}