From c734355ebbfc43635bb088f874dbf3dc7068fbce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= <40151420+ldericher@users.noreply.github.com> Date: Tue, 24 Jun 2025 00:18:26 +0000 Subject: [PATCH] file names from args, not from appstate - remove `AppState::file_names`, `CacheFile::file_names`, `FileState::file_name` - add `Cli::file_names` - clippy fix --- src/appstate.rs | 8 ++------ src/cachefile.rs | 13 +------------ src/cli.rs | 6 +++++- src/main.rs | 45 +++++++++++++++++++++------------------------ 4 files changed, 29 insertions(+), 43 deletions(-) diff --git a/src/appstate.rs b/src/appstate.rs index 8fb5252..927b37e 100644 --- a/src/appstate.rs +++ b/src/appstate.rs @@ -136,7 +136,7 @@ impl AppState { } Err(path) => { debug!("Finished {:?}!", path.display()); - self.end_progressbar(|pb| pb.finish()); + self.end_progressbar(ProgressBar::finish); } } @@ -174,15 +174,11 @@ impl AppState { let checked = uploading.abort(); self.inner.requeue_file(checked); - self.end_progressbar(|pb| pb.abandon()); + self.end_progressbar(ProgressBar::abandon); Some(self) } - pub fn file_names(&self) -> Vec<&str> { - self.inner.file_names() - } - pub fn save(&self) -> io::Result<()> { self.inner.save() } diff --git a/src/cachefile.rs b/src/cachefile.rs index 44d07a0..49879f5 100644 --- a/src/cachefile.rs +++ b/src/cachefile.rs @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; use crate::{ cli::Cli, - file::{self, Chunk, FileTrait}, + file::{self, Chunk}, sharry::{self, Client, Uri}, }; @@ -21,13 +21,6 @@ enum FileState { } impl FileState { - fn file_name(&self) -> &str { - match self { - FileState::C(c) => c.get_name(), - FileState::U(u) => u.get_name(), - } - } - fn start_upload( self, client: &impl sharry::Client, @@ -92,10 +85,6 @@ impl CacheFile { } } - pub fn file_names(&self) -> Vec<&str> { - self.files.iter().map(FileState::file_name).collect() - } - pub fn is_empty(&self) -> bool { self.files.is_empty() } diff --git a/src/cli.rs b/src/cli.rs index 5d56f5e..546427b 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -14,7 +14,7 @@ use clap::{ use log::LevelFilter; use crate::{ - file::Checked, + file::{Checked, FileTrait}, sharry::{NewShareRequest, Uri}, }; @@ -130,6 +130,10 @@ impl Cli { } } + pub fn file_names(&self) -> Vec<&str> { + self.files.iter().map(FileTrait::get_name).collect() + } + pub fn get_hash(&self) -> String { let file_refs = { let mut refs: Vec<_> = self.files.iter().collect(); diff --git a/src/main.rs b/src/main.rs index de85892..69481a4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,7 +73,7 @@ fn main() { info!("continuing with state: {state:#?}"); - let fns_magenta = output::style_all(&state.file_names(), |s| style(s).magenta()).join(", "); + let fns_magenta = output::style_all(&args.file_names(), |s| style(s).magenta()).join(", "); println!("{} is uploading: {fns_magenta}", *SHRUPL); @@ -90,33 +90,30 @@ fn main() { Log::handle(&e); tries += 1; - match e { - ClientError::InvalidParameter(p) => match p { - // TODO Error 404: File not found - Parameter::FileID(fid) => { - // requeue file - let Some(s) = state.requeue_file() else { - Log::error("Failed to requeue file!"); - }; - - trace!("File {fid:?} requeued (tried: {tries})"); - state = s; - } - // TODO Error 404: Share might have been deleted - Parameter::ShareID(sid) => { - Log::error(format_args!("404 sid: {sid}")); - } - p => Log::error(format_args!("Unexpected {p}!")), - }, - _ => { - // retry chunk - let Some(s) = state.rewind() else { - Log::error("Failed to retry chunk!"); + if let ClientError::InvalidParameter(p) = e { match p { + // TODO Error 404: File not found + Parameter::FileID(fid) => { + // requeue file + let Some(s) = state.requeue_file() else { + Log::error("Failed to requeue file!"); }; - trace!("State rewound, retrying last chunk (tried: {tries})"); + trace!("File {fid:?} requeued (tried: {tries})"); state = s; } + // TODO Error 404: Share might have been deleted + Parameter::ShareID(sid) => { + Log::error(format_args!("404 sid: {sid}")); + } + p => Log::error(format_args!("Unexpected {p}!")), + } } else { + // retry chunk + let Some(s) = state.rewind() else { + Log::error("Failed to retry chunk!"); + }; + + trace!("State rewound, retrying last chunk (tried: {tries})"); + state = s; } } Ok(false) => {