minor imports refactoring

This commit is contained in:
Jörn-Michael Miehe 2025-06-08 00:40:29 +00:00
parent e208df9711
commit 5b6fa3eaf7
4 changed files with 45 additions and 11 deletions

27
Cargo.lock generated
View file

@ -236,7 +236,7 @@ checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
dependencies = [ dependencies = [
"console", "console",
"shell-words", "shell-words",
"thiserror", "thiserror 1.0.69",
] ]
[[package]] [[package]]
@ -702,7 +702,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [ dependencies = [
"getrandom", "getrandom",
"libredox", "libredox",
"thiserror", "thiserror 1.0.69",
] ]
[[package]] [[package]]
@ -856,6 +856,7 @@ dependencies = [
"log", "log",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.12",
"ureq", "ureq",
] ]
@ -911,7 +912,16 @@ version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl 1.0.69",
]
[[package]]
name = "thiserror"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
dependencies = [
"thiserror-impl 2.0.12",
] ]
[[package]] [[package]]
@ -925,6 +935,17 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "thiserror-impl"
version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.41" version = "0.3.41"

View file

@ -15,6 +15,7 @@ indicatif = { version = "0.17.11", default-features = false }
log = "0.4.27" log = "0.4.27"
serde = { version = "1.0.219", features = ["derive"] } serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140" serde_json = "1.0.140"
thiserror = "2.0.12"
ureq = { version = "3.0.11", features = ["json"] } ureq = { version = "3.0.11", features = ["json"] }
[profile.release] [profile.release]

View file

@ -1,4 +1,4 @@
use std::fmt::Display; use std::fmt;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -17,8 +17,8 @@ impl Uri {
} }
} }
impl Display for Uri { impl fmt::Display for Uri {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}://{}/api/v2", self.protocol, self.base_url) write!(f, "{}://{}/api/v2", self.protocol, self.base_url)
} }
} }

View file

@ -1,6 +1,6 @@
use std::{ use std::{
ffi::OsStr, ffi::OsStr,
fs, fmt, fs,
io::{self, Read, Seek, SeekFrom}, io::{self, Read, Seek, SeekFrom},
path::PathBuf, path::PathBuf,
}; };
@ -19,12 +19,24 @@ pub struct FileUploading {
offset: u64, offset: u64,
} }
#[derive(Debug)] #[derive(Debug, thiserror::Error)]
pub enum UploadError { pub enum UploadError {
FileIO(io::Error), #[error("file I/O error: {0}")]
FileIO(#[from] io::Error),
#[error("network request failed")]
Request, Request,
#[error("unexpected response status")]
ResponseStatus, ResponseStatus,
#[error("could not parse offset header")]
ResponseOffset, ResponseOffset,
// #[error("chunk length conversion failed: {0}")]
// InvalidChunkLength(String),
// #[error("offset mismatch")]
// ResponseOffsetMismatch,
} }
pub enum ChunkState { pub enum ChunkState {
@ -33,8 +45,8 @@ pub enum ChunkState {
Finished(PathBuf), Finished(PathBuf),
} }
impl std::fmt::Display for FileUploading { impl fmt::Display for FileUploading {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!( write!(
f, f,
"Uploading {:?} ({}/{})", "Uploading {:?} ({}/{})",