* [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe
@ 2025-03-04 14:40 Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 2/9] daemon: set_var is now unsafe Maximiliano Sandoval
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
This is required in edition 2024.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
The changes up to 'port to edition 2024' could be added as of now, the rest
require changes in debcargo.
proxmox-acme-api/src/certificate_helpers.rs | 2 +-
proxmox-async/src/runtime.rs | 2 +-
proxmox-rest-server/src/rest.rs | 2 +-
proxmox-sys/src/crypt.rs | 4 ++--
proxmox-sys/src/fs/acl.rs | 2 +-
proxmox-sys/src/linux/procfs/mod.rs | 2 +-
proxmox-sys/src/linux/timer.rs | 4 ++--
proxmox-systemd/src/sys.rs | 2 +-
proxmox-time/src/posix.rs | 2 +-
proxmox-uuid/src/lib_uuid_bindings.rs | 2 +-
10 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/proxmox-acme-api/src/certificate_helpers.rs b/proxmox-acme-api/src/certificate_helpers.rs
index d8eee604..a0d744c8 100644
--- a/proxmox-acme-api/src/certificate_helpers.rs
+++ b/proxmox-acme-api/src/certificate_helpers.rs
@@ -385,7 +385,7 @@ fn x509name_to_string(name: &openssl::x509::X509NameRef) -> Result<String, Error
#[allow(non_camel_case_types)]
type ASN1_TIME = <openssl::asn1::Asn1TimeRef as ForeignTypeRef>::CType;
-extern "C" {
+unsafe extern "C" {
fn ASN1_TIME_to_tm(s: *const ASN1_TIME, tm: *mut libc::tm) -> libc::c_int;
}
diff --git a/proxmox-async/src/runtime.rs b/proxmox-async/src/runtime.rs
index 0721fd9e..c36dea88 100644
--- a/proxmox-async/src/runtime.rs
+++ b/proxmox-async/src/runtime.rs
@@ -45,7 +45,7 @@ use tokio::runtime::{self, Runtime, RuntimeFlavor};
static RUNTIME: LazyLock<Mutex<Weak<Runtime>>> = LazyLock::new(|| Mutex::new(Weak::new()));
#[link(name = "crypto")]
-extern "C" {
+unsafe extern "C" {
fn OPENSSL_thread_stop();
}
diff --git a/proxmox-rest-server/src/rest.rs b/proxmox-rest-server/src/rest.rs
index d23ed776..c11a9b0c 100644
--- a/proxmox-rest-server/src/rest.rs
+++ b/proxmox-rest-server/src/rest.rs
@@ -36,7 +36,7 @@ use crate::{
formatter::*, normalize_path, ApiConfig, AuthError, CompressionMethod, RestEnvironment,
};
-extern "C" {
+unsafe extern "C" {
fn tzset();
}
diff --git a/proxmox-sys/src/crypt.rs b/proxmox-sys/src/crypt.rs
index b802040b..508b9c15 100644
--- a/proxmox-sys/src/crypt.rs
+++ b/proxmox-sys/src/crypt.rs
@@ -38,7 +38,7 @@ struct CryptData {
/// Encrypt a password - see man crypt(3)
pub fn crypt(password: &[u8], salt: &[u8]) -> Result<String, Error> {
#[link(name = "crypt")]
- extern "C" {
+ unsafe extern "C" {
#[link_name = "crypt_r"]
fn __crypt_r(
key: *const libc::c_char,
@@ -87,7 +87,7 @@ pub fn crypt(password: &[u8], salt: &[u8]) -> Result<String, Error> {
/// - `rbytes`: The byte slice that contains cryptographically random bytes for generating the salt
pub fn crypt_gensalt(prefix: &str, count: u64, rbytes: &[u8]) -> Result<String, Error> {
#[link(name = "crypt")]
- extern "C" {
+ unsafe extern "C" {
#[link_name = "crypt_gensalt_rn"]
fn __crypt_gensalt_rn(
prefix: *const libc::c_char,
diff --git a/proxmox-sys/src/fs/acl.rs b/proxmox-sys/src/fs/acl.rs
index 5ae69296..29aa75ab 100644
--- a/proxmox-sys/src/fs/acl.rs
+++ b/proxmox-sys/src/fs/acl.rs
@@ -54,7 +54,7 @@ mod constants {
pub use constants::*;
#[link(name = "acl")]
-extern "C" {
+unsafe extern "C" {
fn acl_get_file(path: *const c_char, acl_type: ACLType) -> *mut c_void;
fn acl_set_file(path: *const c_char, acl_type: ACLType, acl: *mut c_void) -> c_int;
fn acl_get_fd(fd: RawFd) -> *mut c_void;
diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs
index 0875fcf8..3b25ce70 100644
--- a/proxmox-sys/src/linux/procfs/mod.rs
+++ b/proxmox-sys/src/linux/procfs/mod.rs
@@ -20,7 +20,7 @@ pub use mountinfo::MountInfo;
/// POSIX sysconf call
pub fn sysconf(name: i32) -> i64 {
- extern "C" {
+ unsafe extern "C" {
fn sysconf(name: i32) -> i64;
}
unsafe { sysconf(name) }
diff --git a/proxmox-sys/src/linux/timer.rs b/proxmox-sys/src/linux/timer.rs
index 462af976..bb01dc81 100644
--- a/proxmox-sys/src/linux/timer.rs
+++ b/proxmox-sys/src/linux/timer.rs
@@ -70,7 +70,7 @@ type TimerT = *mut InternalTimerT;
// These wrappers are defined in -lrt.
#[link(name = "rt")]
-extern "C" {
+unsafe extern "C" {
fn timer_create(clockid: clockid_t, evp: *mut libc::sigevent, timer: *mut TimerT) -> c_int;
fn timer_delete(timer: TimerT) -> c_int;
fn timer_settime(
@@ -232,7 +232,7 @@ pub const SIGTIMEOUT: Signal = Signal(32 + 4);
// Our timeout handler does exactly nothing. We only need it to interrupt
// system calls.
-extern "C" fn sig_timeout_handler(_: c_int) {}
+unsafe extern "C" fn sig_timeout_handler(_: c_int) {}
// See setup_timeout_handler().
fn do_setup_timeout_handler() -> io::Result<()> {
diff --git a/proxmox-systemd/src/sys.rs b/proxmox-systemd/src/sys.rs
index 64075929..eabd44d1 100644
--- a/proxmox-systemd/src/sys.rs
+++ b/proxmox-systemd/src/sys.rs
@@ -5,7 +5,7 @@ use std::os::fd::RawFd;
pub const LISTEN_FDS_START: RawFd = 3;
#[link(name = "systemd")]
-extern "C" {
+unsafe extern "C" {
pub fn sd_journal_stream_fd(
identifier: *const c_uchar,
priority: c_int,
diff --git a/proxmox-time/src/posix.rs b/proxmox-time/src/posix.rs
index bb60ba04..c8064bf4 100644
--- a/proxmox-time/src/posix.rs
+++ b/proxmox-time/src/posix.rs
@@ -142,7 +142,7 @@ pub fn strftime(format: &str, t: &libc::tm) -> Result<String, Error> {
// The `libc` crate does not yet contain bindings for `strftime_l`
#[link(name = "c")]
-extern "C" {
+unsafe extern "C" {
#[link_name = "strftime_l"]
fn libc_strftime_l(
s: *mut libc::c_char,
diff --git a/proxmox-uuid/src/lib_uuid_bindings.rs b/proxmox-uuid/src/lib_uuid_bindings.rs
index 0ecd994d..e39847e4 100644
--- a/proxmox-uuid/src/lib_uuid_bindings.rs
+++ b/proxmox-uuid/src/lib_uuid_bindings.rs
@@ -3,7 +3,7 @@ use std::fmt;
use crate::Uuid;
#[link(name = "uuid")]
-extern "C" {
+unsafe extern "C" {
pub fn uuid_generate(out: *mut [u8; 16]);
fn uuid_unparse_lower(input: *const [u8; 16], out: *mut u8);
fn uuid_unparse_upper(input: *const [u8; 16], out: *mut u8);
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 2/9] daemon: set_var is now unsafe
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 3/9] mark blocks inside unsafe fns unsafe Maximiliano Sandoval
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
In edition 2024 set_var is unsafe.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
proxmox-daemon/src/server.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/proxmox-daemon/src/server.rs b/proxmox-daemon/src/server.rs
index 7cf5ea06..670e3c3b 100644
--- a/proxmox-daemon/src/server.rs
+++ b/proxmox-daemon/src/server.rs
@@ -79,7 +79,7 @@ impl Reloader {
fn pre_exec(self) -> Result<(), Error> {
for item in self.pre_exec {
- std::env::set_var(item.name, (item.store_fn)()?);
+ unsafe { std::env::set_var(item.name, (item.store_fn)()?) };
}
Ok(())
}
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 3/9] mark blocks inside unsafe fns unsafe
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 2/9] daemon: set_var is now unsafe Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 4/9] broadcast_future: accommodate to edition 2024 changes to RPIT Maximiliano Sandoval
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
In edition 2024 unsafe code inside unsafe functions has to be explicitly
marked as such.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
proxmox-shared-memory/src/lib.rs | 4 +-
proxmox-shared-memory/src/raw_shared_mutex.rs | 48 ++++++++++---------
proxmox-sys/src/fs/read_dir.rs | 2 +-
proxmox-sys/src/linux/pid.rs | 4 +-
proxmox-sys/src/mmap.rs | 18 +++----
5 files changed, 40 insertions(+), 36 deletions(-)
diff --git a/proxmox-shared-memory/src/lib.rs b/proxmox-shared-memory/src/lib.rs
index defe678d..4a986b09 100644
--- a/proxmox-shared-memory/src/lib.rs
+++ b/proxmox-shared-memory/src/lib.rs
@@ -201,7 +201,7 @@ impl<T: Sized + Init> SharedMemory<T> {
/// This calls `Init::initialize`, it is up to the user to ensure this is safe. The value should
/// not have been initialized at this point.
pub unsafe fn initialize_subtype<T: Init>(this: &mut T) {
- let data: &mut MaybeUninit<T> = std::mem::transmute(this);
+ let data: &mut MaybeUninit<T> = unsafe { std::mem::transmute(this) };
Init::initialize(data);
}
@@ -211,6 +211,6 @@ pub unsafe fn initialize_subtype<T: Init>(this: &mut T) {
///
/// This calls `Init::check_type_magic`, it is up to the user to ensure this is safe.
pub unsafe fn check_subtype<T: Init>(this: &T) -> Result<(), Error> {
- let data: &MaybeUninit<T> = std::mem::transmute(this);
+ let data: &MaybeUninit<T> = unsafe { std::mem::transmute(this) };
Init::check_type_magic(data)
}
diff --git a/proxmox-shared-memory/src/raw_shared_mutex.rs b/proxmox-shared-memory/src/raw_shared_mutex.rs
index 1b06d5b8..3056299d 100644
--- a/proxmox-shared-memory/src/raw_shared_mutex.rs
+++ b/proxmox-shared-memory/src/raw_shared_mutex.rs
@@ -19,31 +19,33 @@ impl RawSharedMutex {
#[inline]
pub unsafe fn init(&mut self) {
let mut attr = MaybeUninit::<libc::pthread_mutexattr_t>::uninit();
- cvt_nz(libc::pthread_mutexattr_init(attr.as_mut_ptr())).unwrap();
- let attr = PthreadMutexAttr(&mut attr);
- cvt_nz(libc::pthread_mutexattr_settype(
- attr.0.as_mut_ptr(),
- libc::PTHREAD_MUTEX_NORMAL,
- ))
- .unwrap();
- cvt_nz(libc::pthread_mutexattr_setpshared(
- attr.0.as_mut_ptr(),
- libc::PTHREAD_PROCESS_SHARED,
- ))
- .unwrap();
- cvt_nz(libc::pthread_mutexattr_setrobust(
- attr.0.as_mut_ptr(),
- libc::PTHREAD_MUTEX_ROBUST,
- ))
- .unwrap();
- cvt_nz(libc::pthread_mutex_init(self.inner.get(), attr.0.as_ptr())).unwrap();
+ unsafe {
+ cvt_nz(libc::pthread_mutexattr_init(attr.as_mut_ptr())).unwrap();
+ let attr = PthreadMutexAttr(&mut attr);
+ cvt_nz(libc::pthread_mutexattr_settype(
+ attr.0.as_mut_ptr(),
+ libc::PTHREAD_MUTEX_NORMAL,
+ ))
+ .unwrap();
+ cvt_nz(libc::pthread_mutexattr_setpshared(
+ attr.0.as_mut_ptr(),
+ libc::PTHREAD_PROCESS_SHARED,
+ ))
+ .unwrap();
+ cvt_nz(libc::pthread_mutexattr_setrobust(
+ attr.0.as_mut_ptr(),
+ libc::PTHREAD_MUTEX_ROBUST,
+ ))
+ .unwrap();
+ cvt_nz(libc::pthread_mutex_init(self.inner.get(), attr.0.as_ptr())).unwrap();
+ }
}
#[inline]
pub unsafe fn lock(&self) {
- let mut r = libc::pthread_mutex_lock(self.inner.get());
+ let mut r = unsafe { libc::pthread_mutex_lock(self.inner.get()) };
if r == libc::EOWNERDEAD {
- r = libc::pthread_mutex_consistent(self.inner.get());
+ r = unsafe { libc::pthread_mutex_consistent(self.inner.get()) };
}
debug_assert_eq!(r, 0);
@@ -51,15 +53,15 @@ impl RawSharedMutex {
#[inline]
pub unsafe fn unlock(&self) {
- let r = libc::pthread_mutex_unlock(self.inner.get());
+ let r = unsafe { libc::pthread_mutex_unlock(self.inner.get()) };
debug_assert_eq!(r, 0);
}
#[inline]
pub unsafe fn try_lock(&self) -> bool {
- let mut r = libc::pthread_mutex_trylock(self.inner.get());
+ let mut r = unsafe { libc::pthread_mutex_trylock(self.inner.get()) };
if r == libc::EOWNERDEAD {
- r = libc::pthread_mutex_consistent(self.inner.get());
+ r = unsafe { libc::pthread_mutex_consistent(self.inner.get()) };
}
r == 0
diff --git a/proxmox-sys/src/fs/read_dir.rs b/proxmox-sys/src/fs/read_dir.rs
index 3119274b..09dbac3d 100644
--- a/proxmox-sys/src/fs/read_dir.rs
+++ b/proxmox-sys/src/fs/read_dir.rs
@@ -79,7 +79,7 @@ impl ReadDirEntry {
/// It is up to the user to ensure that the file name is valid utf-8 *before* calling this
/// method.
pub unsafe fn file_name_utf8_unchecked(&self) -> &str {
- std::str::from_utf8_unchecked(self.file_name().to_bytes())
+ unsafe { std::str::from_utf8_unchecked(self.file_name().to_bytes()) }
}
}
diff --git a/proxmox-sys/src/linux/pid.rs b/proxmox-sys/src/linux/pid.rs
index 7d50ac44..03464551 100644
--- a/proxmox-sys/src/linux/pid.rs
+++ b/proxmox-sys/src/linux/pid.rs
@@ -24,7 +24,7 @@ pub const SYS_pidfd_open: libc::c_long = 434;
pub const SYS_pidfd_send_signal: libc::c_long = 424;
unsafe fn pidfd_open(pid: libc::pid_t, flags: libc::c_uint) -> libc::c_long {
- libc::syscall(SYS_pidfd_open, pid, flags)
+ unsafe { libc::syscall(SYS_pidfd_open, pid, flags) }
}
unsafe fn pidfd_send_signal(
@@ -33,7 +33,7 @@ unsafe fn pidfd_send_signal(
info: *mut libc::siginfo_t,
flags: libc::c_uint,
) -> libc::c_long {
- libc::syscall(SYS_pidfd_send_signal, pidfd, sig, info, flags)
+ unsafe { libc::syscall(SYS_pidfd_send_signal, pidfd, sig, info, flags) }
}
/// File descriptor reference to a process.
diff --git a/proxmox-sys/src/mmap.rs b/proxmox-sys/src/mmap.rs
index 0ba5337b..6110d676 100644
--- a/proxmox-sys/src/mmap.rs
+++ b/proxmox-sys/src/mmap.rs
@@ -38,14 +38,16 @@ impl<T> Mmap<T> {
// libc::size_t vs usize
#[allow(clippy::useless_conversion)]
- let data = mman::mmap(
- None,
- byte_len,
- prot,
- flags,
- fd,
- libc::off_t::try_from(ofs).map_err(io::Error::other)?,
- )
+ let data = unsafe {
+ mman::mmap(
+ None,
+ byte_len,
+ prot,
+ flags,
+ fd,
+ libc::off_t::try_from(ofs).map_err(io::Error::other)?,
+ )
+ }
.map_err(SysError::into_io_error)?;
Ok(Self {
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 4/9] broadcast_future: accommodate to edition 2024 changes to RPIT
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 2/9] daemon: set_var is now unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 3/9] mark blocks inside unsafe fns unsafe Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 5/9] procfs: add variable bindings for std::fs::read Maximiliano Sandoval
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
Prevents the following error:
```
error[E0597]: `inner` does not live long enough
--> proxmox-async/src/broadcast_future.rs:109:24
|
107 | inner: Arc<Mutex<BroadCastFutureBinding<T>>>,
| ----- binding `inner` declared here
108 | ) -> impl Future<Output = Result<T, Error>> {
109 | let mut data = inner.lock().unwrap();
| ^^^^^ borrowed value does not live long enough
...
121 | data.broadcast.listen()
| ----------------------- argument requires that `inner` is borrowed for `'static`
122 | }
| - `inner` dropped here while still borrowed
error[E0597]: `data` does not live long enough
--> proxmox-async/src/broadcast_future.rs:121:9
|
109 | let mut data = inner.lock().unwrap();
| -------- binding `data` declared here
...
121 | data.broadcast.listen()
| ^^^^-------------------
| |
| borrowed value does not live long enough
| argument requires that `data` is borrowed for `'static`
122 | }
| - `data` dropped here while still borrowed
```
The use<...> pattern was introduced in rust 1.82.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Cargo.toml | 2 +-
proxmox-async/src/broadcast_future.rs | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 4d3f633e..3d758e92 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -62,7 +62,7 @@ license = "AGPL-3"
repository = "https://git.proxmox.com/?p=proxmox.git"
homepage = "https://proxmox.com"
exclude = [ "debian" ]
-rust-version = "1.80"
+rust-version = "1.82"
[workspace.dependencies]
# any features enabled here are enabled on all members using 'workspace = true'!
diff --git a/proxmox-async/src/broadcast_future.rs b/proxmox-async/src/broadcast_future.rs
index 838204d3..62982e13 100644
--- a/proxmox-async/src/broadcast_future.rs
+++ b/proxmox-async/src/broadcast_future.rs
@@ -43,7 +43,7 @@ impl<T: Clone> BroadcastData<T> {
}
}
- pub fn listen(&mut self) -> impl Future<Output = Result<T, Error>> {
+ pub fn listen(&mut self) -> impl Future<Output = Result<T, Error>> + use<T> {
use futures::future::{ok, Either};
match &self.result {
@@ -105,7 +105,7 @@ impl<T: Clone + Send + 'static> BroadcastFuture<T> {
fn spawn(
inner: Arc<Mutex<BroadCastFutureBinding<T>>>,
- ) -> impl Future<Output = Result<T, Error>> {
+ ) -> impl Future<Output = Result<T, Error>> + use<T> {
let mut data = inner.lock().unwrap();
if let Some(source) = data.future.take() {
@@ -122,7 +122,7 @@ impl<T: Clone + Send + 'static> BroadcastFuture<T> {
}
/// Register a listener
- pub fn listen(&self) -> impl Future<Output = Result<T, Error>> {
+ pub fn listen(&self) -> impl Future<Output = Result<T, Error>> + use<T> {
let inner2 = self.inner.clone();
async move { Self::spawn(inner2).await }
}
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 5/9] procfs: add variable bindings for std::fs::read
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
` (2 preceding siblings ...)
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 4/9] broadcast_future: accommodate to edition 2024 changes to RPIT Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 6/9] port to edition 2024 Maximiliano Sandoval
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
These will produce an error in edition 2024 otherwise. The reason this
is needed is because the `unsafe` block has its own scope.
The bytes were defined inside of the let-mut block to preserve the
lifetime they had before this commit.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
proxmox-sys/src/linux/procfs/mod.rs | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs
index 3b25ce70..a1758bc0 100644
--- a/proxmox-sys/src/linux/procfs/mod.rs
+++ b/proxmox-sys/src/linux/procfs/mod.rs
@@ -228,9 +228,10 @@ static PROC_LAST_STAT: LazyLock<RwLock<(ProcFsStat, Instant, bool)>> =
pub fn read_proc_stat() -> Result<ProcFsStat, Error> {
let sample_time = Instant::now();
let update_duration;
- let mut stat =
- parse_proc_stat(unsafe { std::str::from_utf8_unchecked(&std::fs::read("/proc/stat")?) })
- .unwrap();
+ let mut stat = {
+ let bytes = std::fs::read("/proc/stat")?;
+ parse_proc_stat(unsafe { std::str::from_utf8_unchecked(&bytes) }).unwrap()
+ };
{
// read lock scope
@@ -755,7 +756,8 @@ pub struct Loadavg(pub f64, pub f64, pub f64);
impl Loadavg {
/// Read the load avage from `/proc/loadavg`.
pub fn read() -> Result<Self, Error> {
- Self::parse(unsafe { std::str::from_utf8_unchecked(&std::fs::read("/proc/loadavg")?) })
+ let bytes = std::fs::read("/proc/loadavg")?;
+ Self::parse(unsafe { std::str::from_utf8_unchecked(&bytes) })
}
/// Parse the value triplet.
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 6/9] port to edition 2024
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
` (3 preceding siblings ...)
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 5/9] procfs: add variable bindings for std::fs::read Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 7/9] run rustfmt with " Maximiliano Sandoval
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
We remove binding modifiers as per:
error: binding modifiers may only be written when the default binding mode is `move`
--> proxmox-schema/src/format.rs:247:24
|
247 | Schema::Number(ref schema) => (
| ^^^ binding modifier not allowed under `ref` default binding mode
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/match-ergonomics.html>
note: matching on a reference type with a non-reference pattern changes the default binding mode
These change are possible thanks to the new match ergonomics so they
cannot be split into a separate commit.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Cargo.toml | 4 +--
proxmox-acme-api/src/plugin_api_impl.rs | 4 +--
proxmox-api-macro/src/api/method.rs | 8 +++---
proxmox-api-macro/src/api/structs.rs | 2 +-
proxmox-async/src/io/async_channel_writer.rs | 2 +-
proxmox-http/src/client/tls.rs | 30 ++++++++++----------
proxmox-http/src/rate_limited_stream.rs | 2 +-
proxmox-http/src/websocket/mod.rs | 2 +-
proxmox-notify/src/endpoints/smtp.rs | 2 +-
proxmox-router/src/cli/command.rs | 8 +++---
proxmox-router/src/permission.rs | 4 +--
proxmox-router/src/stream/parsing.rs | 5 +---
proxmox-schema/src/format.rs | 16 +++++------
proxmox-schema/src/schema.rs | 6 ++--
rustfmt.toml | 2 +-
15 files changed, 47 insertions(+), 50 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 3d758e92..794b448b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -57,12 +57,12 @@ resolver = "2"
[workspace.package]
authors = ["Proxmox Support Team <support@proxmox.com>"]
-edition = "2021"
+edition = "2024"
license = "AGPL-3"
repository = "https://git.proxmox.com/?p=proxmox.git"
homepage = "https://proxmox.com"
exclude = [ "debian" ]
-rust-version = "1.82"
+rust-version = "1.85"
[workspace.dependencies]
# any features enabled here are enabled on all members using 'workspace = true'!
diff --git a/proxmox-acme-api/src/plugin_api_impl.rs b/proxmox-acme-api/src/plugin_api_impl.rs
index 9aa8a4c3..6c2403e4 100644
--- a/proxmox-acme-api/src/plugin_api_impl.rs
+++ b/proxmox-acme-api/src/plugin_api_impl.rs
@@ -83,7 +83,7 @@ pub fn update_plugin(
expected_digest.detect_modification(digest.as_ref())?;
match plugins.get_mut(&id) {
- Some((ty, ref mut entry)) => {
+ Some((ty, entry)) => {
if ty != "dns" {
bail!("cannot update plugin of type {:?}", ty);
}
@@ -150,7 +150,7 @@ fn modify_cfg_for_api(id: &str, ty: &str, data: &Value) -> PluginConfig {
// None of these should be able to fail unless the user changed the files by hand, in which
// case we leave the unmodified string in the Value for now. This will be handled with an error
// later.
- if let Some(Value::String(ref mut data)) = obj.get_mut("data") {
+ if let Some(Value::String(data)) = obj.get_mut("data") {
if let Ok(new) = base64::decode_config(&data, base64::URL_SAFE_NO_PAD) {
if let Ok(utf8) = String::from_utf8(new) {
*data = utf8;
diff --git a/proxmox-api-macro/src/api/method.rs b/proxmox-api-macro/src/api/method.rs
index bc2c2e4f..cca07145 100644
--- a/proxmox-api-macro/src/api/method.rs
+++ b/proxmox-api-macro/src/api/method.rs
@@ -30,7 +30,7 @@ pub enum ReturnType {
impl ReturnType {
fn as_mut_schema(&mut self) -> Option<&mut Schema> {
match self {
- ReturnType::Explicit(ReturnSchema { ref mut schema, .. }) => Some(schema),
+ ReturnType::Explicit(ReturnSchema { schema, .. }) => Some(schema),
_ => None,
}
}
@@ -582,7 +582,7 @@ fn create_wrapper_function(
let body = match method_info.flavor {
MethodFlavor::Normal => {
quote! {
- if let ::serde_json::Value::Object(ref mut input_map) = &mut input_params {
+ if let ::serde_json::Value::Object(input_map) = &mut input_params {
#body
Ok(::serde_json::to_value(#func_name(#args) #await_keyword #question_mark)?)
} else {
@@ -592,7 +592,7 @@ fn create_wrapper_function(
}
MethodFlavor::Serializing => {
quote! {
- if let ::serde_json::Value::Object(ref mut input_map) = &mut input_params {
+ if let ::serde_json::Value::Object(input_map) = &mut input_params {
#body
let res = #func_name(#args) #await_keyword #question_mark;
let res: ::std::boxed::Box<dyn ::proxmox_router::SerializableReturn + Send> = ::std::boxed::Box::new(res);
@@ -609,7 +609,7 @@ fn create_wrapper_function(
quote! { ::proxmox_router::SyncStream }
};
quote! {
- if let ::serde_json::Value::Object(ref mut input_map) = &mut input_params {
+ if let ::serde_json::Value::Object(input_map) = &mut input_params {
#body
let res = #func_name(#args) #await_keyword #question_mark;
let res = #ty::from(res);
diff --git a/proxmox-api-macro/src/api/structs.rs b/proxmox-api-macro/src/api/structs.rs
index ee537ff0..c18b20b4 100644
--- a/proxmox-api-macro/src/api/structs.rs
+++ b/proxmox-api-macro/src/api/structs.rs
@@ -164,7 +164,7 @@ fn handle_regular_struct(
let mut all_of_schemas = TokenStream::new();
let mut to_remove = Vec::new();
- if let syn::Fields::Named(ref fields) = &stru.fields {
+ if let syn::Fields::Named(fields) = &stru.fields {
for field in &fields.named {
let attrs = serde::FieldAttrib::try_from(&field.attrs[..])?;
diff --git a/proxmox-async/src/io/async_channel_writer.rs b/proxmox-async/src/io/async_channel_writer.rs
index 9dd64cd5..d9de8e27 100644
--- a/proxmox-async/src/io/async_channel_writer.rs
+++ b/proxmox-async/src/io/async_channel_writer.rs
@@ -76,7 +76,7 @@ impl AsyncChannelWriter {
self.state = WriterState::Sending(future.boxed());
}
- WriterState::Sending(ref mut future) => match ready!(future.as_mut().poll(cx)) {
+ WriterState::Sending(future) => match ready!(future.as_mut().poll(cx)) {
Ok(sender) => {
self.sender = Some(sender);
self.state = WriterState::Ready;
diff --git a/proxmox-http/src/client/tls.rs b/proxmox-http/src/client/tls.rs
index 81aff783..867017e8 100644
--- a/proxmox-http/src/client/tls.rs
+++ b/proxmox-http/src/client/tls.rs
@@ -24,9 +24,9 @@ impl<S: AsyncRead + AsyncWrite + Unpin> AsyncRead for MaybeTlsStream<S> {
buf: &mut ReadBuf,
) -> Poll<Result<(), io::Error>> {
match self.get_mut() {
- MaybeTlsStream::Normal(ref mut s) => Pin::new(s).poll_read(cx, buf),
- MaybeTlsStream::Proxied(ref mut s) => Pin::new(s).poll_read(cx, buf),
- MaybeTlsStream::Secured(ref mut s) => Pin::new(s).poll_read(cx, buf),
+ MaybeTlsStream::Normal(s) => Pin::new(s).poll_read(cx, buf),
+ MaybeTlsStream::Proxied(s) => Pin::new(s).poll_read(cx, buf),
+ MaybeTlsStream::Secured(s) => Pin::new(s).poll_read(cx, buf),
}
}
}
@@ -38,9 +38,9 @@ impl<S: AsyncRead + AsyncWrite + Unpin> AsyncWrite for MaybeTlsStream<S> {
buf: &[u8],
) -> Poll<Result<usize, io::Error>> {
match self.get_mut() {
- MaybeTlsStream::Normal(ref mut s) => Pin::new(s).poll_write(cx, buf),
- MaybeTlsStream::Proxied(ref mut s) => Pin::new(s).poll_write(cx, buf),
- MaybeTlsStream::Secured(ref mut s) => Pin::new(s).poll_write(cx, buf),
+ MaybeTlsStream::Normal(s) => Pin::new(s).poll_write(cx, buf),
+ MaybeTlsStream::Proxied(s) => Pin::new(s).poll_write(cx, buf),
+ MaybeTlsStream::Secured(s) => Pin::new(s).poll_write(cx, buf),
}
}
@@ -50,9 +50,9 @@ impl<S: AsyncRead + AsyncWrite + Unpin> AsyncWrite for MaybeTlsStream<S> {
bufs: &[io::IoSlice<'_>],
) -> Poll<Result<usize, io::Error>> {
match self.get_mut() {
- MaybeTlsStream::Normal(ref mut s) => Pin::new(s).poll_write_vectored(cx, bufs),
- MaybeTlsStream::Proxied(ref mut s) => Pin::new(s).poll_write_vectored(cx, bufs),
- MaybeTlsStream::Secured(ref mut s) => Pin::new(s).poll_write_vectored(cx, bufs),
+ MaybeTlsStream::Normal(s) => Pin::new(s).poll_write_vectored(cx, bufs),
+ MaybeTlsStream::Proxied(s) => Pin::new(s).poll_write_vectored(cx, bufs),
+ MaybeTlsStream::Secured(s) => Pin::new(s).poll_write_vectored(cx, bufs),
}
}
@@ -66,17 +66,17 @@ impl<S: AsyncRead + AsyncWrite + Unpin> AsyncWrite for MaybeTlsStream<S> {
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Result<(), io::Error>> {
match self.get_mut() {
- MaybeTlsStream::Normal(ref mut s) => Pin::new(s).poll_flush(cx),
- MaybeTlsStream::Proxied(ref mut s) => Pin::new(s).poll_flush(cx),
- MaybeTlsStream::Secured(ref mut s) => Pin::new(s).poll_flush(cx),
+ MaybeTlsStream::Normal(s) => Pin::new(s).poll_flush(cx),
+ MaybeTlsStream::Proxied(s) => Pin::new(s).poll_flush(cx),
+ MaybeTlsStream::Secured(s) => Pin::new(s).poll_flush(cx),
}
}
fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Result<(), io::Error>> {
match self.get_mut() {
- MaybeTlsStream::Normal(ref mut s) => Pin::new(s).poll_shutdown(cx),
- MaybeTlsStream::Proxied(ref mut s) => Pin::new(s).poll_shutdown(cx),
- MaybeTlsStream::Secured(ref mut s) => Pin::new(s).poll_shutdown(cx),
+ MaybeTlsStream::Normal(s) => Pin::new(s).poll_shutdown(cx),
+ MaybeTlsStream::Proxied(s) => Pin::new(s).poll_shutdown(cx),
+ MaybeTlsStream::Secured(s) => Pin::new(s).poll_shutdown(cx),
}
}
}
diff --git a/proxmox-http/src/rate_limited_stream.rs b/proxmox-http/src/rate_limited_stream.rs
index d43c09c1..0e9c43ae 100644
--- a/proxmox-http/src/rate_limited_stream.rs
+++ b/proxmox-http/src/rate_limited_stream.rs
@@ -116,7 +116,7 @@ fn register_traffic(limiter: &(dyn ShareableRateLimit), count: usize) -> Option<
fn delay_is_ready(delay: &mut Option<Pin<Box<Sleep>>>, ctx: &mut Context<'_>) -> bool {
match delay {
- Some(ref mut future) => future.as_mut().poll(ctx).is_ready(),
+ Some(future) => future.as_mut().poll(ctx).is_ready(),
None => true,
}
}
diff --git a/proxmox-http/src/websocket/mod.rs b/proxmox-http/src/websocket/mod.rs
index eef5fa8e..fdbec979 100644
--- a/proxmox-http/src/websocket/mod.rs
+++ b/proxmox-http/src/websocket/mod.rs
@@ -548,7 +548,7 @@ impl<R: AsyncRead + Unpin + Send + 'static> AsyncRead for WebSocketReader<R> {
this.state = ReaderState::Receiving(future.boxed());
}
- ReaderState::Receiving(ref mut future) => match ready!(future.as_mut().poll(cx)) {
+ ReaderState::Receiving(future) => match ready!(future.as_mut().poll(cx)) {
Ok(ReadResult {
len,
reader,
diff --git a/proxmox-notify/src/endpoints/smtp.rs b/proxmox-notify/src/endpoints/smtp.rs
index b88e6c95..4521e04a 100644
--- a/proxmox-notify/src/endpoints/smtp.rs
+++ b/proxmox-notify/src/endpoints/smtp.rs
@@ -251,7 +251,7 @@ impl Endpoint for SmtpEndpoint {
.map_err(|err| Error::NotifyFailed(self.name().into(), Box::new(err)))?
}
#[cfg(feature = "mail-forwarder")]
- Content::ForwardedMail { ref raw, title, .. } => {
+ Content::ForwardedMail { raw, title, .. } => {
use lettre::message::header::ContentTransferEncoding;
use lettre::message::Body;
use tracing::error;
diff --git a/proxmox-router/src/cli/command.rs b/proxmox-router/src/cli/command.rs
index 01f64d19..aa99d528 100644
--- a/proxmox-router/src/cli/command.rs
+++ b/proxmox-router/src/cli/command.rs
@@ -327,10 +327,10 @@ pub async fn handle_command_future(
set_help_context(Some(def.clone()));
let result = match &*def {
- CommandLineInterface::Simple(ref cli_cmd) => {
+ CommandLineInterface::Simple(cli_cmd) => {
handle_simple_command_future(prefix, cli_cmd, args, rpcenv).await
}
- CommandLineInterface::Nested(ref map) => {
+ CommandLineInterface::Nested(map) => {
let mut prefix = prefix.to_string();
let cli_cmd = parse_nested_command(&mut prefix, map, &mut args)?;
handle_simple_command_future(&prefix, cli_cmd, args, rpcenv).await
@@ -356,10 +356,10 @@ pub fn handle_command(
set_help_context(Some(def.clone()));
let result = match &*def {
- CommandLineInterface::Simple(ref cli_cmd) => {
+ CommandLineInterface::Simple(cli_cmd) => {
handle_simple_command(prefix, cli_cmd, args, &mut rpcenv, run, [].into_iter())
}
- CommandLineInterface::Nested(ref map) => {
+ CommandLineInterface::Nested(map) => {
let mut prefix = prefix.to_string();
let cli_cmd = parse_nested_command(&mut prefix, map, &mut args)?;
handle_simple_command(&prefix, cli_cmd, args, &mut rpcenv, run, [].into_iter())
diff --git a/proxmox-router/src/permission.rs b/proxmox-router/src/permission.rs
index d3767b51..f6388d64 100644
--- a/proxmox-router/src/permission.rs
+++ b/proxmox-router/src/permission.rs
@@ -38,9 +38,9 @@ impl fmt::Debug for Permission {
Permission::Superuser => f.write_str("Superuser"),
Permission::World => f.write_str("World"),
Permission::Anybody => f.write_str("Anybody"),
- Permission::User(ref userid) => write!(f, "User({})", userid),
+ Permission::User(userid) => write!(f, "User({})", userid),
Permission::UserParam(param_name) => write!(f, "UserParam({})", param_name),
- Permission::Group(ref group) => write!(f, "Group({})", group),
+ Permission::Group(group) => write!(f, "Group({})", group),
Permission::WithParam(param_name, subtest) => {
write!(f, "WithParam({}, {:?})", param_name, subtest)
}
diff --git a/proxmox-router/src/stream/parsing.rs b/proxmox-router/src/stream/parsing.rs
index 69ae1994..782c18a6 100644
--- a/proxmox-router/src/stream/parsing.rs
+++ b/proxmox-router/src/stream/parsing.rs
@@ -270,10 +270,7 @@ impl AsyncBufRead for BodyBufReader {
) -> Poll<io::Result<&[u8]>> {
use hyper::body::HttpBody;
- let Self {
- ref mut reader,
- ref mut buf_at,
- } = Pin::into_inner(self);
+ let Self { reader, buf_at } = Pin::into_inner(self);
loop {
// If we currently have a buffer, use it:
if let Some((buf, at)) = buf_at {
diff --git a/proxmox-schema/src/format.rs b/proxmox-schema/src/format.rs
index 080b0268..c1e33a68 100644
--- a/proxmox-schema/src/format.rs
+++ b/proxmox-schema/src/format.rs
@@ -229,30 +229,30 @@ pub fn get_property_description(
let (descr, default, extra) = match schema {
Schema::Null => ("null", None, None),
- Schema::String(ref schema) => (
+ Schema::String(schema) => (
schema.description,
schema.default.map(|v| v.to_owned()),
None,
),
- Schema::Boolean(ref schema) => (
+ Schema::Boolean(schema) => (
schema.description,
schema.default.map(|v| v.to_string()),
None,
),
- Schema::Integer(ref schema) => (
+ Schema::Integer(schema) => (
schema.description,
schema.default.map(|v| v.to_string()),
None,
),
- Schema::Number(ref schema) => (
+ Schema::Number(schema) => (
schema.description,
schema.default.map(|v| v.to_string()),
None,
),
- Schema::Object(ref schema) => (schema.description, None, None),
- Schema::AllOf(ref schema) => (schema.description, None, None),
- Schema::OneOf(ref schema) => (schema.description, None, None),
- Schema::Array(ref schema) => (
+ Schema::Object(schema) => (schema.description, None, None),
+ Schema::AllOf(schema) => (schema.description, None, None),
+ Schema::OneOf(schema) => (schema.description, None, None),
+ Schema::Array(schema) => (
schema.description,
None,
Some(String::from("Can be specified more than once.")),
diff --git a/proxmox-schema/src/schema.rs b/proxmox-schema/src/schema.rs
index ddbbacd4..df87e070 100644
--- a/proxmox-schema/src/schema.rs
+++ b/proxmox-schema/src/schema.rs
@@ -595,7 +595,7 @@ impl ArraySchema {
/// Verify JSON value using an `ArraySchema`.
pub fn verify_json(&self, data: &Value) -> Result<(), Error> {
let list = match data {
- Value::Array(ref list) => list,
+ Value::Array(list) => list,
Value::Object(_) => bail!("Expected array - got object."),
_ => bail!("Expected array - got scalar value."),
};
@@ -1078,7 +1078,7 @@ pub trait ObjectSchemaType: private::Sealed + Send + Sync {
/// Verify JSON value using an object schema.
fn verify_json(&self, data: &Value) -> Result<(), Error> {
let map = match data {
- Value::Object(ref map) => map,
+ Value::Object(map) => map,
Value::Array(_) => bail!("Expected object - got array."),
_ => bail!("Expected object - got scalar value."),
};
@@ -1272,7 +1272,7 @@ impl ObjectSchemaType for OneOfSchema {
fn verify_json(&self, data: &Value) -> Result<(), Error> {
let map = match data {
- Value::Object(ref map) => map,
+ Value::Object(map) => map,
Value::Array(_) => bail!("Expected object - got array."),
_ => bail!("Expected object - got scalar value."),
};
diff --git a/rustfmt.toml b/rustfmt.toml
index 3a26366d..f216078d 100644
--- a/rustfmt.toml
+++ b/rustfmt.toml
@@ -1 +1 @@
-edition = "2021"
+edition = "2024"
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 7/9] run rustfmt with edition 2024
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
` (4 preceding siblings ...)
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 6/9] port to edition 2024 Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 8/9] run cargo clippy --fix Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 9/9] manual clippy fixes Maximiliano Sandoval
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
pbs-api-types/src/acl.rs | 4 +-
pbs-api-types/src/ad.rs | 4 +-
pbs-api-types/src/datastore.rs | 16 ++---
pbs-api-types/src/jobs.rs | 17 +++--
pbs-api-types/src/ldap.rs | 5 +-
pbs-api-types/src/lib.rs | 20 +++---
pbs-api-types/src/maintenance.rs | 4 +-
pbs-api-types/src/metrics.rs | 2 +-
pbs-api-types/src/openid.rs | 2 +-
pbs-api-types/src/pathpatterns.rs | 2 +-
pbs-api-types/src/percent_encoding.rs | 2 +-
pbs-api-types/src/tape/changer.rs | 2 +-
pbs-api-types/src/tape/drive.rs | 6 +-
pbs-api-types/src/tape/media_location.rs | 2 +-
pbs-api-types/src/tape/media_pool.rs | 2 +-
pbs-api-types/src/tape/mod.rs | 4 +-
pbs-api-types/src/traffic_control.rs | 2 +-
pbs-api-types/src/user.rs | 4 +-
pbs-api-types/src/version.rs | 2 +-
proxmox-access-control/src/acl.rs | 27 ++++----
.../src/cached_user_info.rs | 2 +-
proxmox-access-control/src/init.rs | 2 +-
proxmox-access-control/src/token_shadow.rs | 6 +-
proxmox-access-control/src/types.rs | 5 +-
proxmox-access-control/src/user.rs | 4 +-
proxmox-acme-api/src/account_config.rs | 4 +-
proxmox-acme-api/src/acme_plugin.rs | 2 +-
proxmox-acme-api/src/certificate_helpers.rs | 6 +-
proxmox-acme-api/src/lib.rs | 2 +-
proxmox-acme-api/src/plugin_api_impl.rs | 4 +-
proxmox-acme-api/src/plugin_config.rs | 4 +-
proxmox-acme-api/src/types.rs | 2 +-
proxmox-acme/src/account.rs | 2 +-
proxmox-acme/src/async_client.rs | 2 +-
proxmox-acme/src/authorization.rs | 2 +-
proxmox-acme/src/eab.rs | 2 +-
proxmox-acme/src/jws.rs | 2 +-
proxmox-acme/src/key.rs | 2 +-
proxmox-acme/src/order.rs | 2 +-
proxmox-api-macro/src/api/enums.rs | 2 +-
proxmox-api-macro/src/api/method.rs | 12 ++--
proxmox-api-macro/src/api/mod.rs | 2 +-
proxmox-api-macro/src/api/structs.rs | 2 +-
proxmox-api-macro/src/serde.rs | 2 +-
proxmox-api-macro/src/util.rs | 2 +-
proxmox-api-macro/tests/allof.rs | 2 +-
proxmox-api-macro/tests/api1.rs | 2 +-
proxmox-api-macro/tests/ext-schema.rs | 2 +-
proxmox-api-macro/tests/options.rs | 2 +-
proxmox-api-macro/tests/updater.rs | 2 +-
proxmox-apt/src/api.rs | 2 +-
proxmox-apt/src/cache.rs | 4 +-
proxmox-apt/src/cache_api.rs | 2 +-
proxmox-apt/src/deb822/mod.rs | 2 +-
proxmox-apt/src/deb822/packages_file.rs | 2 +-
proxmox-apt/src/deb822/release_file.rs | 2 +-
proxmox-apt/src/deb822/sources_file.rs | 2 +-
proxmox-apt/src/repositories/file.rs | 2 +-
.../src/repositories/file/list_parser.rs | 2 +-
.../src/repositories/file/sources_parser.rs | 2 +-
proxmox-apt/src/repositories/mod.rs | 4 +-
proxmox-apt/src/repositories/release.rs | 2 +-
proxmox-apt/src/repositories/repository.rs | 2 +-
proxmox-apt/tests/repositories.rs | 6 +-
proxmox-async/src/broadcast_future.rs | 4 +-
proxmox-auth-api/examples/passwd.rs | 2 +-
proxmox-auth-api/src/api/access.rs | 8 +--
proxmox-auth-api/src/api/mod.rs | 6 +-
proxmox-auth-api/src/api/ticket.rs | 2 +-
proxmox-auth-api/src/auth_key.rs | 8 +--
proxmox-auth-api/src/pam_authenticator.rs | 4 +-
.../src/password_authenticator.rs | 2 +-
proxmox-auth-api/src/ticket.rs | 4 +-
proxmox-auth-api/src/types.rs | 4 +-
proxmox-client/src/client.rs | 2 +-
proxmox-compression/src/zip.rs | 2 +-
proxmox-compression/src/zstd.rs | 2 +-
proxmox-config-digest/src/lib.rs | 4 +-
proxmox-daemon/src/command_socket.rs | 2 +-
proxmox-daemon/src/server.rs | 6 +-
proxmox-daemon/src/state.rs | 6 +-
proxmox-dns-api/src/api_types.rs | 4 +-
proxmox-dns-api/src/resolv_conf.rs | 2 +-
proxmox-http-error/src/lib.rs | 2 +-
proxmox-http/src/client/connector.rs | 2 +-
proxmox-http/src/client/simple.rs | 8 +--
proxmox-http/src/proxy_config.rs | 2 +-
proxmox-http/src/rate_limiter.rs | 2 +-
proxmox-http/src/uri.rs | 2 +-
proxmox-http/src/websocket/mod.rs | 4 +-
proxmox-human-byte/src/lib.rs | 2 +-
proxmox-io/src/lib.rs | 2 +-
proxmox-lang/src/lib.rs | 4 +-
proxmox-ldap/src/lib.rs | 2 +-
proxmox-ldap/tests/glauth.rs | 15 +++--
proxmox-log/src/file_logger.rs | 2 +-
proxmox-log/src/lib.rs | 2 +-
proxmox-log/src/tasklog_layer.rs | 6 +-
proxmox-metrics/src/influxdb/http.rs | 4 +-
proxmox-metrics/src/influxdb/utils.rs | 2 +-
proxmox-metrics/src/lib.rs | 2 +-
proxmox-network-api/src/api_impl.rs | 8 ++-
proxmox-network-api/src/api_types.rs | 10 +--
proxmox-network-api/src/config/helper.rs | 4 +-
proxmox-network-api/src/config/mod.rs | 6 +-
proxmox-network-api/src/config/parser.rs | 4 +-
proxmox-notify/src/api/gotify.rs | 46 +++++++------
proxmox-notify/src/api/matcher.rs | 22 ++++---
proxmox-notify/src/api/sendmail.rs | 36 ++++++-----
proxmox-notify/src/api/smtp.rs | 46 +++++++------
proxmox-notify/src/api/webhook.rs | 33 +++++-----
proxmox-notify/src/config.rs | 22 +++----
proxmox-notify/src/context/pbs.rs | 2 +-
proxmox-notify/src/context/pve.rs | 2 +-
proxmox-notify/src/context/test.rs | 2 +-
proxmox-notify/src/endpoints/gotify.rs | 4 +-
proxmox-notify/src/endpoints/sendmail.rs | 4 +-
proxmox-notify/src/endpoints/smtp.rs | 8 +--
proxmox-notify/src/endpoints/webhook.rs | 6 +-
proxmox-notify/src/lib.rs | 4 +-
proxmox-notify/src/matcher.rs | 4 +-
proxmox-notify/src/renderer/mod.rs | 2 +-
proxmox-openid/src/auth_state.rs | 6 +-
proxmox-openid/src/http_client.rs | 2 +-
proxmox-openid/src/lib.rs | 12 ++--
.../examples/minimal-rest-server.rs | 6 +-
proxmox-rest-server/src/api_config.rs | 8 +--
proxmox-rest-server/src/compression.rs | 2 +-
proxmox-rest-server/src/connection.rs | 10 +--
proxmox-rest-server/src/environment.rs | 2 +-
proxmox-rest-server/src/formatter.rs | 2 +-
proxmox-rest-server/src/h2service.rs | 2 +-
proxmox-rest-server/src/lib.rs | 2 +-
proxmox-rest-server/src/rest.rs | 8 +--
proxmox-rest-server/src/worker_task.rs | 6 +-
proxmox-router/src/cli/command.rs | 6 +-
proxmox-router/src/cli/completion.rs | 2 +-
proxmox-router/src/cli/completion_helpers.rs | 2 +-
proxmox-router/src/cli/format.rs | 6 +-
proxmox-router/src/cli/mod.rs | 2 +-
proxmox-router/src/cli/shellword.rs | 2 +-
proxmox-router/src/cli/text_table.rs | 2 +-
proxmox-router/src/error.rs | 2 +-
proxmox-router/src/format.rs | 2 +-
proxmox-router/src/permission.rs | 2 +-
proxmox-router/src/router.rs | 64 +++++++++++--------
proxmox-router/src/stream/parsing.rs | 4 +-
proxmox-rrd/examples/prrd.rs | 10 +--
proxmox-rrd/src/cache.rs | 8 +--
proxmox-rrd/src/cache/journal.rs | 2 +-
proxmox-rrd/src/cache/rrd_map.rs | 2 +-
proxmox-rrd/src/rrd.rs | 4 +-
proxmox-rrd/tests/file_format_test.rs | 2 +-
proxmox-schema/src/de/mod.rs | 6 +-
proxmox-schema/src/de/no_schema.rs | 2 +-
proxmox-schema/src/format.rs | 2 +-
proxmox-schema/src/property_string.rs | 22 ++++---
proxmox-schema/src/schema.rs | 4 +-
proxmox-schema/src/upid.rs | 6 +-
proxmox-schema/tests/schema_verification.rs | 4 +-
proxmox-section-config/src/lib.rs | 6 +-
proxmox-section-config/src/typed.rs | 4 +-
proxmox-sendmail/src/lib.rs | 4 +-
proxmox-serde/src/json.rs | 2 +-
proxmox-shared-cache/src/lib.rs | 2 +-
proxmox-shared-memory/src/lib.rs | 2 +-
proxmox-shared-memory/src/shared_mutex.rs | 4 +-
.../tests/raw_shared_mutex.rs | 2 +-
proxmox-simple-config/src/lib.rs | 2 +-
proxmox-sortable-macro/src/lib.rs | 2 +-
proxmox-subscription/src/check.rs | 6 +-
proxmox-subscription/src/files.rs | 8 +--
proxmox-subscription/src/lib.rs | 2 +-
proxmox-subscription/src/sign.rs | 2 +-
proxmox-subscription/src/subscription_info.rs | 10 +--
proxmox-sys/src/command.rs | 2 +-
proxmox-sys/src/crypt.rs | 2 +-
proxmox-sys/src/fd.rs | 4 +-
proxmox-sys/src/fs/acl.rs | 2 +-
proxmox-sys/src/fs/dir.rs | 4 +-
proxmox-sys/src/fs/file.rs | 4 +-
proxmox-sys/src/fs/mod.rs | 2 +-
proxmox-sys/src/fs/read_dir.rs | 2 +-
proxmox-sys/src/linux/mod.rs | 2 +-
proxmox-sys/src/linux/pid.rs | 2 +-
proxmox-sys/src/linux/procfs/mod.rs | 2 +-
proxmox-sys/src/linux/procfs/mountinfo.rs | 2 +-
proxmox-sys/src/linux/tty.rs | 2 +-
proxmox-sys/src/logrotate.rs | 6 +-
proxmox-sys/src/macros.rs | 4 +-
proxmox-sys/src/process_locker.rs | 2 +-
proxmox-sys/src/systemd.rs | 2 +-
proxmox-systemd/src/journal.rs | 2 +-
proxmox-systemd/src/lib.rs | 2 +-
proxmox-systemd/src/notify.rs | 2 +-
proxmox-tfa/src/api/methods.rs | 2 +-
proxmox-tfa/src/api/mod.rs | 8 +--
proxmox-tfa/src/api/recovery.rs | 2 +-
proxmox-tfa/src/api/webauthn.rs | 4 +-
proxmox-tfa/src/totp.rs | 8 ++-
proxmox-tfa/src/u2f.rs | 6 +-
proxmox-time-api/src/time_impl.rs | 2 +-
proxmox-time/src/calendar_event.rs | 4 +-
proxmox-time/src/daily_duration.rs | 6 +-
proxmox-time/src/parse_helpers.rs | 2 +-
proxmox-time/src/posix.rs | 2 +-
proxmox-time/src/test.rs | 2 +-
proxmox-time/src/time_span.rs | 2 +-
proxmox-time/src/wasm.rs | 2 +-
proxmox-time/src/week_days.rs | 2 +-
proxmox-uuid/src/lib.rs | 4 +-
proxmox-worker-task/src/lib.rs | 2 +-
212 files changed, 555 insertions(+), 521 deletions(-)
diff --git a/pbs-api-types/src/acl.rs b/pbs-api-types/src/acl.rs
index e2f97f06..da27606f 100644
--- a/pbs-api-types/src/acl.rs
+++ b/pbs-api-types/src/acl.rs
@@ -1,12 +1,12 @@
use std::str::FromStr;
use const_format::concatcp;
-use serde::de::{value, IntoDeserializer};
+use serde::de::{IntoDeserializer, value};
use serde::{Deserialize, Serialize};
use proxmox_lang::constnamedbitmap;
use proxmox_schema::{
- api, const_regex, ApiStringFormat, BooleanSchema, EnumEntry, Schema, StringSchema,
+ ApiStringFormat, BooleanSchema, EnumEntry, Schema, StringSchema, api, const_regex,
};
use crate::PROXMOX_SAFE_ID_REGEX_STR;
diff --git a/pbs-api-types/src/ad.rs b/pbs-api-types/src/ad.rs
index 910571a0..bf408f56 100644
--- a/pbs-api-types/src/ad.rs
+++ b/pbs-api-types/src/ad.rs
@@ -1,9 +1,9 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, Updater};
+use proxmox_schema::{Updater, api};
use super::{
- LdapMode, LDAP_DOMAIN_SCHEMA, REALM_ID_SCHEMA, SINGLE_LINE_COMMENT_SCHEMA,
+ LDAP_DOMAIN_SCHEMA, LdapMode, REALM_ID_SCHEMA, SINGLE_LINE_COMMENT_SCHEMA,
SYNC_ATTRIBUTES_SCHEMA, SYNC_DEFAULTS_STRING_SCHEMA, USER_CLASSES_SCHEMA,
};
diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
index ddd8d3c6..79cb84ba 100644
--- a/pbs-api-types/src/datastore.rs
+++ b/pbs-api-types/src/datastore.rs
@@ -4,21 +4,21 @@ use std::path::{Path, PathBuf};
use std::str::FromStr;
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use const_format::concatcp;
use serde::{Deserialize, Serialize};
use proxmox_schema::{
- api, const_regex, ApiStringFormat, ApiType, ArraySchema, EnumEntry, IntegerSchema, ReturnType,
- Schema, StringSchema, Updater, UpdaterType,
+ ApiStringFormat, ApiType, ArraySchema, EnumEntry, IntegerSchema, ReturnType, Schema,
+ StringSchema, Updater, UpdaterType, api, const_regex,
};
use crate::{
- Authid, CryptMode, Fingerprint, GroupFilter, MaintenanceMode, MaintenanceType, Userid,
- BACKUP_ID_RE, BACKUP_NS_RE, BACKUP_TIME_RE, BACKUP_TYPE_RE, DATASTORE_NOTIFY_STRING_SCHEMA,
- GC_SCHEDULE_SCHEMA, GROUP_OR_SNAPSHOT_PATH_REGEX_STR, PROXMOX_SAFE_ID_FORMAT,
- PROXMOX_SAFE_ID_REGEX_STR, PRUNE_SCHEDULE_SCHEMA, SHA256_HEX_REGEX, SINGLE_LINE_COMMENT_SCHEMA,
- SNAPSHOT_PATH_REGEX_STR, UPID,
+ Authid, BACKUP_ID_RE, BACKUP_NS_RE, BACKUP_TIME_RE, BACKUP_TYPE_RE, CryptMode,
+ DATASTORE_NOTIFY_STRING_SCHEMA, Fingerprint, GC_SCHEDULE_SCHEMA,
+ GROUP_OR_SNAPSHOT_PATH_REGEX_STR, GroupFilter, MaintenanceMode, MaintenanceType,
+ PROXMOX_SAFE_ID_FORMAT, PROXMOX_SAFE_ID_REGEX_STR, PRUNE_SCHEDULE_SCHEMA, SHA256_HEX_REGEX,
+ SINGLE_LINE_COMMENT_SCHEMA, SNAPSHOT_PATH_REGEX_STR, UPID, Userid,
};
const_regex! {
diff --git a/pbs-api-types/src/jobs.rs b/pbs-api-types/src/jobs.rs
index 04631d92..15dd41b5 100644
--- a/pbs-api-types/src/jobs.rs
+++ b/pbs-api-types/src/jobs.rs
@@ -8,10 +8,11 @@ use serde::{Deserialize, Serialize};
use proxmox_schema::*;
use crate::{
- Authid, BackupNamespace, BackupType, NotificationMode, RateLimitConfig, Userid,
- BACKUP_GROUP_SCHEMA, BACKUP_NAMESPACE_SCHEMA, BACKUP_NS_RE, DATASTORE_SCHEMA,
- DRIVE_NAME_SCHEMA, MEDIA_POOL_NAME_SCHEMA, NS_MAX_DEPTH_REDUCED_SCHEMA, PROXMOX_SAFE_ID_FORMAT,
- PROXMOX_SAFE_ID_REGEX_STR, REMOTE_ID_SCHEMA, SINGLE_LINE_COMMENT_SCHEMA,
+ Authid, BACKUP_GROUP_SCHEMA, BACKUP_NAMESPACE_SCHEMA, BACKUP_NS_RE, BackupNamespace,
+ BackupType, DATASTORE_SCHEMA, DRIVE_NAME_SCHEMA, MEDIA_POOL_NAME_SCHEMA,
+ NS_MAX_DEPTH_REDUCED_SCHEMA, NotificationMode, PROXMOX_SAFE_ID_FORMAT,
+ PROXMOX_SAFE_ID_REGEX_STR, REMOTE_ID_SCHEMA, RateLimitConfig, SINGLE_LINE_COMMENT_SCHEMA,
+ Userid,
};
const_regex! {
@@ -416,11 +417,15 @@ impl std::str::FromStr for FilterType {
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s.split_once(':') {
- Some(("group", value)) => BACKUP_GROUP_SCHEMA.parse_simple_value(value).map(|_| FilterType::Group(value.to_string()))?,
+ Some(("group", value)) => BACKUP_GROUP_SCHEMA
+ .parse_simple_value(value)
+ .map(|_| FilterType::Group(value.to_string()))?,
Some(("type", value)) => FilterType::BackupType(value.parse()?),
Some(("regex", value)) => FilterType::Regex(Regex::new(value)?),
Some((ty, _value)) => bail!("expected 'group', 'type' or 'regex' prefix, got '{}'", ty),
- None => bail!("input doesn't match expected format '<group:GROUP||type:<vm|ct|host>|regex:REGEX>'"),
+ None => bail!(
+ "input doesn't match expected format '<group:GROUP||type:<vm|ct|host>|regex:REGEX>'"
+ ),
})
}
}
diff --git a/pbs-api-types/src/ldap.rs b/pbs-api-types/src/ldap.rs
index a3e0407b..f40046c5 100644
--- a/pbs-api-types/src/ldap.rs
+++ b/pbs-api-types/src/ldap.rs
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, ApiStringFormat, ApiType, ArraySchema, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiStringFormat, ApiType, ArraySchema, Schema, StringSchema, Updater, api};
use super::{REALM_ID_SCHEMA, SINGLE_LINE_COMMENT_SCHEMA};
@@ -148,8 +148,7 @@ pub const SYNC_DEFAULTS_STRING_SCHEMA: Schema = StringSchema::new("sync defaults
))
.schema();
-const REMOVE_VANISHED_DESCRIPTION: &str =
- "A semicolon-separated list of things to remove when they or the user \
+const REMOVE_VANISHED_DESCRIPTION: &str = "A semicolon-separated list of things to remove when they or the user \
vanishes during user synchronization. The following values are possible: ``entry`` removes the \
user when not returned from the sync; ``properties`` removes any \
properties on existing user that do not appear in the source. \
diff --git a/pbs-api-types/src/lib.rs b/pbs-api-types/src/lib.rs
index acc2fca3..128345e8 100644
--- a/pbs-api-types/src/lib.rs
+++ b/pbs-api-types/src/lib.rs
@@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize};
pub mod percent_encoding;
use proxmox_schema::{
- api, const_regex, ApiStringFormat, ApiType, ArraySchema, ReturnType, Schema, StringSchema,
+ ApiStringFormat, ApiType, ArraySchema, ReturnType, Schema, StringSchema, api, const_regex,
};
use proxmox_time::parse_daily_duration;
@@ -21,7 +21,7 @@ pub use proxmox_schema::api_types::{
pub use proxmox_schema::api_types::{DNS_ALIAS_REGEX, DNS_NAME_OR_IP_REGEX, DNS_NAME_REGEX};
pub use proxmox_schema::api_types::{FINGERPRINT_SHA256_REGEX, SHA256_HEX_REGEX};
pub use proxmox_schema::api_types::{
- GENERIC_URI_REGEX, HOSTNAME_REGEX, HOST_PORT_REGEX, HTTP_URL_REGEX,
+ GENERIC_URI_REGEX, HOST_PORT_REGEX, HOSTNAME_REGEX, HTTP_URL_REGEX,
};
pub use proxmox_schema::api_types::{MULTI_LINE_COMMENT_REGEX, SINGLE_LINE_COMMENT_REGEX};
pub use proxmox_schema::api_types::{PASSWORD_REGEX, SYSTEMD_DATETIME_REGEX, UUID_REGEX};
@@ -29,13 +29,13 @@ pub use proxmox_schema::api_types::{PASSWORD_REGEX, SYSTEMD_DATETIME_REGEX, UUID
pub use proxmox_schema::api_types::{CIDR_FORMAT, CIDR_REGEX};
pub use proxmox_schema::api_types::{CIDR_V4_FORMAT, CIDR_V4_REGEX};
pub use proxmox_schema::api_types::{CIDR_V6_FORMAT, CIDR_V6_REGEX};
-pub use proxmox_schema::api_types::{IPRE_STR, IP_FORMAT, IP_REGEX};
-pub use proxmox_schema::api_types::{IPV4RE_STR, IP_V4_FORMAT, IP_V4_REGEX};
-pub use proxmox_schema::api_types::{IPV6RE_STR, IP_V6_FORMAT, IP_V6_REGEX};
+pub use proxmox_schema::api_types::{IP_FORMAT, IP_REGEX, IPRE_STR};
+pub use proxmox_schema::api_types::{IP_V4_FORMAT, IP_V4_REGEX, IPV4RE_STR};
+pub use proxmox_schema::api_types::{IP_V6_FORMAT, IP_V6_REGEX, IPV6RE_STR};
pub use proxmox_schema::api_types::COMMENT_SCHEMA as SINGLE_LINE_COMMENT_SCHEMA;
-pub use proxmox_schema::api_types::HOSTNAME_SCHEMA;
pub use proxmox_schema::api_types::HOST_PORT_SCHEMA;
+pub use proxmox_schema::api_types::HOSTNAME_SCHEMA;
pub use proxmox_schema::api_types::HTTP_URL_SCHEMA;
pub use proxmox_schema::api_types::MULTI_LINE_COMMENT_SCHEMA;
pub use proxmox_schema::api_types::NODE_SCHEMA;
@@ -113,12 +113,12 @@ pub use node::*;
pub use proxmox_auth_api::types as userid;
pub use proxmox_auth_api::types::{Authid, Userid};
-pub use proxmox_auth_api::types::{Realm, RealmRef};
-pub use proxmox_auth_api::types::{Tokenname, TokennameRef};
-pub use proxmox_auth_api::types::{Username, UsernameRef};
pub use proxmox_auth_api::types::{
PROXMOX_GROUP_ID_SCHEMA, PROXMOX_TOKEN_ID_SCHEMA, PROXMOX_TOKEN_NAME_SCHEMA,
};
+pub use proxmox_auth_api::types::{Realm, RealmRef};
+pub use proxmox_auth_api::types::{Tokenname, TokennameRef};
+pub use proxmox_auth_api::types::{Username, UsernameRef};
#[macro_use]
mod user;
@@ -127,7 +127,7 @@ pub use user::*;
pub use proxmox_schema::upid::*;
mod crypto;
-pub use crypto::{bytes_as_fingerprint, CryptMode, Fingerprint};
+pub use crypto::{CryptMode, Fingerprint, bytes_as_fingerprint};
pub mod file_restore;
diff --git a/pbs-api-types/src/maintenance.rs b/pbs-api-types/src/maintenance.rs
index 3c9aa819..85a0054e 100644
--- a/pbs-api-types/src/maintenance.rs
+++ b/pbs-api-types/src/maintenance.rs
@@ -1,8 +1,8 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
use std::borrow::Cow;
-use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema};
+use proxmox_schema::{ApiStringFormat, Schema, StringSchema, api, const_regex};
const_regex! {
pub MAINTENANCE_MESSAGE_REGEX = r"^[[:^cntrl:]]*$";
diff --git a/pbs-api-types/src/metrics.rs b/pbs-api-types/src/metrics.rs
index ee901276..0eb3c264 100644
--- a/pbs-api-types/src/metrics.rs
+++ b/pbs-api-types/src/metrics.rs
@@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use crate::{
HOST_PORT_SCHEMA, HTTP_URL_SCHEMA, PROXMOX_SAFE_ID_FORMAT, SINGLE_LINE_COMMENT_SCHEMA,
};
-use proxmox_schema::{api, Schema, StringSchema, Updater};
+use proxmox_schema::{Schema, StringSchema, Updater, api};
pub const METRIC_SERVER_ID_SCHEMA: Schema = StringSchema::new("Metrics Server ID.")
.format(&PROXMOX_SAFE_ID_FORMAT)
diff --git a/pbs-api-types/src/openid.rs b/pbs-api-types/src/openid.rs
index 2c95c5c6..9869d39a 100644
--- a/pbs-api-types/src/openid.rs
+++ b/pbs-api-types/src/openid.rs
@@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, ApiStringFormat, ArraySchema, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiStringFormat, ArraySchema, Schema, StringSchema, Updater, api};
use super::{
GENERIC_URI_REGEX, PROXMOX_SAFE_ID_FORMAT, PROXMOX_SAFE_ID_REGEX, REALM_ID_SCHEMA,
diff --git a/pbs-api-types/src/pathpatterns.rs b/pbs-api-types/src/pathpatterns.rs
index 505ecc8a..84f193ae 100644
--- a/pbs-api-types/src/pathpatterns.rs
+++ b/pbs-api-types/src/pathpatterns.rs
@@ -1,4 +1,4 @@
-use proxmox_schema::{const_regex, ApiStringFormat, ApiType, Schema, StringSchema};
+use proxmox_schema::{ApiStringFormat, ApiType, Schema, StringSchema, const_regex};
use serde::{Deserialize, Serialize};
diff --git a/pbs-api-types/src/percent_encoding.rs b/pbs-api-types/src/percent_encoding.rs
index afe011e2..6d6dcf80 100644
--- a/pbs-api-types/src/percent_encoding.rs
+++ b/pbs-api-types/src/percent_encoding.rs
@@ -1,4 +1,4 @@
-use percent_encoding::{utf8_percent_encode, AsciiSet};
+use percent_encoding::{AsciiSet, utf8_percent_encode};
/// This used to be: `SIMPLE_ENCODE_SET` plus space, `"`, `#`, `<`, `>`, backtick, `?`, `{`, `}`
pub const DEFAULT_ENCODE_SET: &AsciiSet = &percent_encoding::CONTROLS // 0..1f and 7e
diff --git a/pbs-api-types/src/tape/changer.rs b/pbs-api-types/src/tape/changer.rs
index df3823cf..3bf2b46c 100644
--- a/pbs-api-types/src/tape/changer.rs
+++ b/pbs-api-types/src/tape/changer.rs
@@ -3,7 +3,7 @@
use serde::{Deserialize, Serialize};
use proxmox_schema::{
- api, ApiStringFormat, ArraySchema, IntegerSchema, Schema, StringSchema, Updater,
+ ApiStringFormat, ArraySchema, IntegerSchema, Schema, StringSchema, Updater, api,
};
use crate::{OptionalDeviceIdentification, PROXMOX_SAFE_ID_FORMAT};
diff --git a/pbs-api-types/src/tape/drive.rs b/pbs-api-types/src/tape/drive.rs
index e00665cd..73add439 100644
--- a/pbs-api-types/src/tape/drive.rs
+++ b/pbs-api-types/src/tape/drive.rs
@@ -1,10 +1,10 @@
//! Types for tape drive API
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, IntegerSchema, Schema, StringSchema, Updater};
+use proxmox_schema::{IntegerSchema, Schema, StringSchema, Updater, api};
-use crate::{OptionalDeviceIdentification, CHANGER_NAME_SCHEMA, PROXMOX_SAFE_ID_FORMAT};
+use crate::{CHANGER_NAME_SCHEMA, OptionalDeviceIdentification, PROXMOX_SAFE_ID_FORMAT};
pub const DRIVE_NAME_SCHEMA: Schema = StringSchema::new("Drive Identifier.")
.format(&PROXMOX_SAFE_ID_FORMAT)
diff --git a/pbs-api-types/src/tape/media_location.rs b/pbs-api-types/src/tape/media_location.rs
index 608460b5..03cc876f 100644
--- a/pbs-api-types/src/tape/media_location.rs
+++ b/pbs-api-types/src/tape/media_location.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_schema::{ApiStringFormat, Schema, StringSchema};
diff --git a/pbs-api-types/src/tape/media_pool.rs b/pbs-api-types/src/tape/media_pool.rs
index c3eacec7..46d528f1 100644
--- a/pbs-api-types/src/tape/media_pool.rs
+++ b/pbs-api-types/src/tape/media_pool.rs
@@ -9,7 +9,7 @@ use std::str::FromStr;
use anyhow::Error;
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, ApiStringFormat, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiStringFormat, Schema, StringSchema, Updater, api};
use proxmox_time::{CalendarEvent, TimeSpan};
diff --git a/pbs-api-types/src/tape/mod.rs b/pbs-api-types/src/tape/mod.rs
index 6a9d56bc..0034d65c 100644
--- a/pbs-api-types/src/tape/mod.rs
+++ b/pbs-api-types/src/tape/mod.rs
@@ -25,11 +25,11 @@ pub use media::*;
use const_format::concatcp;
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema};
+use proxmox_schema::{ApiStringFormat, Schema, StringSchema, api, const_regex};
use proxmox_uuid::Uuid;
use crate::{
- BackupType, BACKUP_ID_SCHEMA, BACKUP_NS_PATH_RE, FINGERPRINT_SHA256_FORMAT,
+ BACKUP_ID_SCHEMA, BACKUP_NS_PATH_RE, BackupType, FINGERPRINT_SHA256_FORMAT,
PROXMOX_SAFE_ID_REGEX_STR, SNAPSHOT_PATH_REGEX_STR,
};
diff --git a/pbs-api-types/src/traffic_control.rs b/pbs-api-types/src/traffic_control.rs
index c68f4637..94c37e0b 100644
--- a/pbs-api-types/src/traffic_control.rs
+++ b/pbs-api-types/src/traffic_control.rs
@@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
use proxmox_human_byte::HumanByte;
-use proxmox_schema::{api, ApiType, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiType, Schema, StringSchema, Updater, api};
use crate::{
CIDR_SCHEMA, DAILY_DURATION_FORMAT, PROXMOX_SAFE_ID_FORMAT, SINGLE_LINE_COMMENT_SCHEMA,
diff --git a/pbs-api-types/src/user.rs b/pbs-api-types/src/user.rs
index 42f41266..31b698b1 100644
--- a/pbs-api-types/src/user.rs
+++ b/pbs-api-types/src/user.rs
@@ -1,8 +1,8 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, BooleanSchema, IntegerSchema, Schema, StringSchema, Updater};
+use proxmox_schema::{BooleanSchema, IntegerSchema, Schema, StringSchema, Updater, api};
-use super::userid::{Authid, Userid, PROXMOX_TOKEN_ID_SCHEMA};
+use super::userid::{Authid, PROXMOX_TOKEN_ID_SCHEMA, Userid};
use super::{SINGLE_LINE_COMMENT_FORMAT, SINGLE_LINE_COMMENT_SCHEMA};
pub const ENABLE_USER_SCHEMA: Schema = BooleanSchema::new(
diff --git a/pbs-api-types/src/version.rs b/pbs-api-types/src/version.rs
index 09e725eb..aeaa38b9 100644
--- a/pbs-api-types/src/version.rs
+++ b/pbs-api-types/src/version.rs
@@ -2,7 +2,7 @@
use std::cmp::Ordering;
use std::convert::TryFrom;
-use anyhow::{format_err, Context};
+use anyhow::{Context, format_err};
use proxmox_schema::api;
diff --git a/proxmox-access-control/src/acl.rs b/proxmox-access-control/src/acl.rs
index 1964abe2..2e5df932 100644
--- a/proxmox-access-control/src/acl.rs
+++ b/proxmox-access-control/src/acl.rs
@@ -3,11 +3,11 @@ use std::io::Write;
use std::path::Path;
use std::sync::{Arc, OnceLock, RwLock};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_auth_api::types::{Authid, Userid};
use proxmox_config_digest::ConfigDigest;
-use proxmox_product_config::{open_api_lockfile, replace_privileged_config, ApiLockGuard};
+use proxmox_product_config::{ApiLockGuard, open_api_lockfile, replace_privileged_config};
use crate::init::{access_conf, acl_config, acl_config_lock};
@@ -645,7 +645,7 @@ pub fn save_config(acl: &AclTree) -> Result<(), Error> {
mod test {
use std::{collections::HashMap, sync::OnceLock};
- use crate::init::{init_access_config, AccessControlConfig};
+ use crate::init::{AccessControlConfig, init_access_config};
use super::AclTree;
use anyhow::Error;
@@ -867,9 +867,10 @@ mod test {
);
// user2 has no privileges under "/store/store2/store3" --> return empty
- assert!(tree
- .get_child_paths(&user2, &["store", "store2", "store3"],)?
- .is_empty());
+ assert!(
+ tree.get_child_paths(&user2, &["store", "store2", "store3"],)?
+ .is_empty()
+ );
// user2 has DatastoreReader privileges under "/store/store2/store31" --> return paths
let paths = tree.get_child_paths(&user2, &["store/store2/store31"])?;
@@ -878,15 +879,17 @@ mod test {
);
// user2 has no privileges under "/store/store2/foo/bar/baz"
- assert!(tree
- .get_child_paths(&user2, &["store", "store2", "foo/bar/baz"])?
- .is_empty());
+ assert!(
+ tree.get_child_paths(&user2, &["store", "store2", "foo/bar/baz"])?
+ .is_empty()
+ );
// user2 has DatastoreReader privileges on "/store/store2/store31/store4/store6", but not
// on any child paths --> return empty
- assert!(tree
- .get_child_paths(&user2, &["store/store2/store31/store4/store6"],)?
- .is_empty());
+ assert!(
+ tree.get_child_paths(&user2, &["store/store2/store31/store4/store6"],)?
+ .is_empty()
+ );
Ok(())
}
diff --git a/proxmox-access-control/src/cached_user_info.rs b/proxmox-access-control/src/cached_user_info.rs
index 4d011f00..4c58e468 100644
--- a/proxmox-access-control/src/cached_user_info.rs
+++ b/proxmox-access-control/src/cached_user_info.rs
@@ -2,7 +2,7 @@
use std::sync::{Arc, OnceLock, RwLock};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_auth_api::types::{Authid, Userid};
use proxmox_router::UserInformation;
diff --git a/proxmox-access-control/src/init.rs b/proxmox-access-control/src/init.rs
index b0cf1a3e..a3183ce7 100644
--- a/proxmox-access-control/src/init.rs
+++ b/proxmox-access-control/src/init.rs
@@ -2,7 +2,7 @@ use std::collections::HashMap;
use std::path::{Path, PathBuf};
use std::sync::OnceLock;
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use proxmox_auth_api::types::{Authid, Userid};
use proxmox_section_config::SectionConfigData;
diff --git a/proxmox-access-control/src/token_shadow.rs b/proxmox-access-control/src/token_shadow.rs
index 60b71ac9..bd37376a 100644
--- a/proxmox-access-control/src/token_shadow.rs
+++ b/proxmox-access-control/src/token_shadow.rs
@@ -1,11 +1,11 @@
use std::collections::HashMap;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
-use serde_json::{from_value, Value};
+use serde_json::{Value, from_value};
use proxmox_auth_api::types::Authid;
-use proxmox_product_config::{open_api_lockfile, replace_config, ApiLockGuard};
+use proxmox_product_config::{ApiLockGuard, open_api_lockfile, replace_config};
use crate::init::{token_shadow, token_shadow_lock};
diff --git a/proxmox-access-control/src/types.rs b/proxmox-access-control/src/types.rs
index ae6de7cf..de11e26b 100644
--- a/proxmox-access-control/src/types.rs
+++ b/proxmox-access-control/src/types.rs
@@ -1,10 +1,9 @@
use serde::{Deserialize, Serialize};
-use proxmox_auth_api::types::{Authid, Userid, PROXMOX_TOKEN_ID_SCHEMA};
+use proxmox_auth_api::types::{Authid, PROXMOX_TOKEN_ID_SCHEMA, Userid};
use proxmox_schema::{
- api,
+ BooleanSchema, IntegerSchema, Schema, StringSchema, Updater, api,
api_types::{COMMENT_SCHEMA, SINGLE_LINE_COMMENT_FORMAT},
- BooleanSchema, IntegerSchema, Schema, StringSchema, Updater,
};
pub const ENABLE_USER_SCHEMA: Schema = BooleanSchema::new(
diff --git a/proxmox-access-control/src/user.rs b/proxmox-access-control/src/user.rs
index 95b70f25..0d60f520 100644
--- a/proxmox-access-control/src/user.rs
+++ b/proxmox-access-control/src/user.rs
@@ -1,11 +1,11 @@
use std::collections::HashMap;
use std::sync::{Arc, OnceLock, RwLock};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_auth_api::types::Authid;
use proxmox_config_digest::ConfigDigest;
-use proxmox_product_config::{open_api_lockfile, replace_privileged_config, ApiLockGuard};
+use proxmox_product_config::{ApiLockGuard, open_api_lockfile, replace_privileged_config};
use proxmox_schema::*;
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
diff --git a/proxmox-acme-api/src/account_config.rs b/proxmox-acme-api/src/account_config.rs
index 0ced6926..140c1415 100644
--- a/proxmox-acme-api/src/account_config.rs
+++ b/proxmox-acme-api/src/account_config.rs
@@ -5,7 +5,7 @@ use std::ops::ControlFlow;
use std::os::unix::fs::OpenOptionsExt;
use std::path::{Path, PathBuf};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
use proxmox_product_config::replace_secret_config;
@@ -13,9 +13,9 @@ use proxmox_sys::error::SysError;
use proxmox_schema::api_types::SAFE_ID_REGEX;
+use proxmox_acme::Account;
use proxmox_acme::async_client::AcmeClient;
use proxmox_acme::types::AccountData as AcmeAccountData;
-use proxmox_acme::Account;
use crate::acme_account_dir;
use crate::types::AcmeAccountName;
diff --git a/proxmox-acme-api/src/acme_plugin.rs b/proxmox-acme-api/src/acme_plugin.rs
index cd4012f5..a01d5087 100644
--- a/proxmox-acme-api/src/acme_plugin.rs
+++ b/proxmox-acme-api/src/acme_plugin.rs
@@ -6,7 +6,7 @@ use std::process::Stdio;
use std::sync::Arc;
use std::time::Duration;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use hyper::{Body, Request, Response};
use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWriteExt, BufReader};
use tokio::process::Command;
diff --git a/proxmox-acme-api/src/certificate_helpers.rs b/proxmox-acme-api/src/certificate_helpers.rs
index a0d744c8..854e98e6 100644
--- a/proxmox-acme-api/src/certificate_helpers.rs
+++ b/proxmox-acme-api/src/certificate_helpers.rs
@@ -4,17 +4,17 @@ use std::time::Duration;
use foreign_types::ForeignTypeRef;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use openssl::pkey::{PKey, Private};
use openssl::rsa::Rsa;
-use openssl::x509::{X509Builder, X509};
+use openssl::x509::{X509, X509Builder};
use proxmox_acme::async_client::AcmeClient;
use proxmox_log::{info, warn};
use proxmox_rest_server::WorkerTask;
-use crate::types::{AcmeConfig, AcmeDomain};
use crate::CertificateInfo;
+use crate::types::{AcmeConfig, AcmeDomain};
pub async fn revoke_certificate(acme_config: &AcmeConfig, certificate: &[u8]) -> Result<(), Error> {
let mut acme = super::account_config::load_account_config(&acme_config.account)
diff --git a/proxmox-acme-api/src/lib.rs b/proxmox-acme-api/src/lib.rs
index 623e9e23..196269b6 100644
--- a/proxmox-acme-api/src/lib.rs
+++ b/proxmox-acme-api/src/lib.rs
@@ -17,7 +17,7 @@ pub use config::{DEFAULT_ACME_DIRECTORY_ENTRY, KNOWN_ACME_DIRECTORIES};
#[cfg(feature = "impl")]
mod challenge_schemas;
#[cfg(feature = "impl")]
-pub use challenge_schemas::{get_cached_challenge_schemas, ChallengeSchemaWrapper};
+pub use challenge_schemas::{ChallengeSchemaWrapper, get_cached_challenge_schemas};
#[cfg(feature = "impl")]
mod account_config;
diff --git a/proxmox-acme-api/src/plugin_api_impl.rs b/proxmox-acme-api/src/plugin_api_impl.rs
index 6c2403e4..a367e535 100644
--- a/proxmox-acme-api/src/plugin_api_impl.rs
+++ b/proxmox-acme-api/src/plugin_api_impl.rs
@@ -1,6 +1,6 @@
//! ACME plugin configuration API implementation
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::Deserialize;
use serde_json::Value;
@@ -12,7 +12,7 @@ use crate::types::{
DeletablePluginProperty, DnsPlugin, DnsPluginCore, DnsPluginCoreUpdater, PluginConfig,
};
-use proxmox_router::{http_bail, RpcEnvironment};
+use proxmox_router::{RpcEnvironment, http_bail};
pub fn list_plugins(rpcenv: &mut dyn RpcEnvironment) -> Result<Vec<PluginConfig>, Error> {
let (plugins, digest) = super::plugin_config::plugin_config()?;
diff --git a/proxmox-acme-api/src/plugin_config.rs b/proxmox-acme-api/src/plugin_config.rs
index b7ed7594..e61b3f72 100644
--- a/proxmox-acme-api/src/plugin_config.rs
+++ b/proxmox-acme-api/src/plugin_config.rs
@@ -6,11 +6,11 @@ use anyhow::Error;
use serde_json::Value;
use proxmox_config_digest::ConfigDigest;
-use proxmox_product_config::{open_api_lockfile, replace_secret_config, ApiLockGuard};
+use proxmox_product_config::{ApiLockGuard, open_api_lockfile, replace_secret_config};
use proxmox_schema::{ApiType, Schema};
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
-use crate::types::{DnsPlugin, StandalonePlugin, PLUGIN_ID_SCHEMA};
+use crate::types::{DnsPlugin, PLUGIN_ID_SCHEMA, StandalonePlugin};
static CONFIG: LazyLock<SectionConfig> = LazyLock::new(init);
diff --git a/proxmox-acme-api/src/types.rs b/proxmox-acme-api/src/types.rs
index d46497ca..934e6ece 100644
--- a/proxmox-acme-api/src/types.rs
+++ b/proxmox-acme-api/src/types.rs
@@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize};
use serde_json::Value;
use proxmox_schema::api_types::{DNS_ALIAS_FORMAT, DNS_NAME_FORMAT, SAFE_ID_FORMAT};
-use proxmox_schema::{api, ApiStringFormat, ApiType, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiStringFormat, ApiType, Schema, StringSchema, Updater, api};
use proxmox_acme::types::AccountData as AcmeAccountData;
diff --git a/proxmox-acme/src/account.rs b/proxmox-acme/src/account.rs
index 6993b2cf..3e5a3ec3 100644
--- a/proxmox-acme/src/account.rs
+++ b/proxmox-acme/src/account.rs
@@ -8,6 +8,7 @@ use openssl::pkey::{PKey, Private};
use serde::{Deserialize, Serialize};
use serde_json::Value;
+use crate::Error;
use crate::authorization::{Authorization, GetAuthorization};
use crate::b64u;
use crate::directory::Directory;
@@ -16,7 +17,6 @@ use crate::key::{Jwk, PublicKey};
use crate::order::{NewOrder, Order, OrderData};
use crate::request::Request;
use crate::types::{AccountData, AccountStatus, ExternalAccountBinding};
-use crate::Error;
/// An ACME Account.
///
diff --git a/proxmox-acme/src/async_client.rs b/proxmox-acme/src/async_client.rs
index ce5a6c79..dec10842 100644
--- a/proxmox-acme/src/async_client.rs
+++ b/proxmox-acme/src/async_client.rs
@@ -7,9 +7,9 @@ use serde::{Deserialize, Serialize};
use proxmox_http::client::Client;
+use crate::Request as AcmeRequest;
use crate::account::AccountCreator;
use crate::order::{Order, OrderData};
-use crate::Request as AcmeRequest;
use crate::{Account, Authorization, Challenge, Directory, Error, ErrorResponse};
/// A non-blocking Acme client using tokio/hyper.
diff --git a/proxmox-acme/src/authorization.rs b/proxmox-acme/src/authorization.rs
index 28bc1b4b..a4a1f019 100644
--- a/proxmox-acme/src/authorization.rs
+++ b/proxmox-acme/src/authorization.rs
@@ -5,9 +5,9 @@ use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
+use crate::Error;
use crate::order::Identifier;
use crate::request::Request;
-use crate::Error;
/// Status of an [`Authorization`].
#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize, Serialize)]
diff --git a/proxmox-acme/src/eab.rs b/proxmox-acme/src/eab.rs
index 3e0d2816..7052a54f 100644
--- a/proxmox-acme/src/eab.rs
+++ b/proxmox-acme/src/eab.rs
@@ -6,7 +6,7 @@ use serde::Serialize;
use crate::key::Jwk;
use crate::types::ExternalAccountBinding;
-use crate::{b64u, Error};
+use crate::{Error, b64u};
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
diff --git a/proxmox-acme/src/jws.rs b/proxmox-acme/src/jws.rs
index b867f714..350cd451 100644
--- a/proxmox-acme/src/jws.rs
+++ b/proxmox-acme/src/jws.rs
@@ -5,9 +5,9 @@ use openssl::pkey::{HasPrivate, PKeyRef};
use openssl::sign::Signer;
use serde::Serialize;
+use crate::Error;
use crate::b64u;
use crate::key::{Jwk, PublicKey};
-use crate::Error;
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
diff --git a/proxmox-acme/src/key.rs b/proxmox-acme/src/key.rs
index 5dbc5460..ae790d04 100644
--- a/proxmox-acme/src/key.rs
+++ b/proxmox-acme/src/key.rs
@@ -4,8 +4,8 @@ use openssl::hash::{Hasher, MessageDigest};
use openssl::pkey::{HasPublic, Id, PKeyRef};
use serde::Serialize;
-use crate::b64u;
use crate::Error;
+use crate::b64u;
/// An RSA public key.
#[derive(Clone, Debug, Serialize)]
diff --git a/proxmox-acme/src/order.rs b/proxmox-acme/src/order.rs
index b6551004..d75fbde1 100644
--- a/proxmox-acme/src/order.rs
+++ b/proxmox-acme/src/order.rs
@@ -3,8 +3,8 @@
use serde::{Deserialize, Serialize};
use serde_json::Value;
-use crate::request::Request;
use crate::Error;
+use crate::request::Request;
/// Status of an [`Order`].
#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize, Serialize)]
diff --git a/proxmox-api-macro/src/api/enums.rs b/proxmox-api-macro/src/api/enums.rs
index 9b122f9c..f3de7929 100644
--- a/proxmox-api-macro/src/api/enums.rs
+++ b/proxmox-api-macro/src/api/enums.rs
@@ -6,8 +6,8 @@ use proc_macro2::{Ident, Span, TokenStream};
use quote::quote_spanned;
use syn::spanned::Spanned;
-use super::attributes::EnumFieldAttributes;
use super::Schema;
+use super::attributes::EnumFieldAttributes;
use crate::serde;
use crate::util::{self, FieldName, JSONObject, JSONValue, Maybe};
diff --git a/proxmox-api-macro/src/api/method.rs b/proxmox-api-macro/src/api/method.rs
index cca07145..0804b67d 100644
--- a/proxmox-api-macro/src/api/method.rs
+++ b/proxmox-api-macro/src/api/method.rs
@@ -11,11 +11,11 @@ use std::mem;
use anyhow::Error;
use proc_macro2::{Span, TokenStream};
-use quote::{quote, quote_spanned, ToTokens};
+use quote::{ToTokens, quote, quote_spanned};
+use syn::Ident;
use syn::ext::IdentExt;
use syn::spanned::Spanned;
use syn::visit_mut::{self, VisitMut};
-use syn::Ident;
use super::{ObjectEntry, Schema, SchemaItem, SchemaObject};
use crate::util::{self, FieldName, JSONObject, JSONValue, Maybe};
@@ -93,11 +93,7 @@ impl TryFrom<JSONObject> for ReturnSchema {
Some(value) => {
let span = value.span();
let is_optional: bool = value.try_into()?;
- if is_optional {
- Some(span)
- } else {
- None
- }
+ if is_optional { Some(span) } else { None }
}
None => None,
};
@@ -523,7 +519,7 @@ fn is_value_type(ty: &syn::Type) -> bool {
1 => return segs.last().unwrap().ident == "Value",
2 => {
return segs.first().unwrap().ident == "serde_json"
- && segs.last().unwrap().ident == "Value"
+ && segs.last().unwrap().ident == "Value";
}
_ => return false,
}
diff --git a/proxmox-api-macro/src/api/mod.rs b/proxmox-api-macro/src/api/mod.rs
index 416ea56e..8078db07 100644
--- a/proxmox-api-macro/src/api/mod.rs
+++ b/proxmox-api-macro/src/api/mod.rs
@@ -12,7 +12,7 @@ use std::convert::{TryFrom, TryInto};
use anyhow::Error;
use proc_macro2::{Span, TokenStream};
-use quote::{quote, quote_spanned, ToTokens};
+use quote::{ToTokens, quote, quote_spanned};
use syn::parse::{Parse, ParseStream, Parser};
use syn::spanned::Spanned;
use syn::{Expr, ExprPath, Ident};
diff --git a/proxmox-api-macro/src/api/structs.rs b/proxmox-api-macro/src/api/structs.rs
index c18b20b4..e11c68ad 100644
--- a/proxmox-api-macro/src/api/structs.rs
+++ b/proxmox-api-macro/src/api/structs.rs
@@ -18,8 +18,8 @@ use anyhow::Error;
use proc_macro2::{Ident, Span, TokenStream};
use quote::quote_spanned;
-use super::attributes::UpdaterFieldAttributes;
use super::Schema;
+use super::attributes::UpdaterFieldAttributes;
use crate::api::{self, ObjectEntry, SchemaItem};
use crate::serde;
use crate::util::{self, FieldName, JSONObject, Maybe};
diff --git a/proxmox-api-macro/src/serde.rs b/proxmox-api-macro/src/serde.rs
index 62430f16..9993f9e5 100644
--- a/proxmox-api-macro/src/serde.rs
+++ b/proxmox-api-macro/src/serde.rs
@@ -6,9 +6,9 @@
use std::convert::TryFrom;
use proc_macro2::Span;
+use syn::Token;
use syn::punctuated::Punctuated;
use syn::spanned::Spanned;
-use syn::Token;
/// Serde name types.
#[allow(clippy::enum_variant_names)]
diff --git a/proxmox-api-macro/src/util.rs b/proxmox-api-macro/src/util.rs
index 11a83e46..003f5c3b 100644
--- a/proxmox-api-macro/src/util.rs
+++ b/proxmox-api-macro/src/util.rs
@@ -4,10 +4,10 @@ use std::convert::TryFrom;
use proc_macro2::{Ident, Span, TokenStream, TokenTree};
use quote::ToTokens;
+use syn::Token;
use syn::parse::{Parse, ParseStream};
use syn::punctuated::Punctuated;
use syn::spanned::Spanned;
-use syn::Token;
use anyhow::Error;
diff --git a/proxmox-api-macro/tests/allof.rs b/proxmox-api-macro/tests/allof.rs
index 57089d26..eaaf5606 100644
--- a/proxmox-api-macro/tests/allof.rs
+++ b/proxmox-api-macro/tests/allof.rs
@@ -2,7 +2,7 @@
use anyhow::Error;
use serde::{Deserialize, Serialize};
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use proxmox_api_macro::api;
use proxmox_schema as schema;
diff --git a/proxmox-api-macro/tests/api1.rs b/proxmox-api-macro/tests/api1.rs
index cff0cd5b..125733fb 100644
--- a/proxmox-api-macro/tests/api1.rs
+++ b/proxmox-api-macro/tests/api1.rs
@@ -1,7 +1,7 @@
use proxmox_api_macro::api;
use anyhow::Error;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use proxmox_router::Permission;
diff --git a/proxmox-api-macro/tests/ext-schema.rs b/proxmox-api-macro/tests/ext-schema.rs
index 4c88de0e..3e2d1cdf 100644
--- a/proxmox-api-macro/tests/ext-schema.rs
+++ b/proxmox-api-macro/tests/ext-schema.rs
@@ -6,7 +6,7 @@ use proxmox_router::RpcEnvironment;
use proxmox_schema as schema;
use anyhow::Error;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
pub const NAME_SCHEMA: schema::Schema = schema::StringSchema::new("Archive name.")
//.format(&FILENAME_FORMAT)
diff --git a/proxmox-api-macro/tests/options.rs b/proxmox-api-macro/tests/options.rs
index 6a7fa1ba..6d61cc10 100644
--- a/proxmox-api-macro/tests/options.rs
+++ b/proxmox-api-macro/tests/options.rs
@@ -1,7 +1,7 @@
use proxmox_api_macro::api;
use anyhow::Error;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
#[api(
input: {
diff --git a/proxmox-api-macro/tests/updater.rs b/proxmox-api-macro/tests/updater.rs
index 43f97da2..b04abedf 100644
--- a/proxmox-api-macro/tests/updater.rs
+++ b/proxmox-api-macro/tests/updater.rs
@@ -2,7 +2,7 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::{api, ApiType, Updater, UpdaterType};
+use proxmox_schema::{ApiType, Updater, UpdaterType, api};
// Helpers for type checks:
struct AssertTypeEq<T>(T);
diff --git a/proxmox-apt/src/api.rs b/proxmox-apt/src/api.rs
index 14dfb53b..42c609ee 100644
--- a/proxmox-apt/src/api.rs
+++ b/proxmox-apt/src/api.rs
@@ -1,7 +1,7 @@
// API function that work without feature "cache"
use std::path::Path;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_apt_api_types::{
APTChangeRepositoryOptions, APTGetChangelogOptions, APTRepositoriesResult, APTRepositoryFile,
diff --git a/proxmox-apt/src/cache.rs b/proxmox-apt/src/cache.rs
index 03315013..1c04481f 100644
--- a/proxmox-apt/src/cache.rs
+++ b/proxmox-apt/src/cache.rs
@@ -2,11 +2,11 @@ use std::collections::HashMap;
use std::collections::HashSet;
use std::path::Path;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use apt_pkg_native::Cache;
use proxmox_schema::const_regex;
-use proxmox_sys::fs::{file_read_optional_string, replace_file, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, file_read_optional_string, replace_file};
use proxmox_apt_api_types::APTUpdateInfo;
diff --git a/proxmox-apt/src/cache_api.rs b/proxmox-apt/src/cache_api.rs
index a2cd67f8..205f30e9 100644
--- a/proxmox-apt/src/cache_api.rs
+++ b/proxmox-apt/src/cache_api.rs
@@ -1,7 +1,7 @@
// API function that need feature "cache"
use std::path::Path;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use std::os::unix::prelude::OsStrExt;
use proxmox_apt_api_types::{APTUpdateInfo, APTUpdateOptions};
diff --git a/proxmox-apt/src/deb822/mod.rs b/proxmox-apt/src/deb822/mod.rs
index 59e7c210..d13c8670 100644
--- a/proxmox-apt/src/deb822/mod.rs
+++ b/proxmox-apt/src/deb822/mod.rs
@@ -1,5 +1,5 @@
mod release_file;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
pub use release_file::{CompressionType, FileReference, FileReferenceType, ReleaseFile};
mod packages_file;
diff --git a/proxmox-apt/src/deb822/packages_file.rs b/proxmox-apt/src/deb822/packages_file.rs
index aec0a926..7f691ebb 100644
--- a/proxmox-apt/src/deb822/packages_file.rs
+++ b/proxmox-apt/src/deb822/packages_file.rs
@@ -1,6 +1,6 @@
use std::collections::HashMap;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use rfc822_like::de::Deserializer;
use serde::Deserialize;
use serde_json::Value;
diff --git a/proxmox-apt/src/deb822/release_file.rs b/proxmox-apt/src/deb822/release_file.rs
index dbf1a367..68a626fb 100644
--- a/proxmox-apt/src/deb822/release_file.rs
+++ b/proxmox-apt/src/deb822/release_file.rs
@@ -1,6 +1,6 @@
use std::collections::HashMap;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use rfc822_like::de::Deserializer;
use serde::Deserialize;
use serde_json::Value;
diff --git a/proxmox-apt/src/deb822/sources_file.rs b/proxmox-apt/src/deb822/sources_file.rs
index 40bef6e0..3893350e 100644
--- a/proxmox-apt/src/deb822/sources_file.rs
+++ b/proxmox-apt/src/deb822/sources_file.rs
@@ -1,6 +1,6 @@
use std::collections::HashMap;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use rfc822_like::de::Deserializer;
use serde::Deserialize;
use serde_json::Value;
diff --git a/proxmox-apt/src/repositories/file.rs b/proxmox-apt/src/repositories/file.rs
index e34e84e0..debf0f40 100644
--- a/proxmox-apt/src/repositories/file.rs
+++ b/proxmox-apt/src/repositories/file.rs
@@ -1,6 +1,6 @@
use std::path::{Path, PathBuf};
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use crate::repositories::release::DebianCodename;
use proxmox_apt_api_types::{
diff --git a/proxmox-apt/src/repositories/file/list_parser.rs b/proxmox-apt/src/repositories/file/list_parser.rs
index 8681509a..3e143ade 100644
--- a/proxmox-apt/src/repositories/file/list_parser.rs
+++ b/proxmox-apt/src/repositories/file/list_parser.rs
@@ -1,7 +1,7 @@
use std::io::BufRead;
use std::iter::Iterator;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use super::APTRepositoryParser;
use crate::repositories::APTRepositoryImpl;
diff --git a/proxmox-apt/src/repositories/file/sources_parser.rs b/proxmox-apt/src/repositories/file/sources_parser.rs
index c85b8d2e..bc6a616f 100644
--- a/proxmox-apt/src/repositories/file/sources_parser.rs
+++ b/proxmox-apt/src/repositories/file/sources_parser.rs
@@ -1,7 +1,7 @@
use std::io::BufRead;
use std::iter::Iterator;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use crate::repositories::APTRepositoryImpl;
use crate::repositories::{
diff --git a/proxmox-apt/src/repositories/mod.rs b/proxmox-apt/src/repositories/mod.rs
index 5665de40..69b0ffa9 100644
--- a/proxmox-apt/src/repositories/mod.rs
+++ b/proxmox-apt/src/repositories/mod.rs
@@ -1,7 +1,7 @@
use std::collections::BTreeMap;
use std::path::{Path, PathBuf};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
mod repository;
use proxmox_apt_api_types::{
@@ -16,7 +16,7 @@ mod file;
pub use file::APTRepositoryFileImpl;
mod release;
-pub use release::{get_current_release_codename, DebianCodename};
+pub use release::{DebianCodename, get_current_release_codename};
mod standard;
pub use standard::{APTRepositoryHandleImpl, APTStandardRepositoryImpl};
diff --git a/proxmox-apt/src/repositories/release.rs b/proxmox-apt/src/repositories/release.rs
index da391e58..9a4fabba 100644
--- a/proxmox-apt/src/repositories/release.rs
+++ b/proxmox-apt/src/repositories/release.rs
@@ -1,7 +1,7 @@
use std::fmt::Display;
use std::io::{BufRead, BufReader};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
/// The code names of Debian releases. Does not include `sid`.
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
diff --git a/proxmox-apt/src/repositories/repository.rs b/proxmox-apt/src/repositories/repository.rs
index 62ad49d8..548ca103 100644
--- a/proxmox-apt/src/repositories/repository.rs
+++ b/proxmox-apt/src/repositories/repository.rs
@@ -1,7 +1,7 @@
use std::io::{BufRead, BufReader, Write};
use std::path::{Path, PathBuf};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use crate::repositories::standard::APTRepositoryHandleImpl;
use proxmox_apt_api_types::{
diff --git a/proxmox-apt/tests/repositories.rs b/proxmox-apt/tests/repositories.rs
index 61d770b3..01b21da3 100644
--- a/proxmox-apt/tests/repositories.rs
+++ b/proxmox-apt/tests/repositories.rs
@@ -1,12 +1,12 @@
use std::path::PathBuf;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use proxmox_apt::repositories::{
- check_repositories, get_current_release_codename, standard_repositories, DebianCodename,
+ APTRepositoryFileImpl, APTRepositoryImpl, APTStandardRepositoryImpl,
};
use proxmox_apt::repositories::{
- APTRepositoryFileImpl, APTRepositoryImpl, APTStandardRepositoryImpl,
+ DebianCodename, check_repositories, get_current_release_codename, standard_repositories,
};
use proxmox_apt_api_types::{
APTRepositoryFile, APTRepositoryHandle, APTRepositoryInfo, APTStandardRepository,
diff --git a/proxmox-async/src/broadcast_future.rs b/proxmox-async/src/broadcast_future.rs
index 62982e13..c71880f6 100644
--- a/proxmox-async/src/broadcast_future.rs
+++ b/proxmox-async/src/broadcast_future.rs
@@ -4,7 +4,7 @@ use std::future::Future;
use std::pin::Pin;
use std::sync::{Arc, Mutex};
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use futures::future::{FutureExt, TryFutureExt};
use tokio::sync::oneshot;
@@ -44,7 +44,7 @@ impl<T: Clone> BroadcastData<T> {
}
pub fn listen(&mut self) -> impl Future<Output = Result<T, Error>> + use<T> {
- use futures::future::{ok, Either};
+ use futures::future::{Either, ok};
match &self.result {
None => {}
diff --git a/proxmox-auth-api/examples/passwd.rs b/proxmox-auth-api/examples/passwd.rs
index 27816271..58397b28 100644
--- a/proxmox-auth-api/examples/passwd.rs
+++ b/proxmox-auth-api/examples/passwd.rs
@@ -5,7 +5,7 @@ use std::io::Write;
use std::pin::Pin;
use std::task::{Context, Poll};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use proxmox_auth_api::api::Authenticator;
use proxmox_auth_api::types::Username;
diff --git a/proxmox-auth-api/src/api/access.rs b/proxmox-auth-api/src/api/access.rs
index f7d52e95..3ac2fd46 100644
--- a/proxmox-auth-api/src/api/access.rs
+++ b/proxmox-auth-api/src/api/access.rs
@@ -1,16 +1,16 @@
//! Provides the "/access/ticket" API call.
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use openssl::hash::MessageDigest;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use proxmox_rest_server::RestEnvironment;
-use proxmox_router::{http_err, Permission, RpcEnvironment};
+use proxmox_router::{Permission, RpcEnvironment, http_err};
use proxmox_schema::{api, api_types::PASSWORD_SCHEMA};
use proxmox_tfa::api::TfaChallenge;
use super::ApiTicket;
-use super::{auth_context, HMACKey};
+use super::{HMACKey, auth_context};
use crate::ticket::Ticket;
use crate::types::{Authid, Userid};
diff --git a/proxmox-auth-api/src/api/mod.rs b/proxmox-auth-api/src/api/mod.rs
index a6f9d425..3a425d63 100644
--- a/proxmox-auth-api/src/api/mod.rs
+++ b/proxmox-auth-api/src/api/mod.rs
@@ -3,10 +3,10 @@ use std::net::IpAddr;
use std::pin::Pin;
use std::sync::Mutex;
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use percent_encoding::percent_decode_str;
-use proxmox_rest_server::{extract_cookie, AuthError};
+use proxmox_rest_server::{AuthError, extract_cookie};
use proxmox_tfa::api::{OpenUserChallengeData, TfaConfig};
use crate::auth_key::{HMACKey, Keyring};
@@ -18,7 +18,7 @@ mod ticket;
use crate::ticket::Ticket;
use access::verify_csrf_prevention_token;
-pub use access::{assemble_csrf_prevention_token, create_ticket, API_METHOD_CREATE_TICKET};
+pub use access::{API_METHOD_CREATE_TICKET, assemble_csrf_prevention_token, create_ticket};
pub use ticket::{ApiTicket, PartialTicket};
/// Authentication realms are used to manage users: authenticate, change password or remove.
diff --git a/proxmox-auth-api/src/api/ticket.rs b/proxmox-auth-api/src/api/ticket.rs
index f2d1580b..bf959c7e 100644
--- a/proxmox-auth-api/src/api/ticket.rs
+++ b/proxmox-auth-api/src/api/ticket.rs
@@ -2,7 +2,7 @@
use std::fmt;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
use proxmox_tfa::api::TfaChallenge;
diff --git a/proxmox-auth-api/src/auth_key.rs b/proxmox-auth-api/src/auth_key.rs
index 9873d935..98684853 100644
--- a/proxmox-auth-api/src/auth_key.rs
+++ b/proxmox-auth-api/src/auth_key.rs
@@ -1,6 +1,6 @@
//! Auth key handling.
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use openssl::hash::MessageDigest;
use openssl::pkey::{HasPublic, Id, PKey, PKeyRef, Private, Public};
use openssl::rsa::Rsa;
@@ -314,7 +314,7 @@ impl Keyring {
if let Some(key) = &self.signing_key {
match key {
SigningKey::Private(key) if verify_with(&key.key, digest, signature, data)? => {
- return Ok(true)
+ return Ok(true);
}
SigningKey::Hmac(key) if key.verify(digest, signature, data)? => return Ok(true),
_ => (),
@@ -324,10 +324,10 @@ impl Keyring {
for key in &self.public_keys {
match key {
VerificationKey::Public(key) if verify_with(&key.key, digest, signature, data)? => {
- return Ok(true)
+ return Ok(true);
}
VerificationKey::Hmac(key) if key.verify(digest, signature, data)? => {
- return Ok(true)
+ return Ok(true);
}
_ => (),
}
diff --git a/proxmox-auth-api/src/pam_authenticator.rs b/proxmox-auth-api/src/pam_authenticator.rs
index d34575be..a2a1b1ad 100644
--- a/proxmox-auth-api/src/pam_authenticator.rs
+++ b/proxmox-auth-api/src/pam_authenticator.rs
@@ -1,9 +1,9 @@
-use std::ffi::{c_int, c_void, CStr, CString};
+use std::ffi::{CStr, CString, c_int, c_void};
use std::future::Future;
use std::net::IpAddr;
use std::pin::Pin;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use pam_sys::types::{
PamHandle, PamItemType, PamMessage, PamMessageStyle, PamResponse, PamReturnCode,
};
diff --git a/proxmox-auth-api/src/password_authenticator.rs b/proxmox-auth-api/src/password_authenticator.rs
index 06b6551a..6a946bb0 100644
--- a/proxmox-auth-api/src/password_authenticator.rs
+++ b/proxmox-auth-api/src/password_authenticator.rs
@@ -2,7 +2,7 @@ use std::future::Future;
use std::net::IpAddr;
use std::pin::Pin;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde_json::json;
use proxmox_product_config::open_secret_lockfile;
diff --git a/proxmox-auth-api/src/ticket.rs b/proxmox-auth-api/src/ticket.rs
index 498e9385..12f81145 100644
--- a/proxmox-auth-api/src/ticket.rs
+++ b/proxmox-auth-api/src/ticket.rs
@@ -3,9 +3,9 @@
use std::borrow::Cow;
use std::marker::PhantomData;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use openssl::hash::MessageDigest;
-use percent_encoding::{percent_decode_str, percent_encode, AsciiSet};
+use percent_encoding::{AsciiSet, percent_decode_str, percent_encode};
use crate::auth_key::Keyring;
diff --git a/proxmox-auth-api/src/types.rs b/proxmox-auth-api/src/types.rs
index 64c580a5..79989941 100644
--- a/proxmox-auth-api/src/types.rs
+++ b/proxmox-auth-api/src/types.rs
@@ -25,12 +25,12 @@ use std::borrow::Borrow;
use std::fmt;
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use const_format::concatcp;
use serde::{Deserialize, Serialize};
use proxmox_schema::{
- api, const_regex, ApiStringFormat, ApiType, Schema, StringSchema, UpdaterType,
+ ApiStringFormat, ApiType, Schema, StringSchema, UpdaterType, api, const_regex,
};
use proxmox_schema::api_types::SAFE_ID_REGEX_STR;
diff --git a/proxmox-client/src/client.rs b/proxmox-client/src/client.rs
index 9b078a98..a3edb840 100644
--- a/proxmox-client/src/client.rs
+++ b/proxmox-client/src/client.rs
@@ -4,9 +4,9 @@ use std::pin::Pin;
use std::sync::Arc;
use std::sync::Mutex;
+use http::Method;
use http::request::Request;
use http::uri::PathAndQuery;
-use http::Method;
use http::{StatusCode, Uri};
use hyper::body::{Body, HttpBody};
use openssl::hash::MessageDigest;
diff --git a/proxmox-compression/src/zip.rs b/proxmox-compression/src/zip.rs
index 3ccece9b..d074be5a 100644
--- a/proxmox-compression/src/zip.rs
+++ b/proxmox-compression/src/zip.rs
@@ -14,7 +14,7 @@ use std::pin::Pin;
use std::task::{Context, Poll};
use std::time::SystemTime;
-use anyhow::{format_err, Error, Result};
+use anyhow::{Error, Result, format_err};
use endian_trait::Endian;
use futures::ready;
use tokio::io::{AsyncRead, AsyncWrite, AsyncWriteExt, ReadBuf};
diff --git a/proxmox-compression/src/zstd.rs b/proxmox-compression/src/zstd.rs
index 7e303833..471d65ec 100644
--- a/proxmox-compression/src/zstd.rs
+++ b/proxmox-compression/src/zstd.rs
@@ -3,7 +3,7 @@ use std::io;
use std::pin::Pin;
use std::task::{Context, Poll};
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use bytes::Bytes;
use futures::ready;
use futures::stream::Stream;
diff --git a/proxmox-config-digest/src/lib.rs b/proxmox-config-digest/src/lib.rs
index a34a3a90..85827f36 100644
--- a/proxmox-config-digest/src/lib.rs
+++ b/proxmox-config-digest/src/lib.rs
@@ -1,15 +1,15 @@
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
#[cfg(feature = "openssl")]
use openssl::sha;
-use proxmox_schema::api_types::SHA256_HEX_REGEX;
use proxmox_schema::ApiStringFormat;
use proxmox_schema::ApiType;
use proxmox_schema::Schema;
use proxmox_schema::StringSchema;
+use proxmox_schema::api_types::SHA256_HEX_REGEX;
pub const PROXMOX_CONFIG_DIGEST_FORMAT: ApiStringFormat =
ApiStringFormat::Pattern(&SHA256_HEX_REGEX);
diff --git a/proxmox-daemon/src/command_socket.rs b/proxmox-daemon/src/command_socket.rs
index b268bded..49d640bc 100644
--- a/proxmox-daemon/src/command_socket.rs
+++ b/proxmox-daemon/src/command_socket.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use std::collections::HashMap;
use std::future::Future;
diff --git a/proxmox-daemon/src/server.rs b/proxmox-daemon/src/server.rs
index 670e3c3b..de070404 100644
--- a/proxmox-daemon/src/server.rs
+++ b/proxmox-daemon/src/server.rs
@@ -7,11 +7,11 @@ use std::os::unix::ffi::OsStrExt;
use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
use std::panic::UnwindSafe;
use std::path::PathBuf;
-use std::pin::{pin, Pin};
+use std::pin::{Pin, pin};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use futures::future::{self, Either};
-use nix::unistd::{fork, ForkResult};
+use nix::unistd::{ForkResult, fork};
use proxmox_sys::fd::fd_change_cloexec;
use proxmox_sys::fs::CreateOptions;
diff --git a/proxmox-daemon/src/state.rs b/proxmox-daemon/src/state.rs
index f5d23bcf..e1bde586 100644
--- a/proxmox-daemon/src/state.rs
+++ b/proxmox-daemon/src/state.rs
@@ -1,10 +1,10 @@
use std::future::Future;
use std::pin::pin;
-use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::OnceLock;
+use std::sync::atomic::{AtomicBool, Ordering};
-use anyhow::{bail, Error};
-use tokio::signal::unix::{signal, SignalKind};
+use anyhow::{Error, bail};
+use tokio::signal::unix::{SignalKind, signal};
use tokio::sync::watch;
static SHUTDOWN_LISTENERS: OnceLock<watch::Sender<bool>> = OnceLock::new();
diff --git a/proxmox-dns-api/src/api_types.rs b/proxmox-dns-api/src/api_types.rs
index f0ff70f4..20d8bdf9 100644
--- a/proxmox-dns-api/src/api_types.rs
+++ b/proxmox-dns-api/src/api_types.rs
@@ -1,9 +1,9 @@
use serde::{Deserialize, Serialize};
-use proxmox_schema::api;
-use proxmox_schema::api_types::IP_FORMAT;
use proxmox_schema::Schema;
use proxmox_schema::StringSchema;
+use proxmox_schema::api;
+use proxmox_schema::api_types::IP_FORMAT;
use proxmox_config_digest::ConfigDigest;
diff --git a/proxmox-dns-api/src/resolv_conf.rs b/proxmox-dns-api/src/resolv_conf.rs
index 32698913..03a91ee0 100644
--- a/proxmox-dns-api/src/resolv_conf.rs
+++ b/proxmox-dns-api/src/resolv_conf.rs
@@ -5,9 +5,9 @@ use const_format::concatcp;
use proxmox_config_digest::ConfigDigest;
use regex::Regex;
+use proxmox_sys::fs::CreateOptions;
use proxmox_sys::fs::file_get_contents;
use proxmox_sys::fs::replace_file;
-use proxmox_sys::fs::CreateOptions;
use proxmox_schema::api_types::IPRE_STR;
diff --git a/proxmox-http-error/src/lib.rs b/proxmox-http-error/src/lib.rs
index a8ccff7f..ea404845 100644
--- a/proxmox-http-error/src/lib.rs
+++ b/proxmox-http-error/src/lib.rs
@@ -2,7 +2,7 @@
use std::fmt;
-use serde::{ser::SerializeStruct, Serialize, Serializer};
+use serde::{Serialize, Serializer, ser::SerializeStruct};
#[doc(hidden)]
pub use http::StatusCode;
diff --git a/proxmox-http/src/client/connector.rs b/proxmox-http/src/client/connector.rs
index 63b9d10c..b803af76 100644
--- a/proxmox-http/src/client/connector.rs
+++ b/proxmox-http/src/client/connector.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use std::os::unix::io::AsRawFd;
use std::pin::Pin;
use std::sync::Arc;
diff --git a/proxmox-http/src/client/simple.rs b/proxmox-http/src/client/simple.rs
index 062889ac..ae1d4f06 100644
--- a/proxmox-http/src/client/simple.rs
+++ b/proxmox-http/src/client/simple.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use std::collections::HashMap;
#[cfg(all(feature = "client-trait", feature = "proxmox-async"))]
@@ -8,13 +8,13 @@ use futures::*;
#[cfg(all(feature = "client-trait", feature = "proxmox-async"))]
use http::header::HeaderName;
use http::{HeaderValue, Request, Response};
+use hyper::Body;
use hyper::client::Client as HyperClient;
use hyper::client::HttpConnector;
-use hyper::Body;
use openssl::ssl::{SslConnector, SslMethod};
-use crate::client::HttpsConnector;
use crate::HttpOptions;
+use crate::client::HttpsConnector;
/// Asynchronous HTTP client implementation
pub struct Client {
@@ -299,8 +299,8 @@ si aliquod aeternum et infinitum impendere."#;
}
fn encode_deflate(bytes: &[u8]) -> Result<Vec<u8>, std::io::Error> {
- use flate2::write::ZlibEncoder;
use flate2::Compression;
+ use flate2::write::ZlibEncoder;
let mut e = ZlibEncoder::new(Vec::new(), Compression::default());
e.write_all(bytes).unwrap();
diff --git a/proxmox-http/src/proxy_config.rs b/proxmox-http/src/proxy_config.rs
index 0861d8f7..dd8bc63f 100644
--- a/proxmox-http/src/proxy_config.rs
+++ b/proxmox-http/src/proxy_config.rs
@@ -2,7 +2,7 @@
//!
//! This can be used with the async [`Client`](crate::client::Client) or sync [`Client`](crate::client::sync::Client).
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use http::Uri;
diff --git a/proxmox-http/src/rate_limiter.rs b/proxmox-http/src/rate_limiter.rs
index 945c77a6..246d73c0 100644
--- a/proxmox-http/src/rate_limiter.rs
+++ b/proxmox-http/src/rate_limiter.rs
@@ -1,7 +1,7 @@
use std::convert::TryInto;
use std::time::{Duration, Instant};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
/// Rate limiter interface.
pub trait RateLimit {
diff --git a/proxmox-http/src/uri.rs b/proxmox-http/src/uri.rs
index ecea1bca..0cf75cb6 100644
--- a/proxmox-http/src/uri.rs
+++ b/proxmox-http/src/uri.rs
@@ -1,8 +1,8 @@
//! URI Related helpers, such as `build_authority`
+use anyhow::Error;
use anyhow::bail;
use anyhow::format_err;
-use anyhow::Error;
use http::uri::{Authority, InvalidUri};
use serde_json::Value;
diff --git a/proxmox-http/src/websocket/mod.rs b/proxmox-http/src/websocket/mod.rs
index fdbec979..ec807d92 100644
--- a/proxmox-http/src/websocket/mod.rs
+++ b/proxmox-http/src/websocket/mod.rs
@@ -9,10 +9,10 @@ use std::io;
use std::pin::Pin;
use std::task::{Context, Poll};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use futures::select;
use hyper::header::{
- HeaderMap, HeaderValue, CONNECTION, SEC_WEBSOCKET_ACCEPT, SEC_WEBSOCKET_KEY,
+ CONNECTION, HeaderMap, HeaderValue, SEC_WEBSOCKET_ACCEPT, SEC_WEBSOCKET_KEY,
SEC_WEBSOCKET_PROTOCOL, SEC_WEBSOCKET_VERSION, UPGRADE,
};
use hyper::{Body, Response, StatusCode};
diff --git a/proxmox-human-byte/src/lib.rs b/proxmox-human-byte/src/lib.rs
index 9f728fad..e6381d93 100644
--- a/proxmox-human-byte/src/lib.rs
+++ b/proxmox-human-byte/src/lib.rs
@@ -1,6 +1,6 @@
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_schema::{ApiStringFormat, ApiType, Schema, StringSchema, UpdaterType};
diff --git a/proxmox-io/src/lib.rs b/proxmox-io/src/lib.rs
index 1be005ff..74c11f2d 100644
--- a/proxmox-io/src/lib.rs
+++ b/proxmox-io/src/lib.rs
@@ -13,7 +13,7 @@ mod write;
pub use write::WriteExt;
mod sparse_copy;
-pub use sparse_copy::{buffer_is_zero, sparse_copy, SparseCopyResult};
+pub use sparse_copy::{SparseCopyResult, buffer_is_zero, sparse_copy};
#[cfg(feature = "tokio")]
pub use sparse_copy::sparse_copy_async;
diff --git a/proxmox-lang/src/lib.rs b/proxmox-lang/src/lib.rs
index 0abfd507..7e9b2200 100644
--- a/proxmox-lang/src/lib.rs
+++ b/proxmox-lang/src/lib.rs
@@ -102,7 +102,5 @@ macro_rules! offsetof {
#[deprecated = "use c\"literals\" instead"]
#[macro_export]
macro_rules! c_str {
- ($data:expr) => {{
- unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(concat!($data, "\0").as_bytes()) }
- }};
+ ($data:expr) => {{ unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(concat!($data, "\0").as_bytes()) } }};
}
diff --git a/proxmox-ldap/src/lib.rs b/proxmox-ldap/src/lib.rs
index 31f118ad..784767c0 100644
--- a/proxmox-ldap/src/lib.rs
+++ b/proxmox-ldap/src/lib.rs
@@ -8,7 +8,7 @@ use std::{
time::Duration,
};
-use anyhow::{bail, format_err, Context, Error};
+use anyhow::{Context, Error, bail, format_err};
use ldap3::adapters::{Adapter, EntriesOnly, PagedResults};
use ldap3::{Ldap, LdapConnAsync, LdapConnSettings, LdapResult, Scope, SearchEntry};
use native_tls::{Certificate, TlsConnector, TlsConnectorBuilder};
diff --git a/proxmox-ldap/tests/glauth.rs b/proxmox-ldap/tests/glauth.rs
index d497018c..5ec5d7e8 100644
--- a/proxmox-ldap/tests/glauth.rs
+++ b/proxmox-ldap/tests/glauth.rs
@@ -151,13 +151,14 @@ fn test_search() -> Result<(), Error> {
assert!(a.dn.starts_with("cn=test"));
assert!(a.dn.ends_with("ou=testgroup,ou=users,dc=example,dc=com"));
- assert!(a
- .attributes
- .get("mail")
- .unwrap()
- .first()
- .unwrap()
- .ends_with("@example.com"));
+ assert!(
+ a.attributes
+ .get("mail")
+ .unwrap()
+ .first()
+ .unwrap()
+ .ends_with("@example.com")
+ );
assert!(a.attributes.get("sn").unwrap().first().unwrap().eq("User"));
}
diff --git a/proxmox-log/src/file_logger.rs b/proxmox-log/src/file_logger.rs
index 1e67b450..b5d28ace 100644
--- a/proxmox-log/src/file_logger.rs
+++ b/proxmox-log/src/file_logger.rs
@@ -3,7 +3,7 @@ use std::io::Write;
use anyhow::Error;
use nix::fcntl::OFlag;
-use proxmox_sys::fs::{atomic_open_or_create_file, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, atomic_open_or_create_file};
/// Options to control the behavior of a [FileLogger] instance
#[derive(Default)]
diff --git a/proxmox-log/src/lib.rs b/proxmox-log/src/lib.rs
index 8c74e42b..4b754a34 100644
--- a/proxmox-log/src/lib.rs
+++ b/proxmox-log/src/lib.rs
@@ -17,6 +17,7 @@ pub use file_logger::{FileLogOptions, FileLogger};
mod tasklog_layer;
+pub use tracing::Level;
pub use tracing::debug;
pub use tracing::debug_span;
pub use tracing::enabled;
@@ -31,7 +32,6 @@ pub use tracing::trace;
pub use tracing::trace_span;
pub use tracing::warn;
pub use tracing::warn_span;
-pub use tracing::Level;
pub use tracing_subscriber::filter::LevelFilter;
tokio::task_local! {
diff --git a/proxmox-log/src/tasklog_layer.rs b/proxmox-log/src/tasklog_layer.rs
index 48fd7c1e..d2b7ffc5 100644
--- a/proxmox-log/src/tasklog_layer.rs
+++ b/proxmox-log/src/tasklog_layer.rs
@@ -1,12 +1,12 @@
use std::fmt::Write as _;
-use tracing::field::Field;
-use tracing::field::Visit;
use tracing::Event;
use tracing::Level;
use tracing::Subscriber;
-use tracing_subscriber::layer::Context;
+use tracing::field::Field;
+use tracing::field::Visit;
use tracing_subscriber::Layer;
+use tracing_subscriber::layer::Context;
use crate::{FileLogState, LogContext};
diff --git a/proxmox-metrics/src/influxdb/http.rs b/proxmox-metrics/src/influxdb/http.rs
index d773c16f..1a686bf9 100644
--- a/proxmox-metrics/src/influxdb/http.rs
+++ b/proxmox-metrics/src/influxdb/http.rs
@@ -1,12 +1,12 @@
use std::sync::Arc;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use hyper::Body;
use openssl::ssl::{SslConnector, SslMethod, SslVerifyMode};
use tokio::sync::mpsc;
-use proxmox_http::client::Client;
use proxmox_http::HttpOptions;
+use proxmox_http::client::Client;
use crate::influxdb::utils;
use crate::{Metrics, MetricsData};
diff --git a/proxmox-metrics/src/influxdb/utils.rs b/proxmox-metrics/src/influxdb/utils.rs
index 05e304f4..0f9a7288 100644
--- a/proxmox-metrics/src/influxdb/utils.rs
+++ b/proxmox-metrics/src/influxdb/utils.rs
@@ -1,6 +1,6 @@
use std::fmt::Write;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde_json::Value;
use crate::MetricsData;
diff --git a/proxmox-metrics/src/lib.rs b/proxmox-metrics/src/lib.rs
index 84e7f07d..cf7bc814 100644
--- a/proxmox-metrics/src/lib.rs
+++ b/proxmox-metrics/src/lib.rs
@@ -4,7 +4,7 @@ use std::borrow::Cow;
use std::collections::HashMap;
use std::sync::Arc;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::Serialize;
use serde_json::Value;
use tokio::sync::mpsc;
diff --git a/proxmox-network-api/src/api_impl.rs b/proxmox-network-api/src/api_impl.rs
index 18602900..9d956e2c 100644
--- a/proxmox-network-api/src/api_impl.rs
+++ b/proxmox-network-api/src/api_impl.rs
@@ -1,12 +1,12 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_config_digest::ConfigDigest;
-use crate::{parse_vlan_id_from_name, parse_vlan_raw_device_from_name};
use crate::{
DeletableInterfaceProperty, Interface, InterfaceUpdater, LinuxBondMode, NetworkConfigMethod,
NetworkInterfaceType,
};
+use crate::{parse_vlan_id_from_name, parse_vlan_raw_device_from_name};
/// Create network interface configuration.
pub fn create_interface(iface: String, config: InterfaceUpdater) -> Result<(), Error> {
@@ -99,7 +99,9 @@ pub fn create_interface(iface: String, config: InterfaceUpdater) -> Result<(), E
}
if config.bond_xmit_hash_policy.is_some() {
if mode != LinuxBondMode::Ieee802_3ad && mode != LinuxBondMode::BalanceXor {
- bail!("bond_xmit_hash_policy is only valid with LACP(802.3ad) or balance-xor mode");
+ bail!(
+ "bond_xmit_hash_policy is only valid with LACP(802.3ad) or balance-xor mode"
+ );
}
interface.bond_xmit_hash_policy = config.bond_xmit_hash_policy;
}
diff --git a/proxmox-network-api/src/api_types.rs b/proxmox-network-api/src/api_types.rs
index 9f12b029..8dcc2526 100644
--- a/proxmox-network-api/src/api_types.rs
+++ b/proxmox-network-api/src/api_types.rs
@@ -1,19 +1,19 @@
use std::fmt;
use std::sync::LazyLock;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
use regex::Regex;
-use proxmox_schema::api;
-use proxmox_schema::api_types::SAFE_ID_REGEX;
-use proxmox_schema::api_types::{CIDR_V4_SCHEMA, CIDR_V6_SCHEMA};
-use proxmox_schema::api_types::{IP_V4_SCHEMA, IP_V6_SCHEMA};
use proxmox_schema::ApiStringFormat;
use proxmox_schema::ArraySchema;
use proxmox_schema::Schema;
use proxmox_schema::StringSchema;
+use proxmox_schema::api;
+use proxmox_schema::api_types::SAFE_ID_REGEX;
+use proxmox_schema::api_types::{CIDR_V4_SCHEMA, CIDR_V6_SCHEMA};
+use proxmox_schema::api_types::{IP_V4_SCHEMA, IP_V6_SCHEMA};
pub static PHYSICAL_NIC_REGEX: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(?:eth\d+|en[^:.]+|ib\d+)$").unwrap());
diff --git a/proxmox-network-api/src/config/helper.rs b/proxmox-network-api/src/config/helper.rs
index 9cc23eef..aea5665c 100644
--- a/proxmox-network-api/src/config/helper.rs
+++ b/proxmox-network-api/src/config/helper.rs
@@ -4,10 +4,10 @@ use std::path::Path;
use std::process::Command;
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use const_format::concatcp;
use nix::ioctl_read_bad;
-use nix::sys::socket::{socket, AddressFamily, SockFlag, SockType};
+use nix::sys::socket::{AddressFamily, SockFlag, SockType, socket};
use regex::Regex;
use proxmox_schema::api_types::IPV4RE_STR;
diff --git a/proxmox-network-api/src/config/mod.rs b/proxmox-network-api/src/config/mod.rs
index 054f53c8..752a2165 100644
--- a/proxmox-network-api/src/config/mod.rs
+++ b/proxmox-network-api/src/config/mod.rs
@@ -8,9 +8,9 @@ use std::collections::{BTreeMap, HashMap, HashSet};
use std::io::Write;
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use regex::Regex;
-use serde::de::{value, Deserialize, IntoDeserializer};
+use serde::de::{Deserialize, IntoDeserializer, value};
use super::{
BondXmitHashPolicy, Interface, LinuxBondMode, NetworkConfigMethod, NetworkInterfaceType,
@@ -21,7 +21,7 @@ use helper::get_network_interfaces;
use parser::NetworkParser;
use proxmox_config_digest::ConfigDigest;
-use proxmox_product_config::{open_api_lockfile, replace_system_config, ApiLockGuard};
+use proxmox_product_config::{ApiLockGuard, open_api_lockfile, replace_system_config};
static PHYSICAL_NIC_REGEX: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(?:eth\d+|en[^:.]+|ib\d+)$").unwrap());
diff --git a/proxmox-network-api/src/config/parser.rs b/proxmox-network-api/src/config/parser.rs
index d05a67b0..200a88c0 100644
--- a/proxmox-network-api/src/config/parser.rs
+++ b/proxmox-network-api/src/config/parser.rs
@@ -5,9 +5,9 @@ use std::io::BufRead;
use std::iter::{Iterator, Peekable};
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use regex::Regex;
-use serde::de::{value, Deserialize, IntoDeserializer};
+use serde::de::{Deserialize, IntoDeserializer, value};
use super::helper::*;
use super::lexer::*;
diff --git a/proxmox-notify/src/api/gotify.rs b/proxmox-notify/src/api/gotify.rs
index 27b9c317..5155fd2c 100644
--- a/proxmox-notify/src/api/gotify.rs
+++ b/proxmox-notify/src/api/gotify.rs
@@ -1,11 +1,11 @@
use proxmox_http_error::HttpError;
+use crate::Config;
use crate::api::http_err;
use crate::endpoints::gotify::{
- DeleteableGotifyProperty, GotifyConfig, GotifyConfigUpdater, GotifyPrivateConfig,
- GotifyPrivateConfigUpdater, GOTIFY_TYPENAME,
+ DeleteableGotifyProperty, GOTIFY_TYPENAME, GotifyConfig, GotifyConfigUpdater,
+ GotifyPrivateConfig, GotifyPrivateConfigUpdater,
};
-use crate::Config;
/// Get a list of all gotify endpoints.
///
@@ -193,15 +193,17 @@ mod tests {
fn test_update_not_existing_returns_error() -> Result<(), HttpError> {
let mut config = empty_config();
- assert!(update_endpoint(
- &mut config,
- "test",
- Default::default(),
- Default::default(),
- None,
- None
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "test",
+ Default::default(),
+ Default::default(),
+ None,
+ None
+ )
+ .is_err()
+ );
Ok(())
}
@@ -211,15 +213,17 @@ mod tests {
let mut config = empty_config();
add_default_gotify_endpoint(&mut config)?;
- assert!(update_endpoint(
- &mut config,
- "gotify-endpoint",
- Default::default(),
- Default::default(),
- None,
- Some(&[0; 32])
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "gotify-endpoint",
+ Default::default(),
+ Default::default(),
+ None,
+ Some(&[0; 32])
+ )
+ .is_err()
+ );
Ok(())
}
diff --git a/proxmox-notify/src/api/matcher.rs b/proxmox-notify/src/api/matcher.rs
index f5605acb..b2bf15ae 100644
--- a/proxmox-notify/src/api/matcher.rs
+++ b/proxmox-notify/src/api/matcher.rs
@@ -1,10 +1,10 @@
use proxmox_http_error::HttpError;
+use crate::Config;
use crate::api::http_err;
use crate::matcher::{
- DeleteableMatcherProperty, MatcherConfig, MatcherConfigUpdater, MATCHER_TYPENAME,
+ DeleteableMatcherProperty, MATCHER_TYPENAME, MatcherConfig, MatcherConfigUpdater,
};
-use crate::Config;
/// Get a list of all matchers
///
@@ -182,14 +182,16 @@ matcher: matcher2
#[test]
fn test_update_invalid_digest_returns_error() -> Result<(), HttpError> {
let mut config = config_with_two_matchers();
- assert!(update_matcher(
- &mut config,
- "matcher1",
- Default::default(),
- None,
- Some(&[0u8; 32])
- )
- .is_err());
+ assert!(
+ update_matcher(
+ &mut config,
+ "matcher1",
+ Default::default(),
+ None,
+ Some(&[0u8; 32])
+ )
+ .is_err()
+ );
Ok(())
}
diff --git a/proxmox-notify/src/api/sendmail.rs b/proxmox-notify/src/api/sendmail.rs
index e0adb64b..eaafd001 100644
--- a/proxmox-notify/src/api/sendmail.rs
+++ b/proxmox-notify/src/api/sendmail.rs
@@ -1,10 +1,10 @@
use proxmox_http_error::HttpError;
+use crate::Config;
use crate::api::{http_bail, http_err};
use crate::endpoints::sendmail::{
- DeleteableSendmailProperty, SendmailConfig, SendmailConfigUpdater, SENDMAIL_TYPENAME,
+ DeleteableSendmailProperty, SENDMAIL_TYPENAME, SendmailConfig, SendmailConfigUpdater,
};
-use crate::Config;
/// Get a list of all sendmail endpoints.
///
@@ -203,21 +203,23 @@ pub mod tests {
let mut config = empty_config();
add_sendmail_endpoint_for_test(&mut config, "sendmail-endpoint")?;
- assert!(update_endpoint(
- &mut config,
- "sendmail-endpoint",
- SendmailConfigUpdater {
- mailto: Some(vec!["user2@example.com".into(), "user3@example.com".into()]),
- mailto_user: None,
- from_address: Some("root@example.com".into()),
- author: Some("newauthor".into()),
- comment: Some("new comment".into()),
- ..Default::default()
- },
- None,
- Some(&[0; 32]),
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "sendmail-endpoint",
+ SendmailConfigUpdater {
+ mailto: Some(vec!["user2@example.com".into(), "user3@example.com".into()]),
+ mailto_user: None,
+ from_address: Some("root@example.com".into()),
+ author: Some("newauthor".into()),
+ comment: Some("new comment".into()),
+ ..Default::default()
+ },
+ None,
+ Some(&[0; 32]),
+ )
+ .is_err()
+ );
Ok(())
}
diff --git a/proxmox-notify/src/api/smtp.rs b/proxmox-notify/src/api/smtp.rs
index 470701bf..41a94581 100644
--- a/proxmox-notify/src/api/smtp.rs
+++ b/proxmox-notify/src/api/smtp.rs
@@ -1,11 +1,11 @@
use proxmox_http_error::HttpError;
+use crate::Config;
use crate::api::{http_bail, http_err};
use crate::endpoints::smtp::{
- DeleteableSmtpProperty, SmtpConfig, SmtpConfigUpdater, SmtpPrivateConfig,
- SmtpPrivateConfigUpdater, SMTP_TYPENAME,
+ DeleteableSmtpProperty, SMTP_TYPENAME, SmtpConfig, SmtpConfigUpdater, SmtpPrivateConfig,
+ SmtpPrivateConfigUpdater,
};
-use crate::Config;
/// Get a list of all smtp endpoints.
///
@@ -249,15 +249,17 @@ pub mod tests {
fn test_update_not_existing_returns_error() -> Result<(), HttpError> {
let mut config = empty_config();
- assert!(update_endpoint(
- &mut config,
- "test",
- Default::default(),
- Default::default(),
- None,
- None,
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "test",
+ Default::default(),
+ Default::default(),
+ None,
+ None,
+ )
+ .is_err()
+ );
Ok(())
}
@@ -267,15 +269,17 @@ pub mod tests {
let mut config = empty_config();
add_smtp_endpoint_for_test(&mut config, "sendmail-endpoint")?;
- assert!(update_endpoint(
- &mut config,
- "sendmail-endpoint",
- Default::default(),
- Default::default(),
- None,
- Some(&[0; 32]),
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "sendmail-endpoint",
+ Default::default(),
+ Default::default(),
+ None,
+ Some(&[0; 32]),
+ )
+ .is_err()
+ );
Ok(())
}
diff --git a/proxmox-notify/src/api/webhook.rs b/proxmox-notify/src/api/webhook.rs
index 31c5c869..678d6542 100644
--- a/proxmox-notify/src/api/webhook.rs
+++ b/proxmox-notify/src/api/webhook.rs
@@ -7,10 +7,10 @@ use proxmox_schema::property_string::PropertyString;
use crate::api::http_err;
use crate::endpoints::webhook::{
- DeleteableWebhookProperty, KeyAndBase64Val, WebhookConfig, WebhookConfigUpdater,
- WebhookPrivateConfig, WEBHOOK_TYPENAME,
+ DeleteableWebhookProperty, KeyAndBase64Val, WEBHOOK_TYPENAME, WebhookConfig,
+ WebhookConfigUpdater, WebhookPrivateConfig,
};
-use crate::{http_bail, Config};
+use crate::{Config, http_bail};
use super::remove_private_config_entry;
use super::set_private_config_entry;
@@ -303,11 +303,10 @@ mod tests {
name: "webhook-endpoint".into(),
method: HttpMethod::Post,
url: "http://example.com/webhook".into(),
- header: vec![KeyAndBase64Val::new_with_plain_value(
- "Content-Type",
- "application/json",
- )
- .into()],
+ header: vec![
+ KeyAndBase64Val::new_with_plain_value("Content-Type", "application/json")
+ .into(),
+ ],
body: Some(encode("this is the body")),
comment: Some("comment".into()),
disable: Some(false),
@@ -334,14 +333,16 @@ mod tests {
let mut config = empty_config();
add_default_webhook_endpoint(&mut config)?;
- assert!(update_endpoint(
- &mut config,
- "webhook-endpoint",
- Default::default(),
- None,
- Some(&[0; 32])
- )
- .is_err());
+ assert!(
+ update_endpoint(
+ &mut config,
+ "webhook-endpoint",
+ Default::default(),
+ None,
+ Some(&[0; 32])
+ )
+ .is_err()
+ );
Ok(())
}
diff --git a/proxmox-notify/src/config.rs b/proxmox-notify/src/config.rs
index 791e0b5f..7415a0c0 100644
--- a/proxmox-notify/src/config.rs
+++ b/proxmox-notify/src/config.rs
@@ -5,11 +5,11 @@ use tracing::warn;
use proxmox_schema::{ApiType, ObjectSchema};
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
-use crate::filter::{FilterConfig, FILTER_TYPENAME};
-use crate::group::{GroupConfig, GROUP_TYPENAME};
-use crate::matcher::{MatcherConfig, MATCHER_TYPENAME};
-use crate::schema::BACKEND_NAME_SCHEMA;
use crate::Error;
+use crate::filter::{FILTER_TYPENAME, FilterConfig};
+use crate::group::{GROUP_TYPENAME, GroupConfig};
+use crate::matcher::{MATCHER_TYPENAME, MatcherConfig};
+use crate::schema::BACKEND_NAME_SCHEMA;
/// Section config schema for the public config file.
pub fn config_parser() -> &'static SectionConfig {
@@ -28,7 +28,7 @@ fn config_init() -> SectionConfig {
#[cfg(feature = "sendmail")]
{
- use crate::endpoints::sendmail::{SendmailConfig, SENDMAIL_TYPENAME};
+ use crate::endpoints::sendmail::{SENDMAIL_TYPENAME, SendmailConfig};
const SENDMAIL_SCHEMA: &ObjectSchema = SendmailConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -39,7 +39,7 @@ fn config_init() -> SectionConfig {
}
#[cfg(feature = "smtp")]
{
- use crate::endpoints::smtp::{SmtpConfig, SMTP_TYPENAME};
+ use crate::endpoints::smtp::{SMTP_TYPENAME, SmtpConfig};
const SMTP_SCHEMA: &ObjectSchema = SmtpConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -50,7 +50,7 @@ fn config_init() -> SectionConfig {
}
#[cfg(feature = "gotify")]
{
- use crate::endpoints::gotify::{GotifyConfig, GOTIFY_TYPENAME};
+ use crate::endpoints::gotify::{GOTIFY_TYPENAME, GotifyConfig};
const GOTIFY_SCHEMA: &ObjectSchema = GotifyConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -61,7 +61,7 @@ fn config_init() -> SectionConfig {
}
#[cfg(feature = "webhook")]
{
- use crate::endpoints::webhook::{WebhookConfig, WEBHOOK_TYPENAME};
+ use crate::endpoints::webhook::{WEBHOOK_TYPENAME, WebhookConfig};
const WEBHOOK_SCHEMA: &ObjectSchema = WebhookConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -101,7 +101,7 @@ fn private_config_init() -> SectionConfig {
#[cfg(feature = "gotify")]
{
- use crate::endpoints::gotify::{GotifyPrivateConfig, GOTIFY_TYPENAME};
+ use crate::endpoints::gotify::{GOTIFY_TYPENAME, GotifyPrivateConfig};
const GOTIFY_SCHEMA: &ObjectSchema = GotifyPrivateConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -113,7 +113,7 @@ fn private_config_init() -> SectionConfig {
#[cfg(feature = "smtp")]
{
- use crate::endpoints::smtp::{SmtpPrivateConfig, SMTP_TYPENAME};
+ use crate::endpoints::smtp::{SMTP_TYPENAME, SmtpPrivateConfig};
const SMTP_SCHEMA: &ObjectSchema = SmtpPrivateConfig::API_SCHEMA.unwrap_object_schema();
config.register_plugin(SectionConfigPlugin::new(
@@ -125,7 +125,7 @@ fn private_config_init() -> SectionConfig {
#[cfg(feature = "webhook")]
{
- use crate::endpoints::webhook::{WebhookPrivateConfig, WEBHOOK_TYPENAME};
+ use crate::endpoints::webhook::{WEBHOOK_TYPENAME, WebhookPrivateConfig};
const WEBHOOK_SCHEMA: &ObjectSchema =
WebhookPrivateConfig::API_SCHEMA.unwrap_object_schema();
diff --git a/proxmox-notify/src/context/pbs.rs b/proxmox-notify/src/context/pbs.rs
index e8106c57..ab360cc4 100644
--- a/proxmox-notify/src/context/pbs.rs
+++ b/proxmox-notify/src/context/pbs.rs
@@ -6,8 +6,8 @@ use tracing::error;
use proxmox_schema::{ObjectSchema, Schema, StringSchema};
use proxmox_section_config::{SectionConfig, SectionConfigPlugin};
-use crate::context::{common, Context};
use crate::Error;
+use crate::context::{Context, common};
const PBS_USER_CFG_FILENAME: &str = "/etc/proxmox-backup/user.cfg";
const PBS_NODE_CFG_FILENAME: &str = "/etc/proxmox-backup/node.cfg";
diff --git a/proxmox-notify/src/context/pve.rs b/proxmox-notify/src/context/pve.rs
index d49ab27c..6025ef0b 100644
--- a/proxmox-notify/src/context/pve.rs
+++ b/proxmox-notify/src/context/pve.rs
@@ -1,5 +1,5 @@
-use crate::context::{common, Context};
use crate::Error;
+use crate::context::{Context, common};
use std::path::Path;
fn lookup_mail_address(content: &str, user: &str) -> Option<String> {
diff --git a/proxmox-notify/src/context/test.rs b/proxmox-notify/src/context/test.rs
index 5df25d05..d1e5ef9d 100644
--- a/proxmox-notify/src/context/test.rs
+++ b/proxmox-notify/src/context/test.rs
@@ -1,5 +1,5 @@
-use crate::context::Context;
use crate::Error;
+use crate::context::Context;
#[derive(Debug)]
pub struct TestContext;
diff --git a/proxmox-notify/src/endpoints/gotify.rs b/proxmox-notify/src/endpoints/gotify.rs
index 3e977131..94b74ef6 100644
--- a/proxmox-notify/src/endpoints/gotify.rs
+++ b/proxmox-notify/src/endpoints/gotify.rs
@@ -7,12 +7,12 @@ use serde_json::json;
use proxmox_http::client::sync::Client;
use proxmox_http::{HttpClient, HttpOptions, ProxyConfig};
use proxmox_schema::api_types::COMMENT_SCHEMA;
-use proxmox_schema::{api, Updater};
+use proxmox_schema::{Updater, api};
use crate::context::context;
use crate::renderer::TemplateType;
use crate::schema::ENTITY_NAME_SCHEMA;
-use crate::{renderer, Content, Endpoint, Error, Notification, Origin, Severity};
+use crate::{Content, Endpoint, Error, Notification, Origin, Severity, renderer};
const HTTP_TIMEOUT: Duration = Duration::from_secs(10);
diff --git a/proxmox-notify/src/endpoints/sendmail.rs b/proxmox-notify/src/endpoints/sendmail.rs
index 70b0f111..4f26a121 100644
--- a/proxmox-notify/src/endpoints/sendmail.rs
+++ b/proxmox-notify/src/endpoints/sendmail.rs
@@ -2,13 +2,13 @@ use proxmox_sendmail::Mail;
use serde::{Deserialize, Serialize};
use proxmox_schema::api_types::COMMENT_SCHEMA;
-use proxmox_schema::{api, Updater};
+use proxmox_schema::{Updater, api};
use crate::context;
use crate::endpoints::common::mail;
use crate::renderer::TemplateType;
use crate::schema::{EMAIL_SCHEMA, ENTITY_NAME_SCHEMA, USER_SCHEMA};
-use crate::{renderer, Content, Endpoint, Error, Notification, Origin};
+use crate::{Content, Endpoint, Error, Notification, Origin, renderer};
pub(crate) const SENDMAIL_TYPENAME: &str = "sendmail";
diff --git a/proxmox-notify/src/endpoints/smtp.rs b/proxmox-notify/src/endpoints/smtp.rs
index 4521e04a..7b00deb3 100644
--- a/proxmox-notify/src/endpoints/smtp.rs
+++ b/proxmox-notify/src/endpoints/smtp.rs
@@ -3,17 +3,17 @@ use std::time::Duration;
use lettre::message::header::{HeaderName, HeaderValue};
use lettre::message::{Mailbox, MultiPart, SinglePart};
use lettre::transport::smtp::client::{Tls, TlsParameters};
-use lettre::{message::header::ContentType, Message, SmtpTransport, Transport};
+use lettre::{Message, SmtpTransport, Transport, message::header::ContentType};
use serde::{Deserialize, Serialize};
use proxmox_schema::api_types::COMMENT_SCHEMA;
-use proxmox_schema::{api, Updater};
+use proxmox_schema::{Updater, api};
use crate::context::context;
use crate::endpoints::common::mail;
use crate::renderer::TemplateType;
use crate::schema::{EMAIL_SCHEMA, ENTITY_NAME_SCHEMA, USER_SCHEMA};
-use crate::{renderer, Content, Endpoint, Error, Notification, Origin};
+use crate::{Content, Endpoint, Error, Notification, Origin, renderer};
pub(crate) const SMTP_TYPENAME: &str = "smtp";
@@ -252,8 +252,8 @@ impl Endpoint for SmtpEndpoint {
}
#[cfg(feature = "mail-forwarder")]
Content::ForwardedMail { raw, title, .. } => {
- use lettre::message::header::ContentTransferEncoding;
use lettre::message::Body;
+ use lettre::message::header::ContentTransferEncoding;
use tracing::error;
let parsed_message = mail_parser::Message::parse(raw)
diff --git a/proxmox-notify/src/endpoints/webhook.rs b/proxmox-notify/src/endpoints/webhook.rs
index 34dbac54..165d84de 100644
--- a/proxmox-notify/src/endpoints/webhook.rs
+++ b/proxmox-notify/src/endpoints/webhook.rs
@@ -17,17 +17,17 @@ use http::Request;
use percent_encoding::AsciiSet;
use proxmox_schema::property_string::PropertyString;
use serde::{Deserialize, Serialize};
-use serde_json::{json, Map, Value};
+use serde_json::{Map, Value, json};
use proxmox_http::client::sync::Client;
use proxmox_http::{HttpClient, HttpOptions, ProxyConfig};
use proxmox_schema::api_types::{COMMENT_SCHEMA, HTTP_URL_SCHEMA};
-use proxmox_schema::{api, ApiStringFormat, ApiType, Schema, StringSchema, Updater};
+use proxmox_schema::{ApiStringFormat, ApiType, Schema, StringSchema, Updater, api};
use crate::context::context;
use crate::renderer::TemplateType;
use crate::schema::ENTITY_NAME_SCHEMA;
-use crate::{renderer, Content, Endpoint, Error, Notification, Origin};
+use crate::{Content, Endpoint, Error, Notification, Origin, renderer};
/// This will be used as a section type in the public/private configuration file.
pub(crate) const WEBHOOK_TYPENAME: &str = "webhook";
diff --git a/proxmox-notify/src/lib.rs b/proxmox-notify/src/lib.rs
index 12e59474..638d34d9 100644
--- a/proxmox-notify/src/lib.rs
+++ b/proxmox-notify/src/lib.rs
@@ -7,8 +7,8 @@ use std::str::FromStr;
use context::context;
use serde::{Deserialize, Serialize};
-use serde_json::json;
use serde_json::Value;
+use serde_json::json;
use tracing::{error, info};
use proxmox_schema::api;
@@ -16,7 +16,7 @@ use proxmox_section_config::SectionConfigData;
use proxmox_uuid::Uuid;
pub mod matcher;
-use matcher::{MatcherConfig, MATCHER_TYPENAME};
+use matcher::{MATCHER_TYPENAME, MatcherConfig};
pub mod api;
pub mod config;
diff --git a/proxmox-notify/src/matcher.rs b/proxmox-notify/src/matcher.rs
index 083c2dbd..9964e4bf 100644
--- a/proxmox-notify/src/matcher.rs
+++ b/proxmox-notify/src/matcher.rs
@@ -9,8 +9,8 @@ use serde::{Deserialize, Serialize};
use tracing::{error, info};
use proxmox_schema::api_types::{COMMENT_SCHEMA, SAFE_ID_REGEX_STR};
-use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema, Updater};
-use proxmox_time::{parse_daily_duration, DailyDuration};
+use proxmox_schema::{ApiStringFormat, Schema, StringSchema, Updater, api, const_regex};
+use proxmox_time::{DailyDuration, parse_daily_duration};
use crate::schema::ENTITY_NAME_SCHEMA;
use crate::{Error, Notification, Origin, Severity};
diff --git a/proxmox-notify/src/renderer/mod.rs b/proxmox-notify/src/renderer/mod.rs
index e058ea22..8be6f057 100644
--- a/proxmox-notify/src/renderer/mod.rs
+++ b/proxmox-notify/src/renderer/mod.rs
@@ -13,7 +13,7 @@ use tracing::error;
use proxmox_human_byte::HumanByte;
use proxmox_time::TimeSpan;
-use crate::{context, Error};
+use crate::{Error, context};
mod html;
mod plaintext;
diff --git a/proxmox-openid/src/auth_state.rs b/proxmox-openid/src/auth_state.rs
index f2a299a0..a5ac71cd 100644
--- a/proxmox-openid/src/auth_state.rs
+++ b/proxmox-openid/src/auth_state.rs
@@ -1,9 +1,9 @@
use std::path::{Path, PathBuf};
-use anyhow::{bail, Error};
-use serde_json::{json, Value};
+use anyhow::{Error, bail};
+use serde_json::{Value, json};
-use proxmox_sys::fs::{file_get_json, open_file_locked, replace_file, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, file_get_json, open_file_locked, replace_file};
use proxmox_time::epoch_i64;
use super::{PrivateAuthState, PublicAuthState};
diff --git a/proxmox-openid/src/http_client.rs b/proxmox-openid/src/http_client.rs
index 1850d64e..10d649d0 100644
--- a/proxmox-openid/src/http_client.rs
+++ b/proxmox-openid/src/http_client.rs
@@ -1,7 +1,7 @@
use std::env;
use std::sync::Arc;
-use http::header::{HeaderMap, HeaderValue, CONTENT_TYPE};
+use http::header::{CONTENT_TYPE, HeaderMap, HeaderValue};
use http::method::Method;
use http::status::StatusCode;
diff --git a/proxmox-openid/src/lib.rs b/proxmox-openid/src/lib.rs
index fe65fded..4683eed3 100644
--- a/proxmox-openid/src/lib.rs
+++ b/proxmox-openid/src/lib.rs
@@ -2,7 +2,7 @@
use std::path::Path;
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use serde::{Deserialize, Serialize};
use serde_json::Value;
@@ -13,11 +13,6 @@ mod auth_state;
pub use auth_state::*;
use openidconnect::{
- //curl::http_client,
- core::{
- CoreAuthDisplay, CoreAuthPrompt, CoreAuthenticationFlow, CoreClient, CoreGenderClaim,
- CoreIdTokenClaims, CoreIdTokenVerifier, CoreProviderMetadata,
- },
AdditionalClaims,
AuthenticationContextClass,
AuthorizationCode,
@@ -32,6 +27,11 @@ use openidconnect::{
RedirectUrl,
Scope,
UserInfoClaims,
+ //curl::http_client,
+ core::{
+ CoreAuthDisplay, CoreAuthPrompt, CoreAuthenticationFlow, CoreClient, CoreGenderClaim,
+ CoreIdTokenClaims, CoreIdTokenVerifier, CoreProviderMetadata,
+ },
};
/// Stores Additional Claims into a serde_json::Value;
diff --git a/proxmox-rest-server/examples/minimal-rest-server.rs b/proxmox-rest-server/examples/minimal-rest-server.rs
index d6a5f2eb..0bed3f05 100644
--- a/proxmox-rest-server/examples/minimal-rest-server.rs
+++ b/proxmox-rest-server/examples/minimal-rest-server.rs
@@ -3,13 +3,13 @@ use std::future::Future;
use std::pin::Pin;
use std::sync::{LazyLock, Mutex};
-use anyhow::{bail, format_err, Error};
-use http::request::Parts;
+use anyhow::{Error, bail, format_err};
use http::HeaderMap;
+use http::request::Parts;
use hyper::{Body, Method, Response};
use proxmox_router::{
- list_subdirs_api_method, Router, RpcEnvironmentType, SubdirMap, UserInformation,
+ Router, RpcEnvironmentType, SubdirMap, UserInformation, list_subdirs_api_method,
};
use proxmox_schema::api;
diff --git a/proxmox-rest-server/src/api_config.rs b/proxmox-rest-server/src/api_config.rs
index 7dbcad52..0765b517 100644
--- a/proxmox-rest-server/src/api_config.rs
+++ b/proxmox-rest-server/src/api_config.rs
@@ -6,7 +6,7 @@ use std::pin::Pin;
use std::sync::{Arc, Mutex};
use std::task::{Context, Poll};
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use http::{HeaderMap, Method, Uri};
use hyper::http::request::Parts;
use hyper::{Body, Response};
@@ -15,10 +15,10 @@ use tower_service::Service;
use proxmox_daemon::command_socket::CommandSocket;
use proxmox_log::{FileLogOptions, FileLogger};
use proxmox_router::{Router, RpcEnvironmentType, UserInformation};
-use proxmox_sys::fs::{create_path, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, create_path};
-use crate::rest::Handler;
use crate::RestEnvironment;
+use crate::rest::Handler;
/// REST server configuration
pub struct ApiConfig {
@@ -324,7 +324,7 @@ mod templates {
use std::sync::RwLock;
use std::time::SystemTime;
- use anyhow::{bail, format_err, Error};
+ use anyhow::{Error, bail, format_err};
use handlebars::Handlebars;
use serde::Serialize;
diff --git a/proxmox-rest-server/src/compression.rs b/proxmox-rest-server/src/compression.rs
index 189d7041..f8d25e34 100644
--- a/proxmox-rest-server/src/compression.rs
+++ b/proxmox-rest-server/src/compression.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use hyper::header;
/// Possible Compression Methods, order determines preference (later is preferred)
diff --git a/proxmox-rest-server/src/connection.rs b/proxmox-rest-server/src/connection.rs
index 526555ae..1877a3a2 100644
--- a/proxmox-rest-server/src/connection.rs
+++ b/proxmox-rest-server/src/connection.rs
@@ -8,11 +8,11 @@ use std::net::SocketAddr;
use std::os::fd::FromRawFd;
use std::os::unix::io::AsRawFd;
use std::path::PathBuf;
-use std::pin::{pin, Pin};
+use std::pin::{Pin, pin};
use std::sync::{Arc, Mutex};
use std::time::Duration;
-use anyhow::{format_err, Context, Error};
+use anyhow::{Context, Error, format_err};
use futures::FutureExt;
use hyper::server::accept;
use openssl::ec::{EcGroup, EcKey};
@@ -357,7 +357,7 @@ impl AcceptBuilder {
let (socket, peer) = match listener.accept().await {
Ok(connection) => connection,
Err(error) => {
- return Err(format_err!(error)).context("error while accepting tcp stream")
+ return Err(format_err!(error)).context("error while accepting tcp stream");
}
};
@@ -461,7 +461,9 @@ impl AcceptBuilder {
let insecure_stream = Box::pin(state.socket);
if let Err(send_err) = insecure_sender.send(Ok(insecure_stream)).await {
- log::error!("[{peer}] failed to accept connection - connection channel closed: {send_err}");
+ log::error!(
+ "[{peer}] failed to accept connection - connection channel closed: {send_err}"
+ );
}
}
Err(err) => {
diff --git a/proxmox-rest-server/src/environment.rs b/proxmox-rest-server/src/environment.rs
index ca41bb50..81559a4b 100644
--- a/proxmox-rest-server/src/environment.rs
+++ b/proxmox-rest-server/src/environment.rs
@@ -1,7 +1,7 @@
use std::net::SocketAddr;
use std::sync::Arc;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use proxmox_router::{RpcEnvironment, RpcEnvironmentType};
diff --git a/proxmox-rest-server/src/formatter.rs b/proxmox-rest-server/src/formatter.rs
index 32ca9936..7bbec86d 100644
--- a/proxmox-rest-server/src/formatter.rs
+++ b/proxmox-rest-server/src/formatter.rs
@@ -2,7 +2,7 @@
use std::collections::HashMap;
use anyhow::Error;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use hyper::header;
use hyper::{Body, Response, StatusCode};
diff --git a/proxmox-rest-server/src/h2service.rs b/proxmox-rest-server/src/h2service.rs
index db6e3b0a..efe02049 100644
--- a/proxmox-rest-server/src/h2service.rs
+++ b/proxmox-rest-server/src/h2service.rs
@@ -12,7 +12,7 @@ use proxmox_router::http_err;
use proxmox_router::{ApiResponseFuture, HttpError, Router, RpcEnvironment};
use crate::formatter::*;
-use crate::{normalize_path_with_components, WorkerTask};
+use crate::{WorkerTask, normalize_path_with_components};
/// Hyper Service implementation to handle stateful H2 connections.
///
diff --git a/proxmox-rest-server/src/lib.rs b/proxmox-rest-server/src/lib.rs
index 43dafa91..38c0d96f 100644
--- a/proxmox-rest-server/src/lib.rs
+++ b/proxmox-rest-server/src/lib.rs
@@ -19,7 +19,7 @@
use std::fmt;
use std::sync::LazyLock;
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use nix::unistd::Pid;
use proxmox_sys::fs::CreateOptions;
diff --git a/proxmox-rest-server/src/rest.rs b/proxmox-rest-server/src/rest.rs
index c11a9b0c..848fbc3a 100644
--- a/proxmox-rest-server/src/rest.rs
+++ b/proxmox-rest-server/src/rest.rs
@@ -7,7 +7,7 @@ use std::pin::Pin;
use std::sync::{Arc, LazyLock, Mutex};
use std::task::{Context, Poll};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use futures::future::FutureExt;
use futures::stream::TryStreamExt;
use hyper::body::HttpBody;
@@ -22,8 +22,8 @@ use tower_service::Service;
use url::form_urlencoded;
use proxmox_router::{
- check_api_permission, ApiHandler, ApiMethod, HttpError, Permission, RpcEnvironment,
- RpcEnvironmentType, UserInformation,
+ ApiHandler, ApiMethod, HttpError, Permission, RpcEnvironment, RpcEnvironmentType,
+ UserInformation, check_api_permission,
};
use proxmox_router::{http_bail, http_err};
use proxmox_schema::{ObjectSchemaType, ParameterSchema};
@@ -33,7 +33,7 @@ use proxmox_compression::DeflateEncoder;
use proxmox_log::FileLogger;
use crate::{
- formatter::*, normalize_path, ApiConfig, AuthError, CompressionMethod, RestEnvironment,
+ ApiConfig, AuthError, CompressionMethod, RestEnvironment, formatter::*, normalize_path,
};
unsafe extern "C" {
diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs
index 24e2676e..6f0fcab2 100644
--- a/proxmox-rest-server/src/worker_task.rs
+++ b/proxmox-rest-server/src/worker_task.rs
@@ -7,11 +7,11 @@ use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
use std::sync::{Arc, LazyLock, Mutex, OnceLock};
use std::time::{Duration, SystemTime};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use futures::*;
use nix::fcntl::OFlag;
use serde::{Deserialize, Serialize};
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use tokio::signal::unix::SignalKind;
use tokio::sync::{oneshot, watch};
use tracing::{info, warn};
@@ -20,7 +20,7 @@ use proxmox_daemon::command_socket::CommandSocket;
use proxmox_lang::try_block;
use proxmox_log::{FileLogOptions, FileLogger, LogContext};
use proxmox_schema::upid::UPID;
-use proxmox_sys::fs::{atomic_open_or_create_file, create_path, replace_file, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, atomic_open_or_create_file, create_path, replace_file};
use proxmox_sys::linux::procfs;
use proxmox_sys::logrotate::{LogRotate, LogRotateFiles};
use proxmox_worker_task::WorkerTaskContext;
diff --git a/proxmox-router/src/cli/command.rs b/proxmox-router/src/cli/command.rs
index aa99d528..797687db 100644
--- a/proxmox-router/src/cli/command.rs
+++ b/proxmox-router/src/cli/command.rs
@@ -1,7 +1,7 @@
use std::cell::RefCell;
use std::sync::Arc;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
use serde_json::Value;
@@ -11,8 +11,8 @@ use proxmox_schema::*;
use super::environment::CliEnvironment;
use super::getopts;
use super::{
- generate_nested_usage, generate_usage_str_do, print_help, print_nested_usage_error,
- print_simple_usage_error_do, CliCommand, CliCommandMap, CommandLineInterface, GlobalOptions,
+ CliCommand, CliCommandMap, CommandLineInterface, GlobalOptions, generate_nested_usage,
+ generate_usage_str_do, print_help, print_nested_usage_error, print_simple_usage_error_do,
};
use crate::{ApiFuture, ApiHandler, ApiMethod, RpcEnvironment};
diff --git a/proxmox-router/src/cli/completion.rs b/proxmox-router/src/cli/completion.rs
index 5a899eec..340be153 100644
--- a/proxmox-router/src/cli/completion.rs
+++ b/proxmox-router/src/cli/completion.rs
@@ -4,7 +4,7 @@ use proxmox_schema::*;
use super::help_command_def;
use super::{
- shellword_split_unclosed, CliCommand, CliCommandMap, CommandLineInterface, CompletionFunction,
+ CliCommand, CliCommandMap, CommandLineInterface, CompletionFunction, shellword_split_unclosed,
};
fn record_done_argument(
diff --git a/proxmox-router/src/cli/completion_helpers.rs b/proxmox-router/src/cli/completion_helpers.rs
index 0e8d178f..3c53c8e3 100644
--- a/proxmox-router/src/cli/completion_helpers.rs
+++ b/proxmox-router/src/cli/completion_helpers.rs
@@ -3,7 +3,7 @@ use std::path::PathBuf;
use nix::dir::Dir;
use nix::fcntl::{AtFlags, OFlag};
-use nix::sys::stat::{fstatat, Mode};
+use nix::sys::stat::{Mode, fstatat};
pub fn complete_file_name(arg: &str, _param: &HashMap<String, String>) -> Vec<String> {
let mut result = vec![];
diff --git a/proxmox-router/src/cli/format.rs b/proxmox-router/src/cli/format.rs
index 95448aa9..adeaf571 100644
--- a/proxmox-router/src/cli/format.rs
+++ b/proxmox-router/src/cli/format.rs
@@ -2,17 +2,17 @@
use std::collections::{HashMap, HashSet};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::Serialize;
use serde_json::Value;
use proxmox_schema::format::{
- get_property_description, get_schema_type_text, DocumentationFormat, ParameterDisplayStyle,
+ DocumentationFormat, ParameterDisplayStyle, get_property_description, get_schema_type_text,
};
use proxmox_schema::*;
-use super::{value_to_text, TableFormatOptions};
use super::{CliCommand, CliCommandMap, CommandLineInterface, GlobalOptions};
+use super::{TableFormatOptions, value_to_text};
/// Helper function to format and print result.
///
diff --git a/proxmox-router/src/cli/mod.rs b/proxmox-router/src/cli/mod.rs
index 2393da31..7060bcba 100644
--- a/proxmox-router/src/cli/mod.rs
+++ b/proxmox-router/src/cli/mod.rs
@@ -17,7 +17,7 @@ use std::collections::HashMap;
use std::io::{self, Write};
use std::sync::Arc;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::Deserialize;
use serde_json::Value;
diff --git a/proxmox-router/src/cli/shellword.rs b/proxmox-router/src/cli/shellword.rs
index dd7584f0..68493f66 100644
--- a/proxmox-router/src/cli/shellword.rs
+++ b/proxmox-router/src/cli/shellword.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
/// Shell quote type
pub use rustyline::completion::Quote;
diff --git a/proxmox-router/src/cli/text_table.rs b/proxmox-router/src/cli/text_table.rs
index 34173b4d..40b76d9f 100644
--- a/proxmox-router/src/cli/text_table.rs
+++ b/proxmox-router/src/cli/text_table.rs
@@ -1,6 +1,6 @@
use std::io::{IsTerminal, Write};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde_json::Value;
use unicode_width::UnicodeWidthStr;
diff --git a/proxmox-router/src/error.rs b/proxmox-router/src/error.rs
index 15c5417f..69955507 100644
--- a/proxmox-router/src/error.rs
+++ b/proxmox-router/src/error.rs
@@ -1,4 +1,4 @@
-pub use proxmox_http_error::{http_bail, http_err, HttpError};
+pub use proxmox_http_error::{HttpError, http_bail, http_err};
#[doc(hidden)]
pub use http::StatusCode;
diff --git a/proxmox-router/src/format.rs b/proxmox-router/src/format.rs
index 67568af0..4eabb9e3 100644
--- a/proxmox-router/src/format.rs
+++ b/proxmox-router/src/format.rs
@@ -4,8 +4,8 @@ use std::io::Write;
use anyhow::Error;
-use proxmox_schema::format::*;
use proxmox_schema::ObjectSchemaType;
+use proxmox_schema::format::*;
#[cfg(feature = "server")]
use crate::ApiHandler;
diff --git a/proxmox-router/src/permission.rs b/proxmox-router/src/permission.rs
index f6388d64..102f6d94 100644
--- a/proxmox-router/src/permission.rs
+++ b/proxmox-router/src/permission.rs
@@ -200,7 +200,7 @@ fn check_api_permission_tail(
#[cfg(test)]
mod test {
- use serde_json::{json, Value};
+ use serde_json::{Value, json};
use crate::permission::*;
diff --git a/proxmox-router/src/router.rs b/proxmox-router/src/router.rs
index 33b598da..cc38d9d5 100644
--- a/proxmox-router/src/router.rs
+++ b/proxmox-router/src/router.rs
@@ -42,10 +42,12 @@ use crate::SerializableReturn;
/// &ObjectSchema::new("Hello World Example", &[])
/// );
/// ```
-pub type ApiHandlerFn = &'static (dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<Value, Error>
- + Send
- + Sync
- + 'static);
+pub type ApiHandlerFn = &'static (
+ dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<Value, Error>
+ + Send
+ + Sync
+ + 'static
+ );
/// A synchronous API handler gets a json Value as input and returns a serializable return value as output.
///
@@ -69,14 +71,16 @@ pub type ApiHandlerFn = &'static (dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironm
/// &ObjectSchema::new("Hello World Example", &[])
/// );
/// ```
-pub type SerializingApiHandlerFn = &'static (dyn Fn(
+pub type SerializingApiHandlerFn = &'static (
+ dyn Fn(
Value,
&ApiMethod,
&mut dyn RpcEnvironment,
) -> Result<Box<dyn SerializableReturn + Send>, Error>
- + Send
- + Sync
- + 'static);
+ + Send
+ + Sync
+ + 'static
+ );
/// A record for a streaming API call. This contains a `Result<Value, Error>` and allows formatting
/// as a `json-seq` formatted string.
@@ -181,10 +185,12 @@ where
/// &ObjectSchema::new("Hello World Example", &[])
/// );
/// ```
-pub type StreamApiHandlerFn = &'static (dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<SyncStream, Error>
- + Send
- + Sync
- + 'static);
+pub type StreamApiHandlerFn = &'static (
+ dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironment) -> Result<SyncStream, Error>
+ + Send
+ + Sync
+ + 'static
+ );
pub struct SyncStream {
inner: Box<dyn Iterator<Item = Record> + Send>,
@@ -244,9 +250,11 @@ where
/// &ObjectSchema::new("Hello World Example (async)", &[])
/// );
/// ```
-pub type ApiAsyncHandlerFn = &'static (dyn for<'a> Fn(Value, &'static ApiMethod, &'a mut dyn RpcEnvironment) -> ApiFuture<'a>
- + Send
- + Sync);
+pub type ApiAsyncHandlerFn = &'static (
+ dyn for<'a> Fn(Value, &'static ApiMethod, &'a mut dyn RpcEnvironment) -> ApiFuture<'a>
+ + Send
+ + Sync
+ );
pub type ApiFuture<'a> = Pin<Box<dyn Future<Output = Result<Value, anyhow::Error>> + Send + 'a>>;
@@ -276,13 +284,15 @@ pub type ApiFuture<'a> = Pin<Box<dyn Future<Output = Result<Value, anyhow::Error
/// &ObjectSchema::new("Hello World Example (async)", &[])
/// );
/// ```
-pub type SerializingApiAsyncHandlerFn = &'static (dyn for<'a> Fn(
+pub type SerializingApiAsyncHandlerFn = &'static (
+ dyn for<'a> Fn(
Value,
&'static ApiMethod,
&'a mut dyn RpcEnvironment,
) -> SerializingApiFuture<'a>
- + Send
- + Sync);
+ + Send
+ + Sync
+ );
pub type SerializingApiFuture<'a> = Pin<
Box<dyn Future<Output = Result<Box<dyn SerializableReturn + Send>, anyhow::Error>> + Send + 'a>,
@@ -319,13 +329,15 @@ pub type SerializingApiFuture<'a> = Pin<
/// &ObjectSchema::new("Hello World Example (async)", &[])
/// );
/// ```
-pub type StreamApiAsyncHandlerFn = &'static (dyn for<'a> Fn(
+pub type StreamApiAsyncHandlerFn = &'static (
+ dyn for<'a> Fn(
Value,
&'static ApiMethod,
&'a mut dyn RpcEnvironment,
) -> StreamApiFuture<'a>
- + Send
- + Sync);
+ + Send
+ + Sync
+ );
pub type StreamApiFuture<'a> =
Pin<Box<dyn Future<Output = Result<Stream, anyhow::Error>> + Send + 'a>>;
@@ -419,16 +431,18 @@ impl IntoRecord for Result<Record, Error> {
/// );
/// ```
#[cfg(feature = "server")]
-pub type ApiAsyncHttpHandlerFn = &'static (dyn Fn(
+pub type ApiAsyncHttpHandlerFn = &'static (
+ dyn Fn(
Parts,
Body,
Value,
&'static ApiMethod,
Box<dyn RpcEnvironment>,
) -> ApiResponseFuture
- + Send
- + Sync
- + 'static);
+ + Send
+ + Sync
+ + 'static
+ );
/// The output of an asynchronous API handler is a future yielding a `Response`.
#[cfg(feature = "server")]
diff --git a/proxmox-router/src/stream/parsing.rs b/proxmox-router/src/stream/parsing.rs
index 782c18a6..236edb2a 100644
--- a/proxmox-router/src/stream/parsing.rs
+++ b/proxmox-router/src/stream/parsing.rs
@@ -1,9 +1,9 @@
use std::future::Future;
use std::io;
use std::pin::Pin;
-use std::task::{ready, Poll};
+use std::task::{Poll, ready};
-use anyhow::{format_err, Context as _, Error};
+use anyhow::{Context as _, Error, format_err};
use futures::io::{AsyncBufRead, AsyncBufReadExt, AsyncRead, BufReader};
use hyper::body::{Body, Bytes};
use serde::Deserialize;
diff --git a/proxmox-rrd/examples/prrd.rs b/proxmox-rrd/examples/prrd.rs
index c2a3789b..859fe981 100644
--- a/proxmox-rrd/examples/prrd.rs
+++ b/proxmox-rrd/examples/prrd.rs
@@ -2,15 +2,15 @@
use std::path::PathBuf;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
use serde_json::json;
-use proxmox_router::cli::{
- complete_file_name, run_cli_command, CliCommand, CliCommandMap, CliEnvironment,
-};
use proxmox_router::RpcEnvironment;
-use proxmox_schema::{api, ApiStringFormat, ApiType, IntegerSchema, Schema, StringSchema};
+use proxmox_router::cli::{
+ CliCommand, CliCommandMap, CliEnvironment, complete_file_name, run_cli_command,
+};
+use proxmox_schema::{ApiStringFormat, ApiType, IntegerSchema, Schema, StringSchema, api};
use proxmox_sys::fs::CreateOptions;
diff --git a/proxmox-rrd/src/cache.rs b/proxmox-rrd/src/cache.rs
index 9dd85a16..e1c574c8 100644
--- a/proxmox-rrd/src/cache.rs
+++ b/proxmox-rrd/src/cache.rs
@@ -7,13 +7,13 @@ use std::sync::{Arc, RwLock};
use std::thread::spawn;
use std::time::SystemTime;
-use anyhow::{bail, format_err, Error};
-use crossbeam_channel::{bounded, TryRecvError};
+use anyhow::{Error, bail, format_err};
+use crossbeam_channel::{TryRecvError, bounded};
-use proxmox_sys::fs::{create_path, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, create_path};
-use crate::rrd::{AggregationFn, DataSourceType, Database};
use crate::Entry;
+use crate::rrd::{AggregationFn, DataSourceType, Database};
mod journal;
use journal::*;
diff --git a/proxmox-rrd/src/cache/journal.rs b/proxmox-rrd/src/cache/journal.rs
index c196b342..67796a46 100644
--- a/proxmox-rrd/src/cache/journal.rs
+++ b/proxmox-rrd/src/cache/journal.rs
@@ -6,7 +6,7 @@ use std::path::PathBuf;
use std::str::FromStr;
use std::sync::Arc;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use crossbeam_channel::Receiver;
use nix::fcntl::OFlag;
diff --git a/proxmox-rrd/src/cache/rrd_map.rs b/proxmox-rrd/src/cache/rrd_map.rs
index 0ef61cfa..9fa0d44e 100644
--- a/proxmox-rrd/src/cache/rrd_map.rs
+++ b/proxmox-rrd/src/cache/rrd_map.rs
@@ -2,7 +2,7 @@ use std::collections::HashMap;
use std::path::Path;
use std::sync::Arc;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_sys::fs::create_path;
diff --git a/proxmox-rrd/src/rrd.rs b/proxmox-rrd/src/rrd.rs
index 440abe06..c6f8b240 100644
--- a/proxmox-rrd/src/rrd.rs
+++ b/proxmox-rrd/src/rrd.rs
@@ -15,11 +15,11 @@ use std::io::{Read, Write};
use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd};
use std::path::Path;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
use proxmox_schema::api;
-use proxmox_sys::fs::{make_tmp_file, CreateOptions};
+use proxmox_sys::fs::{CreateOptions, make_tmp_file};
/// Proxmox RRD v2 file magic number
// openssl::sha::sha256(b"Proxmox Round Robin Database file v2.0")[0..8];
diff --git a/proxmox-rrd/tests/file_format_test.rs b/proxmox-rrd/tests/file_format_test.rs
index c505f829..1c2ded85 100644
--- a/proxmox-rrd/tests/file_format_test.rs
+++ b/proxmox-rrd/tests/file_format_test.rs
@@ -1,7 +1,7 @@
use std::path::Path;
use std::process::Command;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_rrd::rrd::Database;
use proxmox_sys::fs::CreateOptions;
diff --git a/proxmox-schema/src/de/mod.rs b/proxmox-schema/src/de/mod.rs
index eca835e3..a2e84891 100644
--- a/proxmox-schema/src/de/mod.rs
+++ b/proxmox-schema/src/de/mod.rs
@@ -17,9 +17,9 @@ pub mod verify;
pub use extract::ExtractValueDeserializer;
-use cow3::{str_slice_to_range, Cow3};
+use cow3::{Cow3, str_slice_to_range};
-pub use no_schema::{split_list, SplitList};
+pub use no_schema::{SplitList, split_list};
// Used to disable calling `check_constraints` on a `StringSchema` if it is being deserialized
// for a `PropertyString`, which performs its own checking.
@@ -645,7 +645,7 @@ impl<'de> de::MapAccess<'de> for MapAccess<'de, '_> {
None => {
return Err(Error::msg(
"value without key, but schema does not define a default key",
- ))
+ ));
}
},
};
diff --git a/proxmox-schema/src/de/no_schema.rs b/proxmox-schema/src/de/no_schema.rs
index 747ef44a..f5bf6c2e 100644
--- a/proxmox-schema/src/de/no_schema.rs
+++ b/proxmox-schema/src/de/no_schema.rs
@@ -4,8 +4,8 @@ use std::borrow::Cow;
use serde::de;
-use super::cow3::Cow3;
use super::Error;
+use super::cow3::Cow3;
/// This can only deserialize strings and lists of strings and has no schema.
pub struct NoSchemaDeserializer<'de, 'i> {
diff --git a/proxmox-schema/src/format.rs b/proxmox-schema/src/format.rs
index c1e33a68..6a8ebdd5 100644
--- a/proxmox-schema/src/format.rs
+++ b/proxmox-schema/src/format.rs
@@ -1,6 +1,6 @@
//! Module to generate and format API Documentation
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use crate::*;
diff --git a/proxmox-schema/src/property_string.rs b/proxmox-schema/src/property_string.rs
index 01b5727a..85660172 100644
--- a/proxmox-schema/src/property_string.rs
+++ b/proxmox-schema/src/property_string.rs
@@ -196,14 +196,18 @@ fn iterate_over_property_string() {
);
assert!(iter.next().is_none());
- assert!(PropertyIterator::new(r#"key="open \\ value"#)
- .next()
- .unwrap()
- .is_err());
- assert!(PropertyIterator::new(r#"key="open \\ value\""#)
- .next()
- .unwrap()
- .is_err());
+ assert!(
+ PropertyIterator::new(r#"key="open \\ value"#)
+ .next()
+ .unwrap()
+ .is_err()
+ );
+ assert!(
+ PropertyIterator::new(r#"key="open \\ value\""#)
+ .next()
+ .unwrap()
+ .is_err()
+ );
}
/// A wrapper for a de/serializable type which is stored as a property string.
@@ -267,7 +271,7 @@ where
where
D: serde::Deserializer<'de>,
{
- use crate::de::{set_in_property_string, InPropertyStringGuard};
+ use crate::de::{InPropertyStringGuard, set_in_property_string};
use std::marker::PhantomData;
diff --git a/proxmox-schema/src/schema.rs b/proxmox-schema/src/schema.rs
index df87e070..393ceca2 100644
--- a/proxmox-schema/src/schema.rs
+++ b/proxmox-schema/src/schema.rs
@@ -7,8 +7,8 @@
use std::collections::HashSet;
use std::fmt;
-use anyhow::{bail, format_err, Error};
-use serde_json::{json, Value};
+use anyhow::{Error, bail, format_err};
+use serde_json::{Value, json};
use crate::ConstRegexPattern;
diff --git a/proxmox-schema/src/upid.rs b/proxmox-schema/src/upid.rs
index 9bbb66a1..bbd4b0b3 100644
--- a/proxmox-schema/src/upid.rs
+++ b/proxmox-schema/src/upid.rs
@@ -1,6 +1,6 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
-use crate::{const_regex, ApiStringFormat, ApiType, Schema, StringSchema};
+use crate::{ApiStringFormat, ApiType, Schema, StringSchema, const_regex};
/// Unique Process/Task Identifier
///
@@ -212,7 +212,7 @@ mod upid_impl {
use std::os::unix::ffi::OsStrExt;
use std::sync::atomic::{AtomicUsize, Ordering};
- use anyhow::{bail, format_err, Error};
+ use anyhow::{Error, bail, format_err};
use super::UPID;
diff --git a/proxmox-schema/tests/schema_verification.rs b/proxmox-schema/tests/schema_verification.rs
index 2571a552..d446fa57 100644
--- a/proxmox-schema/tests/schema_verification.rs
+++ b/proxmox-schema/tests/schema_verification.rs
@@ -1,5 +1,5 @@
-use anyhow::{bail, Error};
-use serde_json::{json, Value};
+use anyhow::{Error, bail};
+use serde_json::{Value, json};
use proxmox_schema::*;
diff --git a/proxmox-section-config/src/lib.rs b/proxmox-section-config/src/lib.rs
index 1fc74e91..fb844ae3 100644
--- a/proxmox-section-config/src/lib.rs
+++ b/proxmox-section-config/src/lib.rs
@@ -24,13 +24,13 @@ use std::collections::HashMap;
use std::collections::HashSet;
use std::path::Path;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
-use serde_json::{json, Value};
+use serde_json::{Value, json};
use proxmox_lang::try_block;
-use proxmox_schema::format::{dump_properties, wrap_text, ParameterDisplayStyle};
+use proxmox_schema::format::{ParameterDisplayStyle, dump_properties, wrap_text};
use proxmox_schema::*;
pub mod typed;
diff --git a/proxmox-section-config/src/typed.rs b/proxmox-section-config/src/typed.rs
index 31e8e4b2..a1cc5302 100644
--- a/proxmox-section-config/src/typed.rs
+++ b/proxmox-section-config/src/typed.rs
@@ -3,8 +3,8 @@
use std::collections::HashMap;
use anyhow::Error;
-use serde::{de::DeserializeOwned, Serialize};
-use serde_json::{json, Value};
+use serde::{Serialize, de::DeserializeOwned};
+use serde_json::{Value, json};
use crate::SectionConfig;
use crate::SectionConfigData as RawSectionConfigData;
diff --git a/proxmox-sendmail/src/lib.rs b/proxmox-sendmail/src/lib.rs
index 050c3322..1f99c701 100644
--- a/proxmox-sendmail/src/lib.rs
+++ b/proxmox-sendmail/src/lib.rs
@@ -6,8 +6,8 @@
use std::io::Write;
use std::process::{Command, Stdio};
-use anyhow::{bail, Context, Error};
-use percent_encoding::{utf8_percent_encode, AsciiSet, CONTROLS};
+use anyhow::{Context, Error, bail};
+use percent_encoding::{AsciiSet, CONTROLS, utf8_percent_encode};
// Characters in this set will be encoded, so reproduce the inverse of the set described by RFC5987
// Section 3.2.1 `attr-char`, as that describes all characters that **don't** need encoding:
diff --git a/proxmox-serde/src/json.rs b/proxmox-serde/src/json.rs
index 63574d33..281114b9 100644
--- a/proxmox-serde/src/json.rs
+++ b/proxmox-serde/src/json.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde_json::Value;
diff --git a/proxmox-shared-cache/src/lib.rs b/proxmox-shared-cache/src/lib.rs
index d0b2148a..893808f5 100644
--- a/proxmox-shared-cache/src/lib.rs
+++ b/proxmox-shared-cache/src/lib.rs
@@ -4,8 +4,8 @@ use std::path::PathBuf;
use std::time::Duration;
use anyhow::Error;
-use serde::de::DeserializeOwned;
use serde::Serialize;
+use serde::de::DeserializeOwned;
use proxmox_sys::fs::CreateOptions;
diff --git a/proxmox-shared-memory/src/lib.rs b/proxmox-shared-memory/src/lib.rs
index 4a986b09..c5f60ddc 100644
--- a/proxmox-shared-memory/src/lib.rs
+++ b/proxmox-shared-memory/src/lib.rs
@@ -8,7 +8,7 @@ use std::os::unix::io::AsRawFd;
use std::os::unix::io::FromRawFd;
use std::path::Path;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use nix::errno::Errno;
use nix::fcntl::OFlag;
use nix::sys::mman::{MapFlags, ProtFlags};
diff --git a/proxmox-shared-memory/src/shared_mutex.rs b/proxmox-shared-memory/src/shared_mutex.rs
index 49adf5e5..90f1aa20 100644
--- a/proxmox-shared-memory/src/shared_mutex.rs
+++ b/proxmox-shared-memory/src/shared_mutex.rs
@@ -3,10 +3,10 @@ use std::marker::PhantomData;
use std::mem::MaybeUninit;
use std::ops::{Deref, DerefMut};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
-use crate::raw_shared_mutex::RawSharedMutex;
use crate::Init;
+use crate::raw_shared_mutex::RawSharedMutex;
#[derive(Debug)]
#[repr(C)]
diff --git a/proxmox-shared-memory/tests/raw_shared_mutex.rs b/proxmox-shared-memory/tests/raw_shared_mutex.rs
index 7608377e..ac54a600 100644
--- a/proxmox-shared-memory/tests/raw_shared_mutex.rs
+++ b/proxmox-shared-memory/tests/raw_shared_mutex.rs
@@ -5,7 +5,7 @@ use anyhow::Error;
use nix::fcntl::OFlag;
use nix::sys::stat::Mode;
use nix::unistd::mkdir;
-use proxmox_shared_memory::{check_subtype, initialize_subtype, Init, SharedMemory, SharedMutex};
+use proxmox_shared_memory::{Init, SharedMemory, SharedMutex, check_subtype, initialize_subtype};
use proxmox_sys::fs::CreateOptions;
use std::sync::atomic::AtomicU64;
diff --git a/proxmox-simple-config/src/lib.rs b/proxmox-simple-config/src/lib.rs
index 710fb53a..df16d077 100644
--- a/proxmox-simple-config/src/lib.rs
+++ b/proxmox-simple-config/src/lib.rs
@@ -4,7 +4,7 @@
use std::io::Write;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
use serde_json::Value;
diff --git a/proxmox-sortable-macro/src/lib.rs b/proxmox-sortable-macro/src/lib.rs
index 1395c77c..026fadf0 100644
--- a/proxmox-sortable-macro/src/lib.rs
+++ b/proxmox-sortable-macro/src/lib.rs
@@ -9,10 +9,10 @@ use std::mem;
use proc_macro::TokenStream as TokenStream_1;
use proc_macro2::TokenStream;
use quote::quote;
+use syn::Error;
use syn::punctuated::Punctuated;
use syn::spanned::Spanned;
use syn::visit_mut::VisitMut;
-use syn::Error;
macro_rules! format_err {
($span:expr => $($msg:tt)*) => { Error::new_spanned($span, format!($($msg)*)) };
diff --git a/proxmox-subscription/src/check.rs b/proxmox-subscription/src/check.rs
index 8522bcd3..a098123c 100644
--- a/proxmox-subscription/src/check.rs
+++ b/proxmox-subscription/src/check.rs
@@ -1,15 +1,15 @@
use std::sync::LazyLock;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use regex::Regex;
use serde_json::json;
-use proxmox_http::{uri::json_object_to_query, HttpClient};
+use proxmox_http::{HttpClient, uri::json_object_to_query};
use crate::{
- subscription_info::{md5sum, SHARED_KEY_DATA},
SubscriptionInfo, SubscriptionStatus,
+ subscription_info::{SHARED_KEY_DATA, md5sum},
};
static ATTR_RE: LazyLock<Regex> =
diff --git a/proxmox-subscription/src/files.rs b/proxmox-subscription/src/files.rs
index 37008f4a..28aaa23b 100644
--- a/proxmox-subscription/src/files.rs
+++ b/proxmox-subscription/src/files.rs
@@ -1,11 +1,11 @@
use std::path::Path;
-use anyhow::{format_err, Error};
-use proxmox_sys::fs::{replace_file, CreateOptions};
+use anyhow::{Error, format_err};
+use proxmox_sys::fs::{CreateOptions, replace_file};
use crate::{
- subscription_info::{md5sum, SHARED_KEY_DATA},
SubscriptionInfo, SubscriptionStatus,
+ subscription_info::{SHARED_KEY_DATA, md5sum},
};
pub const DEFAULT_SIGNING_KEY: &str = "/usr/share/keyrings/proxmox-offline-signing-key.pub";
@@ -67,7 +67,7 @@ fn parse_subscription_file(raw: &str) -> Result<Option<SubscriptionInfo>, Error>
status: SubscriptionStatus::Invalid,
message: Some("subscription key mismatch".to_string()),
..info
- }))
+ }));
}
_ => {}
}
diff --git a/proxmox-subscription/src/lib.rs b/proxmox-subscription/src/lib.rs
index 2ed96903..0e88d77c 100644
--- a/proxmox-subscription/src/lib.rs
+++ b/proxmox-subscription/src/lib.rs
@@ -3,7 +3,7 @@
mod subscription_info;
#[cfg(feature = "impl")]
pub use subscription_info::{
- get_hardware_address, ProductType, SubscriptionInfo, SubscriptionStatus,
+ ProductType, SubscriptionInfo, SubscriptionStatus, get_hardware_address,
};
#[cfg(not(feature = "impl"))]
diff --git a/proxmox-subscription/src/sign.rs b/proxmox-subscription/src/sign.rs
index 50ee352b..40118d2f 100644
--- a/proxmox-subscription/src/sign.rs
+++ b/proxmox-subscription/src/sign.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use openssl::{hash::MessageDigest, pkey::Public};
use serde::{Deserialize, Serialize};
diff --git a/proxmox-subscription/src/subscription_info.rs b/proxmox-subscription/src/subscription_info.rs
index f53b3ce3..7f58b50a 100644
--- a/proxmox-subscription/src/subscription_info.rs
+++ b/proxmox-subscription/src/subscription_info.rs
@@ -1,10 +1,10 @@
use std::{fmt::Display, str::FromStr};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use serde::{Deserialize, Serialize};
#[cfg(feature = "api-types")]
-use proxmox_schema::{api, Updater};
+use proxmox_schema::{Updater, api};
// Aliases are needed for PVE compat!
#[cfg_attr(feature = "api-types", api())]
@@ -136,7 +136,7 @@ pub struct SubscriptionInfo {
pub use _impl::get_hardware_address;
#[cfg(feature = "impl")]
-pub(crate) use _impl::{md5sum, SHARED_KEY_DATA};
+pub(crate) use _impl::{SHARED_KEY_DATA, md5sum};
#[cfg(feature = "impl")]
mod _impl {
@@ -144,8 +144,8 @@ mod _impl {
use std::path::Path;
use anyhow::format_err;
- use anyhow::{bail, Error};
- use openssl::hash::{hash, DigestBytes, MessageDigest};
+ use anyhow::{Error, bail};
+ use openssl::hash::{DigestBytes, MessageDigest, hash};
use proxmox_sys::fs::file_get_contents;
use proxmox_time::TmEditor;
diff --git a/proxmox-sys/src/command.rs b/proxmox-sys/src/command.rs
index bc2ff249..e64bd016 100644
--- a/proxmox-sys/src/command.rs
+++ b/proxmox-sys/src/command.rs
@@ -2,7 +2,7 @@
use std::process::{Command, Output};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
/// Helper to check result from [Command] output
///
diff --git a/proxmox-sys/src/crypt.rs b/proxmox-sys/src/crypt.rs
index 508b9c15..24abf9f6 100644
--- a/proxmox-sys/src/crypt.rs
+++ b/proxmox-sys/src/crypt.rs
@@ -5,7 +5,7 @@
use std::ffi::{CStr, CString};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
// from libcrypt1, 'lib/crypt.h.in'
const CRYPT_OUTPUT_SIZE: usize = 384;
diff --git a/proxmox-sys/src/fd.rs b/proxmox-sys/src/fd.rs
index 386e4222..6f50b69a 100644
--- a/proxmox-sys/src/fd.rs
+++ b/proxmox-sys/src/fd.rs
@@ -2,13 +2,13 @@
use std::os::unix::io::AsRawFd;
-use nix::sys::stat::Mode;
use nix::NixPath;
+use nix::sys::stat::Mode;
use nix::{fcntl::OFlag, sys::stat};
use std::os::unix::io::{FromRawFd, OwnedFd, RawFd};
-use nix::fcntl::{fcntl, FdFlag, F_GETFD, F_SETFD};
+use nix::fcntl::{F_GETFD, F_SETFD, FdFlag, fcntl};
/// Change the `O_CLOEXEC` flag of an existing file descriptor.
pub fn fd_change_cloexec(fd: RawFd, on: bool) -> Result<(), anyhow::Error> {
diff --git a/proxmox-sys/src/fs/acl.rs b/proxmox-sys/src/fs/acl.rs
index 29aa75ab..1c69edd8 100644
--- a/proxmox-sys/src/fs/acl.rs
+++ b/proxmox-sys/src/fs/acl.rs
@@ -11,8 +11,8 @@ use std::path::Path;
use std::ptr;
use libc::{c_char, c_int, c_void};
-use nix::errno::Errno;
use nix::NixPath;
+use nix::errno::Errno;
#[rustfmt::skip]
mod constants {
diff --git a/proxmox-sys/src/fs/dir.rs b/proxmox-sys/src/fs/dir.rs
index f8fec3a7..c698a7d1 100644
--- a/proxmox-sys/src/fs/dir.rs
+++ b/proxmox-sys/src/fs/dir.rs
@@ -4,7 +4,7 @@ use std::os::unix::ffi::OsStringExt;
use std::os::unix::io::{AsRawFd, OwnedFd};
use std::path::{Path, PathBuf};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use nix::errno::Errno;
use nix::fcntl::OFlag;
use nix::sys::stat;
@@ -12,7 +12,7 @@ use nix::unistd;
use proxmox_lang::try_block;
-use crate::fs::{fchown, CreateOptions};
+use crate::fs::{CreateOptions, fchown};
/// The default list of [`OFlag`]'s we want to use when opening directories. Besides ensuring that
/// the FD indeed points to a directory we also must ensure that it gets closed on exec to avoid
diff --git a/proxmox-sys/src/fs/file.rs b/proxmox-sys/src/fs/file.rs
index 74b9e74e..497a6dc5 100644
--- a/proxmox-sys/src/fs/file.rs
+++ b/proxmox-sys/src/fs/file.rs
@@ -5,12 +5,12 @@ use std::path::{Path, PathBuf};
#[cfg(feature = "timer")]
use std::time::Duration;
-use anyhow::{bail, format_err, Context as _, Error};
+use anyhow::{Context as _, Error, bail, format_err};
+use nix::NixPath;
use nix::errno::Errno;
use nix::fcntl::OFlag;
use nix::sys::stat;
use nix::unistd;
-use nix::NixPath;
use serde_json::Value;
use crate::error::SysError;
diff --git a/proxmox-sys/src/fs/mod.rs b/proxmox-sys/src/fs/mod.rs
index 752b75d2..6cda6326 100644
--- a/proxmox-sys/src/fs/mod.rs
+++ b/proxmox-sys/src/fs/mod.rs
@@ -1,7 +1,7 @@
//! File system related utilities
use std::path::Path;
-use anyhow::{bail, Context, Error};
+use anyhow::{Context, Error, bail};
use nix::sys::stat;
use nix::unistd::{Gid, Uid};
diff --git a/proxmox-sys/src/fs/read_dir.rs b/proxmox-sys/src/fs/read_dir.rs
index 09dbac3d..2d6fe52e 100644
--- a/proxmox-sys/src/fs/read_dir.rs
+++ b/proxmox-sys/src/fs/read_dir.rs
@@ -2,7 +2,7 @@ use std::borrow::{Borrow, BorrowMut};
use std::ops::{Deref, DerefMut};
use std::os::unix::io::{AsRawFd, RawFd};
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use nix::dir;
use nix::dir::Dir;
use nix::fcntl::OFlag;
diff --git a/proxmox-sys/src/linux/mod.rs b/proxmox-sys/src/linux/mod.rs
index b6efddbb..cfc85757 100644
--- a/proxmox-sys/src/linux/mod.rs
+++ b/proxmox-sys/src/linux/mod.rs
@@ -1,6 +1,6 @@
//! Linux specific helpers and syscall wrapper
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use proxmox_io::vec;
diff --git a/proxmox-sys/src/linux/pid.rs b/proxmox-sys/src/linux/pid.rs
index 03464551..020cb3d1 100644
--- a/proxmox-sys/src/linux/pid.rs
+++ b/proxmox-sys/src/linux/pid.rs
@@ -4,12 +4,12 @@ use std::fs::File;
use std::io;
use std::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
+use nix::NixPath;
use nix::fcntl::OFlag;
use nix::sys::signal::Signal;
use nix::sys::signalfd::siginfo;
use nix::sys::stat::Mode;
use nix::unistd::Pid;
-use nix::NixPath;
use crate::error::SysResult;
use crate::linux::procfs::{MountInfo, PidStat};
diff --git a/proxmox-sys/src/linux/procfs/mod.rs b/proxmox-sys/src/linux/procfs/mod.rs
index a1758bc0..a9664cbd 100644
--- a/proxmox-sys/src/linux/procfs/mod.rs
+++ b/proxmox-sys/src/linux/procfs/mod.rs
@@ -8,7 +8,7 @@ use std::str::FromStr;
use std::sync::{LazyLock, RwLock};
use std::time::Instant;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use nix::unistd::Pid;
use serde::Serialize;
diff --git a/proxmox-sys/src/linux/procfs/mountinfo.rs b/proxmox-sys/src/linux/procfs/mountinfo.rs
index ab449c6a..cd3a89e3 100644
--- a/proxmox-sys/src/linux/procfs/mountinfo.rs
+++ b/proxmox-sys/src/linux/procfs/mountinfo.rs
@@ -6,7 +6,7 @@ use std::os::unix::ffi::OsStrExt;
use std::path::PathBuf;
use std::str::FromStr;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use nix::sys::stat;
use nix::unistd::Pid;
diff --git a/proxmox-sys/src/linux/tty.rs b/proxmox-sys/src/linux/tty.rs
index d08ae81f..54ce1409 100644
--- a/proxmox-sys/src/linux/tty.rs
+++ b/proxmox-sys/src/linux/tty.rs
@@ -2,7 +2,7 @@ use std::io::{self, IsTerminal, Read, Write};
use std::mem::MaybeUninit;
use std::os::unix::io::{AsRawFd, OwnedFd};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use nix::fcntl::OFlag;
use nix::sys::stat::Mode;
diff --git a/proxmox-sys/src/logrotate.rs b/proxmox-sys/src/logrotate.rs
index 704a18ce..8759325c 100644
--- a/proxmox-sys/src/logrotate.rs
+++ b/proxmox-sys/src/logrotate.rs
@@ -1,14 +1,14 @@
//! Log rotation helper
-use std::fs::{rename, File};
+use std::fs::{File, rename};
use std::io::Read;
use std::os::unix::io::{FromRawFd, IntoRawFd};
use std::path::{Path, PathBuf};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use nix::unistd;
-use crate::fs::{make_tmp_file, CreateOptions};
+use crate::fs::{CreateOptions, make_tmp_file};
/// Used for rotating log files and iterating over them
pub struct LogRotate {
diff --git a/proxmox-sys/src/macros.rs b/proxmox-sys/src/macros.rs
index a76db90f..1838acf3 100644
--- a/proxmox-sys/src/macros.rs
+++ b/proxmox-sys/src/macros.rs
@@ -16,7 +16,5 @@ macro_rules! c_result {
/// doing `c_result!(expr)?` (note the question mark).
#[macro_export]
macro_rules! c_try {
- ($expr:expr) => {{
- $crate::c_result!($expr)?
- }};
+ ($expr:expr) => {{ $crate::c_result!($expr)? }};
}
diff --git a/proxmox-sys/src/process_locker.rs b/proxmox-sys/src/process_locker.rs
index 65d2793a..9ea4b554 100644
--- a/proxmox-sys/src/process_locker.rs
+++ b/proxmox-sys/src/process_locker.rs
@@ -11,7 +11,7 @@ use std::collections::HashMap;
use std::os::unix::io::AsRawFd;
use std::sync::{Arc, Mutex};
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
// fixme: use F_OFD_ locks when implemented with nix::fcntl
diff --git a/proxmox-sys/src/systemd.rs b/proxmox-sys/src/systemd.rs
index 43dc5185..002b27a9 100644
--- a/proxmox-sys/src/systemd.rs
+++ b/proxmox-sys/src/systemd.rs
@@ -2,7 +2,7 @@ use std::ffi::OsString;
use std::os::unix::ffi::OsStringExt;
use std::path::PathBuf;
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
#[allow(clippy::manual_range_contains)]
fn parse_hex_digit(d: u8) -> Result<u8, Error> {
diff --git a/proxmox-systemd/src/journal.rs b/proxmox-systemd/src/journal.rs
index 7fbdcaa3..9dce623f 100644
--- a/proxmox-systemd/src/journal.rs
+++ b/proxmox-systemd/src/journal.rs
@@ -1,4 +1,4 @@
-use std::ffi::{c_int, CString, OsStr};
+use std::ffi::{CString, OsStr, c_int};
use std::io;
use std::os::fd::{FromRawFd, OwnedFd};
use std::os::unix::ffi::OsStrExt;
diff --git a/proxmox-systemd/src/lib.rs b/proxmox-systemd/src/lib.rs
index 456d88c3..d7d270bc 100644
--- a/proxmox-systemd/src/lib.rs
+++ b/proxmox-systemd/src/lib.rs
@@ -3,7 +3,7 @@
pub(crate) mod sys;
mod escape;
-pub use escape::{escape_unit, unescape_unit, unescape_unit_path, UnescapeError};
+pub use escape::{UnescapeError, escape_unit, unescape_unit, unescape_unit_path};
pub mod journal;
pub mod notify;
diff --git a/proxmox-systemd/src/notify.rs b/proxmox-systemd/src/notify.rs
index 1c2651b3..4641829d 100644
--- a/proxmox-systemd/src/notify.rs
+++ b/proxmox-systemd/src/notify.rs
@@ -1,4 +1,4 @@
-use std::ffi::{c_char, c_void, CStr, CString};
+use std::ffi::{CStr, CString, c_char, c_void};
use std::io;
use std::os::fd::{AsFd, AsRawFd, RawFd};
diff --git a/proxmox-tfa/src/api/methods.rs b/proxmox-tfa/src/api/methods.rs
index 03dd8b4b..e60a8f65 100644
--- a/proxmox-tfa/src/api/methods.rs
+++ b/proxmox-tfa/src/api/methods.rs
@@ -3,7 +3,7 @@
//! This defines the methods & types used in the authentication and TFA configuration API between
//! PBS, PVE, PMG.
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use super::{OpenUserChallengeData, TfaConfig, TfaInfo, TfaUserData};
use crate::totp::Totp;
diff --git a/proxmox-tfa/src/api/mod.rs b/proxmox-tfa/src/api/mod.rs
index d7f37771..d2732c67 100644
--- a/proxmox-tfa/src/api/mod.rs
+++ b/proxmox-tfa/src/api/mod.rs
@@ -7,12 +7,12 @@
use std::collections::HashMap;
use std::fmt;
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use serde::{Deserialize, Serialize};
use serde_json::Value;
use url::Url;
-use webauthn_rs::{proto::UserVerificationPolicy, Webauthn};
+use webauthn_rs::{Webauthn, proto::UserVerificationPolicy};
use crate::totp::Totp;
use crate::types::bool_is_false;
@@ -1208,11 +1208,11 @@ impl<'de> Deserialize<'de> for TotpEntry {
"totp" if totp.is_some() => return Err(A::Error::duplicate_field("totp")),
"totp" => totp = Some(map.next_value()?),
"last-count" if last_count.is_some() => {
- return Err(A::Error::duplicate_field("last-count"))
+ return Err(A::Error::duplicate_field("last-count"));
}
"last-count" => last_count = Some(map.next_value()?),
other => {
- return Err(A::Error::unknown_field(other, &["totp", "last-count"]))
+ return Err(A::Error::unknown_field(other, &["totp", "last-count"]));
}
}
}
diff --git a/proxmox-tfa/src/api/recovery.rs b/proxmox-tfa/src/api/recovery.rs
index 9629d6ff..7a40c412 100644
--- a/proxmox-tfa/src/api/recovery.rs
+++ b/proxmox-tfa/src/api/recovery.rs
@@ -1,6 +1,6 @@
use std::io;
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use openssl::hash::MessageDigest;
use openssl::pkey::PKey;
use openssl::sign::Signer;
diff --git a/proxmox-tfa/src/api/webauthn.rs b/proxmox-tfa/src/api/webauthn.rs
index 1793df97..70e95ec6 100644
--- a/proxmox-tfa/src/api/webauthn.rs
+++ b/proxmox-tfa/src/api/webauthn.rs
@@ -1,12 +1,12 @@
//! Webauthn configuration and challenge data.
-use anyhow::{format_err, Error};
+use anyhow::{Error, format_err};
use serde::{Deserialize, Serialize};
use url::Url;
use webauthn_rs::proto::{COSEKey, Credential, CredentialID, UserVerificationPolicy};
#[cfg(feature = "api-types")]
-use proxmox_schema::{api, Updater, UpdaterType};
+use proxmox_schema::{Updater, UpdaterType, api};
use super::IsExpired;
diff --git a/proxmox-tfa/src/totp.rs b/proxmox-tfa/src/totp.rs
index 940af542..d880fe93 100644
--- a/proxmox-tfa/src/totp.rs
+++ b/proxmox-tfa/src/totp.rs
@@ -8,7 +8,7 @@ use std::time::{Duration, SystemTime};
use openssl::hash::MessageDigest;
use openssl::pkey::PKey;
use openssl::sign::Signer;
-use percent_encoding::{percent_decode, percent_encode, PercentDecode};
+use percent_encoding::{PercentDecode, percent_decode, percent_encode};
use serde::{Serialize, Serializer};
/// An error from the TOTP TFA submodule.
@@ -352,7 +352,7 @@ impl Totp {
None => {
return Err(Error::msg(
"cannot create otpauth uri without an account name",
- ))
+ ));
}
};
@@ -647,7 +647,9 @@ fn test_algorithm_parsing() {
let period = 30;
let digits = 6;
let issuer = "ISSUER";
- let uri = format!("otpauth://totp/user%40hostname?secret={secret}&issuer={issuer}&algorithm=sha1&digits={digits}&period={period}");
+ let uri = format!(
+ "otpauth://totp/user%40hostname?secret={secret}&issuer={issuer}&algorithm=sha1&digits={digits}&period={period}"
+ );
let hotp: Totp = uri.parse().expect("failed to parse otp uri");
assert_eq!(hotp.algorithm, Algorithm::Sha1);
diff --git a/proxmox-tfa/src/u2f.rs b/proxmox-tfa/src/u2f.rs
index ffd7d64c..2f00120b 100644
--- a/proxmox-tfa/src/u2f.rs
+++ b/proxmox-tfa/src/u2f.rs
@@ -514,8 +514,7 @@ mod test {
const TEST_APPID: &str = "https://u2ftest.enonet.errno.eu";
- const TEST_REGISTRATION_JSON: &str =
- "{\"challenge\":\"mZoWLngnAh8p98nPkFOIBXecd0CbmgEx5tEd5jNswgY\",\"response\":{\"client\
+ const TEST_REGISTRATION_JSON: &str = "{\"challenge\":\"mZoWLngnAh8p98nPkFOIBXecd0CbmgEx5tEd5jNswgY\",\"response\":{\"client\
Data\":\"eyJjaGFsbGVuZ2UiOiJtWm9XTG5nbkFoOHA5OG5Qa0ZPSUJYZWNkMENibWdFeDV0RWQ1ak5zd2dZI\
iwib3JpZ2luIjoiaHR0cHM6Ly91MmZ0ZXN0LmVub25ldC5lcnJuby5ldSIsInR5cCI6Im5hdmlnYXRvci5pZC5\
maW5pc2hFbnJvbGxtZW50In0\",\"registrationData\":\"BQR_9TmMowVeoAHp3ABljCa90eNG87t76D4W\
@@ -533,8 +532,7 @@ mod test {
SbtOrrwswjOKEzwp6EonkCIFBxbLAmwUnblAWOVELASi610ZfPK-7qx2VwkWfHqnll\",\"version\":\"U2F\
_V2\"}}";
- const TEST_AUTH_JSON: &str =
- "{\"challenge\":\"8LE_-7Rd1vB3Otn3vJ7GyiwRQtYPMv-BWliCejH0d4Y\",\"response\":{\"clientD\
+ const TEST_AUTH_JSON: &str = "{\"challenge\":\"8LE_-7Rd1vB3Otn3vJ7GyiwRQtYPMv-BWliCejH0d4Y\",\"response\":{\"clientD\
ata\":\"eyJjaGFsbGVuZ2UiOiI4TEVfLTdSZDF2QjNPdG4zdko3R3lpd1JRdFlQTXYtQldsaUNlakgwZDRZIiw\
ib3JpZ2luIjoiaHR0cHM6Ly91MmZ0ZXN0LmVub25ldC5lcnJuby5ldSIsInR5cCI6Im5hdmlnYXRvci5pZC5nZX\
RBc3NlcnRpb24ifQ\",\"keyHandle\":\"eW3zVxEF8gPsG8eT9cgllzmSzkPdHVlXXV8m52ncX6KL8pJ1loVv\
diff --git a/proxmox-time-api/src/time_impl.rs b/proxmox-time-api/src/time_impl.rs
index a548c717..8fc7e3ec 100644
--- a/proxmox-time-api/src/time_impl.rs
+++ b/proxmox-time-api/src/time_impl.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
use proxmox_product_config::replace_system_config;
use proxmox_sys::fs::file_read_firstline;
diff --git a/proxmox-time/src/calendar_event.rs b/proxmox-time/src/calendar_event.rs
index 696a11a2..22a4b340 100644
--- a/proxmox-time/src/calendar_event.rs
+++ b/proxmox-time/src/calendar_event.rs
@@ -9,8 +9,8 @@ use nom::{
};
use crate::date_time_value::DateTimeValue;
-use crate::parse_helpers::{parse_complete_line, parse_error, parse_time_comp, IResult};
-use crate::{parse_weekdays_range, WeekDays};
+use crate::parse_helpers::{IResult, parse_complete_line, parse_error, parse_time_comp};
+use crate::{WeekDays, parse_weekdays_range};
/// Calendar events may be used to refer to one or more points in time in a
/// single expression. They are designed after the systemd.time Calendar Events
diff --git a/proxmox-time/src/daily_duration.rs b/proxmox-time/src/daily_duration.rs
index adcbc637..df24b42c 100644
--- a/proxmox-time/src/daily_duration.rs
+++ b/proxmox-time/src/daily_duration.rs
@@ -5,8 +5,8 @@ use nom::{
bytes::complete::tag, character::complete::space0, error::context, multi::separated_list1,
};
-use crate::parse_helpers::{parse_complete_line, parse_error, parse_hm_time, IResult};
-use crate::{parse_weekdays_range, WeekDays};
+use crate::parse_helpers::{IResult, parse_complete_line, parse_error, parse_hm_time};
+use crate::{WeekDays, parse_weekdays_range};
#[cfg(not(target_arch = "wasm32"))]
use crate::TmEditor;
@@ -127,7 +127,7 @@ fn parse_daily_duration_incomplete(mut i: &str) -> IResult<&str, DailyDuration>
#[cfg(test)]
mod test {
- use anyhow::{bail, Error};
+ use anyhow::{Error, bail};
use super::*;
diff --git a/proxmox-time/src/parse_helpers.rs b/proxmox-time/src/parse_helpers.rs
index 94d077f9..8afa8ccf 100644
--- a/proxmox-time/src/parse_helpers.rs
+++ b/proxmox-time/src/parse_helpers.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use super::daily_duration::*;
diff --git a/proxmox-time/src/posix.rs b/proxmox-time/src/posix.rs
index c8064bf4..ee555bb1 100644
--- a/proxmox-time/src/posix.rs
+++ b/proxmox-time/src/posix.rs
@@ -2,7 +2,7 @@
use std::ffi::{CStr, CString};
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
/// Safe bindings to libc timelocal
///
diff --git a/proxmox-time/src/test.rs b/proxmox-time/src/test.rs
index d7e86c30..dae818a6 100644
--- a/proxmox-time/src/test.rs
+++ b/proxmox-time/src/test.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
use super::*;
diff --git a/proxmox-time/src/time_span.rs b/proxmox-time/src/time_span.rs
index 6081a534..5b6b30ef 100644
--- a/proxmox-time/src/time_span.rs
+++ b/proxmox-time/src/time_span.rs
@@ -44,7 +44,7 @@ use std::sync::LazyLock;
use anyhow::Error;
use nom::{bytes::complete::take_while1, character::complete::space0, combinator::opt};
-use crate::parse_helpers::{parse_complete_line, parse_error, parse_u64, IResult};
+use crate::parse_helpers::{IResult, parse_complete_line, parse_error, parse_u64};
static TIME_SPAN_UNITS: LazyLock<HashMap<&'static str, f64>> = LazyLock::new(|| {
let mut map = HashMap::new();
diff --git a/proxmox-time/src/wasm.rs b/proxmox-time/src/wasm.rs
index c85f2a10..38ddd316 100644
--- a/proxmox-time/src/wasm.rs
+++ b/proxmox-time/src/wasm.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, format_err, Error};
+use anyhow::{Error, bail, format_err};
/// Returns Unix Epoch (now)
pub fn epoch_i64() -> i64 {
diff --git a/proxmox-time/src/week_days.rs b/proxmox-time/src/week_days.rs
index c409d292..3948ff5c 100644
--- a/proxmox-time/src/week_days.rs
+++ b/proxmox-time/src/week_days.rs
@@ -1,7 +1,7 @@
use bitflags::bitflags;
use nom::{bytes::complete::tag, character::complete::alpha1, combinator::opt, sequence::pair};
-use crate::parse_helpers::{parse_error, IResult};
+use crate::parse_helpers::{IResult, parse_error};
bitflags! {
/// Defines one or more days of a week.
diff --git a/proxmox-uuid/src/lib.rs b/proxmox-uuid/src/lib.rs
index 09a70b49..968f3878 100644
--- a/proxmox-uuid/src/lib.rs
+++ b/proxmox-uuid/src/lib.rs
@@ -61,7 +61,7 @@ pub struct Uuid(Box<[u8; 16]>);
impl Uuid {
/// Generate a uuid with `uuid_generate(3)`.
pub fn generate() -> Self {
- use std::alloc::{alloc, Layout};
+ use std::alloc::{Layout, alloc};
let uuid = unsafe { alloc(Layout::new::<[u8; 16]>()) as *mut [u8; 16] };
unsafe { uuid_generate(uuid) };
Self(unsafe { Box::from_raw(uuid) })
@@ -92,7 +92,7 @@ impl Uuid {
/// assert_eq!(uuid1, uuid2);
/// ```
pub fn parse_str(src: &str) -> Result<Self, UuidError> {
- use std::alloc::{alloc, Layout};
+ use std::alloc::{Layout, alloc};
let uuid: *mut [u8; 16] = unsafe { alloc(Layout::new::<[u8; 16]>()) as *mut [u8; 16] };
if src.len() == 36 {
// Unfortunately the manpage of `uuid_parse(3)` states that it technically requires a
diff --git a/proxmox-worker-task/src/lib.rs b/proxmox-worker-task/src/lib.rs
index 743ae53f..d6d7b330 100644
--- a/proxmox-worker-task/src/lib.rs
+++ b/proxmox-worker-task/src/lib.rs
@@ -1,4 +1,4 @@
-use anyhow::{bail, Error};
+use anyhow::{Error, bail};
/// Worker task abstraction
///
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 8/9] run cargo clippy --fix
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
` (5 preceding siblings ...)
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 7/9] run rustfmt with " Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 9/9] manual clippy fixes Maximiliano Sandoval
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
proxmox-access-control/src/acl.rs | 10 ++--------
proxmox-acme/src/types.rs | 6 ++++++
proxmox-auth-api/src/auth_key.rs | 6 ++++++
proxmox-compression/src/zip.rs | 2 +-
proxmox-io/src/sparse_copy.rs | 3 +--
proxmox-log/src/file_logger.rs | 2 +-
proxmox-rest-server/src/worker_task.rs | 9 ++-------
proxmox-rrd/src/cache.rs | 4 ++--
proxmox-rrd/src/cache/journal.rs | 4 ++--
proxmox-rrd/src/cache/rrd_map.rs | 6 +++---
proxmox-schema/src/upid.rs | 2 +-
proxmox-shared-cache/src/lib.rs | 10 +++++-----
proxmox-sys/src/logrotate.rs | 2 +-
proxmox-sys/src/systemd.rs | 2 +-
proxmox-systemd/src/escape.rs | 2 +-
proxmox-uuid/src/lib.rs | 12 ++++++------
16 files changed, 41 insertions(+), 41 deletions(-)
diff --git a/proxmox-access-control/src/acl.rs b/proxmox-access-control/src/acl.rs
index 2e5df932..48a096aa 100644
--- a/proxmox-access-control/src/acl.rs
+++ b/proxmox-access-control/src/acl.rs
@@ -208,10 +208,7 @@ impl AclTree {
let mut node = &self.root;
for outer in path {
for comp in outer.split('/') {
- node = match node.children.get(comp) {
- Some(n) => n,
- None => return None,
- };
+ node = node.children.get(comp)?;
}
}
Some(node)
@@ -221,10 +218,7 @@ impl AclTree {
let mut node = &mut self.root;
for outer in path {
for comp in outer.split('/') {
- node = match node.children.get_mut(comp) {
- Some(n) => n,
- None => return None,
- };
+ node = node.children.get_mut(comp)?;
}
}
Some(node)
diff --git a/proxmox-acme/src/types.rs b/proxmox-acme/src/types.rs
index e5a6b34d..0ec2deeb 100644
--- a/proxmox-acme/src/types.rs
+++ b/proxmox-acme/src/types.rs
@@ -38,6 +38,12 @@ pub enum AccountStatus {
Revoked,
}
+impl Default for AccountStatus {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl AccountStatus {
/// Create a new instance with state New.
#[inline]
diff --git a/proxmox-auth-api/src/auth_key.rs b/proxmox-auth-api/src/auth_key.rs
index 98684853..b7515b75 100644
--- a/proxmox-auth-api/src/auth_key.rs
+++ b/proxmox-auth-api/src/auth_key.rs
@@ -237,6 +237,12 @@ pub struct Keyring {
public_keys: Vec<VerificationKey>,
}
+impl Default for Keyring {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl Keyring {
pub fn generate_new_rsa() -> Result<Self, Error> {
PrivateKey::generate_rsa().map(Self::with_private_key)
diff --git a/proxmox-compression/src/zip.rs b/proxmox-compression/src/zip.rs
index d074be5a..415e2cf8 100644
--- a/proxmox-compression/src/zip.rs
+++ b/proxmox-compression/src/zip.rs
@@ -360,7 +360,7 @@ impl ZipEntry {
comment_len: 0,
start_disk: 0,
internal_flags: 0,
- external_flags: (self.mode as u32) << 16 | (!self.is_file as u32) << 4,
+ external_flags: ((self.mode as u32) << 16) | ((!self.is_file as u32) << 4),
offset,
},
)
diff --git a/proxmox-io/src/sparse_copy.rs b/proxmox-io/src/sparse_copy.rs
index 9d09e6ad..fad1a51a 100644
--- a/proxmox-io/src/sparse_copy.rs
+++ b/proxmox-io/src/sparse_copy.rs
@@ -14,8 +14,7 @@ const BUF_SIZE: usize = 8192;
/// This is implemented in a way which allows the compiler to utilize SIMD instructions.
pub fn buffer_is_zero(buf: &[u8]) -> bool {
!buf.chunks(128)
- .map(|aa| aa.iter().fold(0, |a, b| a | b) != 0)
- .any(|a| a)
+ .any(|aa| aa.iter().fold(0, |a, b| a | b) != 0)
}
/// Result of a sparse copy call.
diff --git a/proxmox-log/src/file_logger.rs b/proxmox-log/src/file_logger.rs
index b5d28ace..e33bd09f 100644
--- a/proxmox-log/src/file_logger.rs
+++ b/proxmox-log/src/file_logger.rs
@@ -94,7 +94,7 @@ impl FileLogger {
}
let file =
- atomic_open_or_create_file(&file_name, flags, &[], options.file_opts.clone(), false)?;
+ atomic_open_or_create_file(&file_name, flags, &[], options.file_opts, false)?;
Ok(file)
}
diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs
index 6f0fcab2..88d79776 100644
--- a/proxmox-rest-server/src/worker_task.rs
+++ b/proxmox-rest-server/src/worker_task.rs
@@ -136,7 +136,6 @@ impl WorkerTaskSetup {
fn lock_task_list_files(&self, exclusive: bool) -> Result<TaskListLockGuard, Error> {
let options = self
.file_opts
- .clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o660));
let timeout = std::time::Duration::new(15, 0);
@@ -163,7 +162,6 @@ impl WorkerTaskSetup {
let mut path = self.log_directory(upid);
let dir_opts = self
.file_opts
- .clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o755));
create_path(&path, None, Some(dir_opts))?;
@@ -222,7 +220,6 @@ impl WorkerTaskSetup {
let options = self
.file_opts
- .clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o660));
replace_file(&self.active_tasks_fn, active_raw.as_bytes(), options, false)?;
@@ -237,7 +234,6 @@ impl WorkerTaskSetup {
if !finish_list.is_empty() {
let options = self
.file_opts
- .clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o660));
let mut writer = atomic_open_or_create_file(
@@ -268,10 +264,9 @@ impl WorkerTaskSetup {
try_block!({
let dir_opts = self
.file_opts
- .clone()
.perm(nix::sys::stat::Mode::from_bits_truncate(0o755));
- create_path(&self.taskdir, Some(dir_opts.clone()), Some(dir_opts))?;
+ create_path(&self.taskdir, Some(dir_opts), Some(dir_opts))?;
// fixme:??? create_path(pbs_buildcfg::PROXMOX_BACKUP_RUN_DIR, None, Some(opts))?;
Ok(())
})
@@ -901,7 +896,7 @@ impl WorkerTask {
exclusive: true,
prefix_time: true,
read: true,
- file_opts: setup.file_opts.clone(),
+ file_opts: setup.file_opts,
..Default::default()
};
let logger = FileLogger::new(path, logger_options)?;
diff --git a/proxmox-rrd/src/cache.rs b/proxmox-rrd/src/cache.rs
index e1c574c8..092a3626 100644
--- a/proxmox-rrd/src/cache.rs
+++ b/proxmox-rrd/src/cache.rs
@@ -68,8 +68,8 @@ impl Cache {
create_path(
&basedir,
- Some(dir_options.clone()),
- Some(dir_options.clone()),
+ Some(dir_options),
+ Some(dir_options),
)
.map_err(|err: Error| format_err!("unable to create rrdb stat dir - {}", err))?;
diff --git a/proxmox-rrd/src/cache/journal.rs b/proxmox-rrd/src/cache/journal.rs
index 67796a46..9e9f34d4 100644
--- a/proxmox-rrd/src/cache/journal.rs
+++ b/proxmox-rrd/src/cache/journal.rs
@@ -116,7 +116,7 @@ impl JournalState {
&journal_path,
flags,
&[],
- self.config.file_options.clone(),
+ self.config.file_options,
false,
)?;
Ok(BufReader::new(journal))
@@ -131,7 +131,7 @@ impl JournalState {
&journal_path,
flags,
&[],
- config.file_options.clone(),
+ config.file_options,
false,
)?;
Ok(journal)
diff --git a/proxmox-rrd/src/cache/rrd_map.rs b/proxmox-rrd/src/cache/rrd_map.rs
index 9fa0d44e..bac60a4a 100644
--- a/proxmox-rrd/src/cache/rrd_map.rs
+++ b/proxmox-rrd/src/cache/rrd_map.rs
@@ -51,8 +51,8 @@ impl RRDMap {
None => {
create_path(
path.parent().unwrap(),
- Some(self.config.dir_options.clone()),
- Some(self.config.dir_options.clone()),
+ Some(self.config.dir_options),
+ Some(self.config.dir_options),
)?;
(self.create_rrd_cb)(dst)
@@ -82,7 +82,7 @@ impl RRDMap {
if let Some(rrd) = self.map.get(rel_path) {
let mut path = self.config.basedir.clone();
path.push(rel_path);
- rrd.save(&path, self.config.file_options.clone(), true)
+ rrd.save(&path, self.config.file_options, true)
} else {
bail!("rrd file {} not loaded", rel_path);
}
diff --git a/proxmox-schema/src/upid.rs b/proxmox-schema/src/upid.rs
index bbd4b0b3..ce51bf1e 100644
--- a/proxmox-schema/src/upid.rs
+++ b/proxmox-schema/src/upid.rs
@@ -191,7 +191,7 @@ fn unescape_id(text: &str) -> Result<String, Error> {
}
let h1 = hex_digit(i[2])?;
let h0 = hex_digit(i[3])?;
- data.push(h1 << 4 | h0);
+ data.push((h1 << 4) | h0);
i = &i[4..]
} else if next == b'-' {
data.push(b'/');
diff --git a/proxmox-shared-cache/src/lib.rs b/proxmox-shared-cache/src/lib.rs
index 893808f5..71a82cc9 100644
--- a/proxmox-shared-cache/src/lib.rs
+++ b/proxmox-shared-cache/src/lib.rs
@@ -127,7 +127,7 @@ impl SharedCache {
proxmox_sys::fs::replace_file(
&self.path,
new_content.as_bytes(),
- self.create_options.clone(),
+ self.create_options,
true,
)?;
@@ -137,7 +137,7 @@ impl SharedCache {
/// Removes all items from the cache.
pub fn delete(&self, lock_timeout: Duration) -> Result<(), Error> {
let _lock = self.lock(lock_timeout)?;
- proxmox_sys::fs::replace_file(&self.path, &[], self.create_options.clone(), true)?;
+ proxmox_sys::fs::replace_file(&self.path, &[], self.create_options, true)?;
Ok(())
}
@@ -149,7 +149,7 @@ impl SharedCache {
lockfile_path,
lock_timeout,
true,
- self.create_options.clone(),
+ self.create_options,
)
}
}
@@ -180,8 +180,8 @@ mod tests {
proxmox_sys::fs::create_path(
&path,
- Some(dir_options.clone()),
- Some(dir_options.clone()),
+ Some(dir_options),
+ Some(dir_options),
)
.unwrap();
diff --git a/proxmox-sys/src/logrotate.rs b/proxmox-sys/src/logrotate.rs
index 8759325c..a995fab1 100644
--- a/proxmox-sys/src/logrotate.rs
+++ b/proxmox-sys/src/logrotate.rs
@@ -64,7 +64,7 @@ impl LogRotate {
options: &CreateOptions,
) -> Result<(), Error> {
let mut source = File::open(source_path)?;
- let (fd, tmp_path) = make_tmp_file(target_path, options.clone())?;
+ let (fd, tmp_path) = make_tmp_file(target_path, *options)?;
let target = unsafe { File::from_raw_fd(fd.into_raw_fd()) };
let mut encoder = match zstd::stream::write::Encoder::new(target, 0) {
Ok(encoder) => encoder,
diff --git a/proxmox-sys/src/systemd.rs b/proxmox-sys/src/systemd.rs
index 002b27a9..6fe11e16 100644
--- a/proxmox-sys/src/systemd.rs
+++ b/proxmox-sys/src/systemd.rs
@@ -90,7 +90,7 @@ fn unescape_unit_do(text: &str) -> Result<Vec<u8>, Error> {
}
let h1 = parse_hex_digit(i[2])?;
let h0 = parse_hex_digit(i[3])?;
- data.push(h1 << 4 | h0);
+ data.push((h1 << 4) | h0);
i = &i[4..]
} else if next == b'-' {
data.push(b'/');
diff --git a/proxmox-systemd/src/escape.rs b/proxmox-systemd/src/escape.rs
index f73beed3..392907bc 100644
--- a/proxmox-systemd/src/escape.rs
+++ b/proxmox-systemd/src/escape.rs
@@ -97,7 +97,7 @@ fn unescape_unit_do(text: &str) -> Result<Vec<u8>, UnescapeError> {
}
let h1 = parse_hex_digit(i[2])?;
let h0 = parse_hex_digit(i[3])?;
- data.push(h1 << 4 | h0);
+ data.push((h1 << 4) | h0);
i = &i[4..]
} else if next == b'-' {
data.push(b'/');
diff --git a/proxmox-uuid/src/lib.rs b/proxmox-uuid/src/lib.rs
index 968f3878..5fa635d4 100644
--- a/proxmox-uuid/src/lib.rs
+++ b/proxmox-uuid/src/lib.rs
@@ -103,25 +103,25 @@ impl Uuid {
return Err(UuidError);
}
for i in 0..4 {
- uuid[i] = hex_digit(src[2 * i])? << 4 | hex_digit(src[2 * i + 1])?;
+ uuid[i] = (hex_digit(src[2 * i])? << 4) | hex_digit(src[2 * i + 1])?;
}
for i in 4..6 {
- uuid[i] = hex_digit(src[2 * i + 1])? << 4 | hex_digit(src[2 * i + 2])?;
+ uuid[i] = (hex_digit(src[2 * i + 1])? << 4) | hex_digit(src[2 * i + 2])?;
}
for i in 6..8 {
- uuid[i] = hex_digit(src[2 * i + 2])? << 4 | hex_digit(src[2 * i + 3])?;
+ uuid[i] = (hex_digit(src[2 * i + 2])? << 4) | hex_digit(src[2 * i + 3])?;
}
for i in 8..10 {
- uuid[i] = hex_digit(src[2 * i + 3])? << 4 | hex_digit(src[2 * i + 4])?;
+ uuid[i] = (hex_digit(src[2 * i + 3])? << 4) | hex_digit(src[2 * i + 4])?;
}
for i in 10..16 {
- uuid[i] = hex_digit(src[2 * i + 4])? << 4 | hex_digit(src[2 * i + 5])?;
+ uuid[i] = (hex_digit(src[2 * i + 4])? << 4) | hex_digit(src[2 * i + 5])?;
}
} else if src.len() == 32 {
let uuid: &mut [u8] = unsafe { &mut (*uuid)[..] };
let src = src.as_bytes();
for i in 0..16 {
- uuid[i] = hex_digit(src[2 * i])? << 4 | hex_digit(src[2 * i + 1])?;
+ uuid[i] = (hex_digit(src[2 * i])? << 4) | hex_digit(src[2 * i + 1])?;
}
} else {
return Err(UuidError);
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [pbs-devel] [PATCH proxmox 9/9] manual clippy fixes
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
` (6 preceding siblings ...)
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 8/9] run cargo clippy --fix Maximiliano Sandoval
@ 2025-03-04 14:40 ` Maximiliano Sandoval
7 siblings, 0 replies; 9+ messages in thread
From: Maximiliano Sandoval @ 2025-03-04 14:40 UTC (permalink / raw)
To: pbs-devel
- The create_new change is fine since this is a test.
- The api breakage of sort_package_list is OK since the function does
not have any user outside of proxmox-apt
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
proxmox-apt/src/cache.rs | 2 +-
proxmox-sys/tests/xattr.rs | 2 +-
proxmox-tfa/src/api/methods.rs | 5 +----
proxmox-tfa/src/totp.rs | 2 +-
4 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/proxmox-apt/src/cache.rs b/proxmox-apt/src/cache.rs
index 1c04481f..5ad81f8f 100644
--- a/proxmox-apt/src/cache.rs
+++ b/proxmox-apt/src/cache.rs
@@ -291,7 +291,7 @@ where
None
}
-pub fn sort_package_list(packages: &mut Vec<APTUpdateInfo>) {
+pub fn sort_package_list(packages: &mut [APTUpdateInfo]) {
let cache = apt_pkg_native::Cache::get_singleton();
packages.sort_by(|left, right| {
cache
diff --git a/proxmox-sys/tests/xattr.rs b/proxmox-sys/tests/xattr.rs
index 02d43934..e8e77b10 100644
--- a/proxmox-sys/tests/xattr.rs
+++ b/proxmox-sys/tests/xattr.rs
@@ -13,7 +13,7 @@ fn test_fsetxattr_fgetxattr() {
let file = OpenOptions::new()
.write(true)
- .create(true)
+ .create_new(true)
.open(&path)
.unwrap();
diff --git a/proxmox-tfa/src/api/methods.rs b/proxmox-tfa/src/api/methods.rs
index e60a8f65..3d7e70ba 100644
--- a/proxmox-tfa/src/api/methods.rs
+++ b/proxmox-tfa/src/api/methods.rs
@@ -98,10 +98,7 @@ pub fn list_user_tfa(config: &TfaConfig, userid: &str) -> Result<Vec<TypedTfaInf
///
/// In case this returns `None` a `NOT_FOUND` http error should be returned.
pub fn get_tfa_entry(config: &TfaConfig, userid: &str, id: &str) -> Option<TypedTfaInfo> {
- let user_data = match config.users.get(userid) {
- Some(u) => u,
- None => return None,
- };
+ let user_data = config.users.get(userid)?;
Some(
match {
diff --git a/proxmox-tfa/src/totp.rs b/proxmox-tfa/src/totp.rs
index d880fe93..1524fdfc 100644
--- a/proxmox-tfa/src/totp.rs
+++ b/proxmox-tfa/src/totp.rs
@@ -546,7 +546,7 @@ impl PartialEq<&str> for TotpValue {
fn eq(&self, other: &&str) -> bool {
// Since we use `from_str_radix` with a radix of 10 explicitly, we can check the number of
// bytes against the number of digits.
- if other.as_bytes().len() != (self.digits as usize) {
+ if other.len() != (self.digits as usize) {
return false;
}
--
2.39.5
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-03-04 15:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-04 14:40 [pbs-devel] [PATCH proxmox 1/9] mark extern C blocks as unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 2/9] daemon: set_var is now unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 3/9] mark blocks inside unsafe fns unsafe Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 4/9] broadcast_future: accommodate to edition 2024 changes to RPIT Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 5/9] procfs: add variable bindings for std::fs::read Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 6/9] port to edition 2024 Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 7/9] run rustfmt with " Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 8/9] run cargo clippy --fix Maximiliano Sandoval
2025-03-04 14:40 ` [pbs-devel] [PATCH proxmox 9/9] manual clippy fixes Maximiliano Sandoval
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal