mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 08:45:41 +08:00
65 lines
1.3 KiB
Rust
65 lines
1.3 KiB
Rust
use anyhow::Result;
|
|
use smartstring::alias::String;
|
|
|
|
pub type CmdResult<T = ()> = Result<T, String>;
|
|
|
|
// Command modules
|
|
pub mod app;
|
|
pub mod backup;
|
|
pub mod clash;
|
|
pub mod lightweight;
|
|
pub mod media_unlock_checker;
|
|
pub mod network;
|
|
pub mod profile;
|
|
pub mod proxy;
|
|
pub mod runtime;
|
|
pub mod save_profile;
|
|
pub mod service;
|
|
pub mod system;
|
|
pub mod uwp;
|
|
pub mod validate;
|
|
pub mod verge;
|
|
pub mod webdav;
|
|
|
|
// Re-export all command functions for backwards compatibility
|
|
pub use app::*;
|
|
pub use backup::*;
|
|
pub use clash::*;
|
|
pub use lightweight::*;
|
|
pub use media_unlock_checker::*;
|
|
pub use network::*;
|
|
pub use profile::*;
|
|
pub use proxy::*;
|
|
pub use runtime::*;
|
|
pub use save_profile::*;
|
|
pub use service::*;
|
|
pub use system::*;
|
|
pub use uwp::*;
|
|
pub use validate::*;
|
|
pub use verge::*;
|
|
pub use webdav::*;
|
|
|
|
pub trait StringifyErr<T> {
|
|
fn stringify_err(self) -> CmdResult<T>;
|
|
fn stringify_err_log<F>(self, log_fn: F) -> CmdResult<T>
|
|
where
|
|
F: Fn(&str);
|
|
}
|
|
|
|
impl<T, E: std::fmt::Display> StringifyErr<T> for Result<T, E> {
|
|
fn stringify_err(self) -> CmdResult<T> {
|
|
self.map_err(|e| e.to_string().into())
|
|
}
|
|
|
|
fn stringify_err_log<F>(self, log_fn: F) -> CmdResult<T>
|
|
where
|
|
F: Fn(&str),
|
|
{
|
|
self.map_err(|e| {
|
|
let msg = String::from(e.to_string());
|
|
log_fn(&msg);
|
|
msg
|
|
})
|
|
}
|
|
}
|