mirror of
https://git.proxmox.com/git/proxmox
synced 2025-05-29 20:30:37 +00:00
switch from failure to anyhow
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
5affb691b5
commit
5dd21ee89b
@ -12,7 +12,7 @@ exclude = [ "debian" ]
|
|||||||
proc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
failure = "0.1"
|
anyhow = "1.0"
|
||||||
proc-macro2 = "1.0"
|
proc-macro2 = "1.0"
|
||||||
quote = "1.0"
|
quote = "1.0"
|
||||||
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
|
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
use std::convert::{TryFrom, TryInto};
|
use std::convert::{TryFrom, TryInto};
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro2::{Span, TokenStream};
|
use proc_macro2::{Span, TokenStream};
|
||||||
use quote::{quote, quote_spanned};
|
use quote::{quote, quote_spanned};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::convert::{TryFrom, TryInto};
|
use std::convert::{TryFrom, TryInto};
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro2::{Ident, Span, TokenStream};
|
use proc_macro2::{Ident, Span, TokenStream};
|
||||||
use quote::quote_spanned;
|
use quote::quote_spanned;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
use std::convert::{TryFrom, TryInto};
|
use std::convert::{TryFrom, TryInto};
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro2::{Span, TokenStream};
|
use proc_macro2::{Span, TokenStream};
|
||||||
use quote::{quote, quote_spanned};
|
use quote::{quote, quote_spanned};
|
||||||
@ -408,10 +408,10 @@ fn create_wrapper_function(
|
|||||||
// they have a default):
|
// they have a default):
|
||||||
//
|
//
|
||||||
// Whether the parameter is optional should have been verified by the schema
|
// Whether the parameter is optional should have been verified by the schema
|
||||||
// verifier already, so here we just use failure::bail! instead of building a
|
// verifier already, so here we just use anyhow::bail! instead of building a
|
||||||
// proper http error!
|
// proper http error!
|
||||||
body.extend(quote_spanned! { span =>
|
body.extend(quote_spanned! { span =>
|
||||||
.ok_or_else(|| ::failure::format_err!(
|
.ok_or_else(|| ::anyhow::format_err!(
|
||||||
"missing non-optional parameter: {}",
|
"missing non-optional parameter: {}",
|
||||||
#name_str,
|
#name_str,
|
||||||
))?
|
))?
|
||||||
@ -460,7 +460,7 @@ fn create_wrapper_function(
|
|||||||
#body
|
#body
|
||||||
Ok(::serde_json::to_value(#func_name(#args) #await_keyword #question_mark)?)
|
Ok(::serde_json::to_value(#func_name(#args) #await_keyword #question_mark)?)
|
||||||
} else {
|
} else {
|
||||||
::failure::bail!("api function wrapper called with a non-object json value");
|
::anyhow::bail!("api function wrapper called with a non-object json value");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -475,7 +475,7 @@ fn create_wrapper_function(
|
|||||||
// mut input_params: ::serde_json::Value,
|
// mut input_params: ::serde_json::Value,
|
||||||
// api_method_param: &'static ::proxmox::api::ApiMethod,
|
// api_method_param: &'static ::proxmox::api::ApiMethod,
|
||||||
// rpc_env_param: &'a mut dyn ::proxmox::api::RpcEnvironment,
|
// rpc_env_param: &'a mut dyn ::proxmox::api::RpcEnvironment,
|
||||||
//) -> ::std::result::Result<::serde_json::Value, ::failure::Error> {
|
//) -> ::std::result::Result<::serde_json::Value, ::anyhow::Error> {
|
||||||
// #body
|
// #body
|
||||||
//}
|
//}
|
||||||
//::std::boxed::Box::pin(async move {
|
//::std::boxed::Box::pin(async move {
|
||||||
@ -490,7 +490,7 @@ fn create_wrapper_function(
|
|||||||
mut input_params: ::serde_json::Value,
|
mut input_params: ::serde_json::Value,
|
||||||
api_method_param: &::proxmox::api::ApiMethod,
|
api_method_param: &::proxmox::api::ApiMethod,
|
||||||
rpc_env_param: &mut dyn ::proxmox::api::RpcEnvironment,
|
rpc_env_param: &mut dyn ::proxmox::api::RpcEnvironment,
|
||||||
) -> ::std::result::Result<::serde_json::Value, ::failure::Error> {
|
) -> ::std::result::Result<::serde_json::Value, ::anyhow::Error> {
|
||||||
#body
|
#body
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::convert::{TryFrom, TryInto};
|
use std::convert::{TryFrom, TryInto};
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro2::{Ident, Span, TokenStream};
|
use proc_macro2::{Ident, Span, TokenStream};
|
||||||
use quote::quote_spanned;
|
use quote::quote_spanned;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
extern crate proc_macro;
|
extern crate proc_macro;
|
||||||
extern crate proc_macro2;
|
extern crate proc_macro2;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro::TokenStream as TokenStream_1;
|
use proc_macro::TokenStream as TokenStream_1;
|
||||||
use proc_macro2::TokenStream;
|
use proc_macro2::TokenStream;
|
||||||
@ -60,7 +60,7 @@ fn router_do(item: TokenStream) -> Result<TokenStream, Error> {
|
|||||||
# use proxmox_api_macro::api;
|
# use proxmox_api_macro::api;
|
||||||
# use proxmox::api::{ApiMethod, RpcEnvironment};
|
# use proxmox::api::{ApiMethod, RpcEnvironment};
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
use proc_macro2::{Ident, Span, TokenStream};
|
use proc_macro2::{Ident, Span, TokenStream};
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
/// A more relaxed version of Ident which allows hyphens.
|
/// A more relaxed version of Ident which allows hyphens.
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
|
@ -8,7 +8,7 @@ use syn::punctuated::Punctuated;
|
|||||||
use syn::spanned::Spanned;
|
use syn::spanned::Spanned;
|
||||||
use syn::Token;
|
use syn::Token;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use crate::api::{self, Schema, SchemaItem};
|
use crate::api::{self, Schema, SchemaItem};
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use proxmox_api_macro::api;
|
use proxmox_api_macro::api;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
|
|
||||||
use proxmox::api::Permission;
|
use proxmox::api::Permission;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use proxmox_api_macro::api;
|
use proxmox_api_macro::api;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
use proxmox::api::{schema, RpcEnvironment};
|
use proxmox::api::{schema, RpcEnvironment};
|
||||||
use proxmox_api_macro::api;
|
use proxmox_api_macro::api;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
|
|
||||||
pub const NAME_SCHEMA: schema::Schema = schema::StringSchema::new("Archive name.")
|
pub const NAME_SCHEMA: schema::Schema = schema::StringSchema::new("Archive name.")
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use proxmox_api_macro::api;
|
use proxmox_api_macro::api;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
use proxmox::api::schema;
|
use proxmox::api::schema;
|
||||||
use proxmox_api_macro::api;
|
use proxmox_api_macro::api;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
|
@ -12,8 +12,7 @@ exclude = [ "debian" ]
|
|||||||
proc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
#failure = { version = "0.1", default-features = false, features = ["std"] }
|
anyhow = "1.0"
|
||||||
failure = "0.1"
|
|
||||||
proc-macro2 = "1.0"
|
proc-macro2 = "1.0"
|
||||||
quote = "1.0"
|
quote = "1.0"
|
||||||
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
|
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
|
||||||
|
@ -4,7 +4,7 @@ extern crate proc_macro2;
|
|||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use proc_macro::TokenStream as TokenStream_1;
|
use proc_macro::TokenStream as TokenStream_1;
|
||||||
use proc_macro2::TokenStream;
|
use proc_macro2::TokenStream;
|
||||||
|
@ -13,7 +13,7 @@ exclude = [ "debian" ]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# General dependencies
|
# General dependencies
|
||||||
failure = "0.1"
|
anyhow = "1.0"
|
||||||
lazy_static = "1.4"
|
lazy_static = "1.4"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
nix = "0.16"
|
nix = "0.16"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use failure::*;
|
use anyhow::*;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
@ -298,7 +298,7 @@ pub fn get_completions(
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::api::{cli::*, schema::*, *};
|
use crate::api::{cli::*, schema::*, *};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use failure::*;
|
use anyhow::*;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::api::schema::*;
|
use crate::api::schema::*;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use failure::*;
|
use anyhow::*;
|
||||||
|
|
||||||
/// Shell quote type
|
/// Shell quote type
|
||||||
pub use rustyline::completion::Quote;
|
pub use rustyline::completion::Quote;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::api::schema::*;
|
use crate::api::schema::*;
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use failure::Fail;
|
|
||||||
|
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub use http::StatusCode;
|
pub use http::StatusCode;
|
||||||
|
|
||||||
/// HTTP error including `StatusCode` and message.
|
/// HTTP error including `StatusCode` and message.
|
||||||
#[derive(Debug, Fail)]
|
#[derive(Debug)]
|
||||||
pub struct HttpError {
|
pub struct HttpError {
|
||||||
pub code: StatusCode,
|
pub code: StatusCode,
|
||||||
pub message: String,
|
pub message: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl std::error::Error for HttpError {}
|
||||||
|
|
||||||
impl HttpError {
|
impl HttpError {
|
||||||
pub fn new(code: StatusCode, message: String) -> Self {
|
pub fn new(code: StatusCode, message: String) -> Self {
|
||||||
HttpError { code, message }
|
HttpError { code, message }
|
||||||
@ -24,11 +24,11 @@ impl fmt::Display for HttpError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Macro to create a HttpError inside a failure::Error
|
/// Macro to create a HttpError inside a anyhow::Error
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! http_err {
|
macro_rules! http_err {
|
||||||
($status:ident, $msg:expr) => {{
|
($status:ident, $msg:expr) => {{
|
||||||
::failure::Error::from($crate::api::error::HttpError::new(
|
::anyhow::Error::from($crate::api::error::HttpError::new(
|
||||||
$crate::api::error::StatusCode::$status,
|
$crate::api::error::StatusCode::$status,
|
||||||
$msg,
|
$msg,
|
||||||
))
|
))
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
//! Module to generate and format API Documenation
|
//! Module to generate and format API Documenation
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
|
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ use std::fmt;
|
|||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
|
|
||||||
use failure::Error;
|
use anyhow::Error;
|
||||||
use http::request::Parts;
|
use http::request::Parts;
|
||||||
use http::{Method, Response};
|
use http::{Method, Response};
|
||||||
use hyper::Body;
|
use hyper::Body;
|
||||||
@ -18,7 +18,7 @@ use super::Permission;
|
|||||||
///
|
///
|
||||||
/// Most API handler are synchronous. Use this to define such handler:
|
/// Most API handler are synchronous. Use this to define such handler:
|
||||||
/// ```
|
/// ```
|
||||||
/// # use failure::*;
|
/// # use anyhow::*;
|
||||||
/// # use serde_json::{json, Value};
|
/// # use serde_json::{json, Value};
|
||||||
/// # use proxmox::api::{*, schema::*};
|
/// # use proxmox::api::{*, schema::*};
|
||||||
/// #
|
/// #
|
||||||
@ -44,7 +44,7 @@ pub type ApiHandlerFn = &'static (dyn Fn(Value, &ApiMethod, &mut dyn RpcEnvironm
|
|||||||
///
|
///
|
||||||
/// Returns a future Value.
|
/// Returns a future Value.
|
||||||
/// ```
|
/// ```
|
||||||
/// # use failure::*;
|
/// # use anyhow::*;
|
||||||
/// # use serde_json::{json, Value};
|
/// # use serde_json::{json, Value};
|
||||||
/// # use proxmox::api::{*, schema::*};
|
/// # use proxmox::api::{*, schema::*};
|
||||||
/// #
|
/// #
|
||||||
@ -70,14 +70,14 @@ pub type ApiAsyncHandlerFn = &'static (dyn for<'a> Fn(Value, &'static ApiMethod,
|
|||||||
+ Send
|
+ Send
|
||||||
+ Sync);
|
+ Sync);
|
||||||
|
|
||||||
pub type ApiFuture<'a> = Pin<Box<dyn Future<Output = Result<Value, failure::Error>> + Send + 'a>>;
|
pub type ApiFuture<'a> = Pin<Box<dyn Future<Output = Result<Value, anyhow::Error>> + Send + 'a>>;
|
||||||
|
|
||||||
/// Asynchronous HTTP API handlers
|
/// Asynchronous HTTP API handlers
|
||||||
///
|
///
|
||||||
/// They get low level access to request and response data. Use this
|
/// They get low level access to request and response data. Use this
|
||||||
/// to implement custom upload/download functions.
|
/// to implement custom upload/download functions.
|
||||||
/// ```
|
/// ```
|
||||||
/// # use failure::*;
|
/// # use anyhow::*;
|
||||||
/// # use serde_json::{json, Value};
|
/// # use serde_json::{json, Value};
|
||||||
/// # use proxmox::api::{*, schema::*};
|
/// # use proxmox::api::{*, schema::*};
|
||||||
/// #
|
/// #
|
||||||
@ -117,7 +117,7 @@ pub type ApiAsyncHttpHandlerFn = &'static (dyn Fn(
|
|||||||
|
|
||||||
/// The output of an asynchronous API handler is a future yielding a `Response`.
|
/// The output of an asynchronous API handler is a future yielding a `Response`.
|
||||||
pub type ApiResponseFuture =
|
pub type ApiResponseFuture =
|
||||||
Pin<Box<dyn Future<Output = Result<Response<Body>, failure::Error>> + Send>>;
|
Pin<Box<dyn Future<Output = Result<Response<Body>, anyhow::Error>> + Send>>;
|
||||||
|
|
||||||
/// Enum for different types of API handler functions.
|
/// Enum for different types of API handler functions.
|
||||||
pub enum ApiHandler {
|
pub enum ApiHandler {
|
||||||
@ -213,7 +213,7 @@ macro_rules! list_subdirs_api_method {
|
|||||||
/// all `const fn(mut self, ..)` methods to configure them.
|
/// all `const fn(mut self, ..)` methods to configure them.
|
||||||
///
|
///
|
||||||
///```
|
///```
|
||||||
/// # use failure::*;
|
/// # use anyhow::*;
|
||||||
/// # use serde_json::{json, Value};
|
/// # use serde_json::{json, Value};
|
||||||
/// # use proxmox::api::{*, schema::*};
|
/// # use proxmox::api::{*, schema::*};
|
||||||
/// #
|
/// #
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::{bail, format_err, Error};
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
use url::form_urlencoded;
|
use url::form_urlencoded;
|
||||||
|
|
||||||
@ -17,11 +17,13 @@ use crate::api::const_regex::ConstRegexPattern;
|
|||||||
/// The validation functions may produce several error message,
|
/// The validation functions may produce several error message,
|
||||||
/// i.e. when validation objects, it can produce one message for each
|
/// i.e. when validation objects, it can produce one message for each
|
||||||
/// erroneous object property.
|
/// erroneous object property.
|
||||||
#[derive(Default, Debug, Fail)]
|
#[derive(Default, Debug)]
|
||||||
pub struct ParameterError {
|
pub struct ParameterError {
|
||||||
error_list: Vec<Error>,
|
error_list: Vec<Error>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl std::error::Error for ParameterError {}
|
||||||
|
|
||||||
// fixme: record parameter names, to make it usefull to display errord
|
// fixme: record parameter names, to make it usefull to display errord
|
||||||
// on HTML forms.
|
// on HTML forms.
|
||||||
impl ParameterError {
|
impl ParameterError {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
//! ...
|
//! ...
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
@ -33,7 +33,7 @@ pub fn io_err_other<E: ToString>(e: E) -> io::Error {
|
|||||||
/// Usage examples:
|
/// Usage examples:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use failure::{bail, Error};
|
/// # use anyhow::{bail, Error};
|
||||||
/// use nix::{dir::Dir, fcntl::OFlag, sys::stat::Mode};
|
/// use nix::{dir::Dir, fcntl::OFlag, sys::stat::Mode};
|
||||||
///
|
///
|
||||||
/// use proxmox::sys::error::SysError;
|
/// use proxmox::sys::error::SysError;
|
||||||
@ -114,7 +114,7 @@ impl SysError for nix::Error {
|
|||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// # use std::os::unix::io::RawFd;
|
/// # use std::os::unix::io::RawFd;
|
||||||
/// # use failure::{bail, Error};
|
/// # use anyhow::{bail, Error};
|
||||||
///
|
///
|
||||||
/// use proxmox::sys::error::SysResult;
|
/// use proxmox::sys::error::SysResult;
|
||||||
///
|
///
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
//! Linux specific helpers and syscall wrapper
|
//! Linux specific helpers and syscall wrapper
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
|
|
||||||
pub mod magic;
|
pub mod magic;
|
||||||
pub mod pid;
|
pub mod pid;
|
||||||
|
@ -7,7 +7,7 @@ use std::str::FromStr;
|
|||||||
use std::sync::RwLock;
|
use std::sync::RwLock;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use libc;
|
use libc;
|
||||||
use nix::unistd::Pid;
|
use nix::unistd::Pid;
|
||||||
|
@ -7,7 +7,7 @@ use std::os::unix::ffi::OsStrExt;
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use failure::{bail, format_err, Error};
|
use anyhow::{bail, format_err, Error};
|
||||||
use nix::sys::stat;
|
use nix::sys::stat;
|
||||||
use nix::unistd::Pid;
|
use nix::unistd::Pid;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ use std::io::{Read, Write};
|
|||||||
use std::mem::MaybeUninit;
|
use std::mem::MaybeUninit;
|
||||||
use std::os::unix::io::AsRawFd;
|
use std::os::unix::io::AsRawFd;
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
|
|
||||||
use crate::try_block;
|
use crate::try_block;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//! A set of macros for I/O handling. These provide for `std::io::Error` what `failure` provides
|
//! A set of macros for I/O handling. These provide for `std::io::Error` what `anyhow` provides
|
||||||
//! for `failure::Error.`
|
//! for `anyhow::Error.`
|
||||||
|
|
||||||
/// Like failure's `format_err` but producing a `std::io::Error`.
|
/// Like anyhow's `format_err` but producing a `std::io::Error`.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! io_format_err {
|
macro_rules! io_format_err {
|
||||||
($($msg:tt)+) => {
|
($($msg:tt)+) => {
|
||||||
@ -19,7 +19,7 @@ macro_rules! io_bail_last {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Like failure's `bail` but producing a `std::io::Error`.
|
/// Like anyhow's `bail` but producing a `std::io::Error`.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! io_bail {
|
macro_rules! io_bail {
|
||||||
($($msg:tt)+) => {{
|
($($msg:tt)+) => {{
|
||||||
|
@ -6,7 +6,7 @@ use std::io::{BufRead, BufReader, Write};
|
|||||||
use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};
|
use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use failure::{bail, format_err, Error};
|
use anyhow::{bail, format_err, Error};
|
||||||
use nix::errno::Errno;
|
use nix::errno::Errno;
|
||||||
use nix::fcntl::OFlag;
|
use nix::fcntl::OFlag;
|
||||||
use nix::sys::stat;
|
use nix::sys::stat;
|
||||||
@ -242,7 +242,7 @@ pub fn create_dir<P: AsRef<Path>>(path: P, options: CreateOptions) -> Result<(),
|
|||||||
/// # use nix::sys::stat::Mode;
|
/// # use nix::sys::stat::Mode;
|
||||||
/// # use nix::unistd::{Gid, Uid};
|
/// # use nix::unistd::{Gid, Uid};
|
||||||
/// # use proxmox::tools::fs::{create_path, CreateOptions};
|
/// # use proxmox::tools::fs::{create_path, CreateOptions};
|
||||||
/// # fn code() -> Result<(), failure::Error> {
|
/// # fn code() -> Result<(), anyhow::Error> {
|
||||||
/// create_path(
|
/// create_path(
|
||||||
/// "/var/lib/mytool/wwwdata",
|
/// "/var/lib/mytool/wwwdata",
|
||||||
/// None,
|
/// None,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
//! This is a general utility crate used by all our rust projects.
|
//! This is a general utility crate used by all our rust projects.
|
||||||
|
|
||||||
use failure::*;
|
use anyhow::*;
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
|
|
||||||
pub mod as_any;
|
pub mod as_any;
|
||||||
@ -63,7 +63,7 @@ macro_rules! static_assert_size {
|
|||||||
/// #### Example:
|
/// #### Example:
|
||||||
/// ```
|
/// ```
|
||||||
/// # use proxmox::try_block;
|
/// # use proxmox::try_block;
|
||||||
/// # use failure::*;
|
/// # use anyhow::*;
|
||||||
/// # let some_condition = false;
|
/// # let some_condition = false;
|
||||||
/// let result = try_block!({
|
/// let result = try_block!({
|
||||||
/// if (some_condition) {
|
/// if (some_condition) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
//! Some parsing utilities.
|
//! Some parsing utilities.
|
||||||
|
|
||||||
use failure::{bail, Error};
|
use anyhow::{bail, Error};
|
||||||
|
|
||||||
/// Parse a hexadecimal digit into a byte.
|
/// Parse a hexadecimal digit into a byte.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use std::borrow::{Borrow, BorrowMut};
|
use std::borrow::{Borrow, BorrowMut};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use failure::{bail, Error};
|
use anyhow::{bail, Error};
|
||||||
|
|
||||||
use crate::tools::parse::hex_nibble;
|
use crate::tools::parse::hex_nibble;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user