diff --git a/src/print_text.rs b/src/print_text.rs index d038e21..8f85434 100644 --- a/src/print_text.rs +++ b/src/print_text.rs @@ -80,8 +80,8 @@ fn append_fields(b: &mut Builder, cfg: &Config, data: &Data) { for field in &cfg.metadata_fields { if let Some(string) = data.field_text.get(&field.field) { idx += 1; - b.append(string.clone()); - if idx < len {b.append(cfg.metadata_separator.clone())}; + b.append(string.as_str()); + if idx < len {b.append(cfg.metadata_separator.as_str())}; } else { info!("failed to get {} value!", field.field); } diff --git a/src/update_message.rs b/src/update_message.rs index 51fa39c..0be6d89 100644 --- a/src/update_message.rs +++ b/src/update_message.rs @@ -60,7 +60,7 @@ fn rating_to_string(r: Option<&MetadataValue>, str: &Vec) -> Option 10 {i = 10} if i < 0 {i = 0} - Some(str[i as usize].clone()) //TODO: still inefficient. would be better to note the idx and load it in print_text + Some(str[i as usize].to_owned()) //TODO: still inefficient. would be better to note the idx and load it in print_text } else { debug!("failed to convert MetadataValue to f64!"); None @@ -85,17 +85,17 @@ pub fn update_message(cfg: &Config, data: &mut Data, ratings: &Vec) { if let Some(player) = &data.current_player { if let Ok(meta) = player.get_metadata() { for field in &cfg.metadata_fields { - let key = field.field.clone(); + let key: &str = field.field.as_ref(); if field.field.eq("xesam:userRating") { - if let Some(rating_string) = rating_to_string(meta.get(&key), ratings) { - data.field_text.insert(key, rating_string); + if let Some(rating_string) = rating_to_string(meta.get(key), ratings) { + data.field_text.insert(key.to_owned(), rating_string); } else { - data.field_text.remove(&key); + data.field_text.remove(key); } } else { match meta.get(&key) { - Some(value) => data.field_text.insert(key, value_to_string(value, cfg.array_separator)), - None => data.field_text.insert(key, format!("No {}", field.field.clone().trim_start_matches("xesam:"))), + Some(value) => data.field_text.insert(key.to_owned(), value_to_string(value, cfg.array_separator)), + None => data.field_text.insert(key.to_owned(), format!("No {}", key.trim_start_matches("xesam:"))), }; } } diff --git a/src/update_players.rs b/src/update_players.rs index 2d3a2c5..6f4fe07 100644 --- a/src/update_players.rs +++ b/src/update_players.rs @@ -16,10 +16,10 @@ use crate::structs::{data::Data, config::Config}; /// name: name of active player, to fetch the appropriate prefix from cfg. fn update_prefix(cfg: &Config, data: &mut char, name: &str) { if let Some(char) = cfg.player_prefixes.get(name) { - *data = char.clone(); + *data = *char; trace!("updated prefix to {}", data); } else { - *data = cfg.player_prefixes.get("default").unwrap_or(&'>').clone(); + *data = *cfg.player_prefixes.get("default").unwrap_or(&'>'); trace!("set prefix to default ({})", data); } }