Compare commits

...

2 commits

6 changed files with 9 additions and 46 deletions

View file

@ -119,7 +119,6 @@ impl Into<NixideResult<()>> for &ErrorContext {
}, },
sys::NixErr::Unknown => NixError::Unknown, sys::NixErr::Unknown => NixError::Unknown,
err => NixError::Undocumented(err),
}; };
Err(new_nixide_error!(NixError, inner, err, msg)) Err(new_nixide_error!(NixError, inner, err, msg))

View file

@ -86,7 +86,7 @@ pub(crate) use new_nixide_error;
macro_rules! retrace_nixide_error { macro_rules! retrace_nixide_error {
($x:expr) => {{ crate::errors::new_nixide_error!($x.err) }}; ($x:expr) => {{ crate::errors::new_nixide_error!($x.err) }};
} }
pub(crate) use retrace_nixide_error; // pub(crate) use retrace_nixide_error;
impl std::error::Error for NixideError {} impl std::error::Error for NixideError {}

View file

@ -4,6 +4,6 @@ mod context;
mod nix_error; mod nix_error;
pub(crate) use context::ErrorContext; pub(crate) use context::ErrorContext;
pub(crate) use error::{new_nixide_error, retrace_nixide_error}; pub(crate) use error::new_nixide_error;
pub use error::{NixideError, NixideResult}; pub use error::{NixideError, NixideResult};
pub use nix_error::NixError; pub use nix_error::NixError;

View file

@ -15,6 +15,7 @@ use crate::{NixideResult, Store};
/// ///
/// This provides the main interface for evaluating Nix expressions /// This provides the main interface for evaluating Nix expressions
/// and creating values. /// and creating values.
#[derive(Clone)]
pub struct EvalState { pub struct EvalState {
inner: Rc<RefCell<NonNull<sys::EvalState>>>, inner: Rc<RefCell<NonNull<sys::EvalState>>>,

View file

@ -106,8 +106,8 @@ impl EvalStateBuilder {
} }
pub fn set_lookup_path<P: AsRef<str>>(self, paths: Vec<P>) -> NixideResult<Self> { pub fn set_lookup_path<P: AsRef<str>>(self, paths: Vec<P>) -> NixideResult<Self> {
let paths_len = paths.len(); // let paths_len = paths.len();
let paths_capacity = paths.capacity(); // let paths_capacity = paths.capacity();
// XXX: TODO: use the `AsCArray` trait instead // XXX: TODO: use the `AsCArray` trait instead
let mut ptrs: Vec<*const c_char> = paths let mut ptrs: Vec<*const c_char> = paths

View file

@ -1,46 +1,9 @@
use crate::errors::ErrorContext; use crate::errors::ErrorContext;
use crate::sys; use crate::sys;
use crate::util::wrap;
use crate::util::wrappers::AsInnerPtr as _; use crate::util::wrappers::AsInnerPtr as _;
use crate::util::{panic_issue_call_failed, wrap};
/// Verbosity level pub use sys::NixVerbosity;
///
/// # NOTE
///
/// This should be kept in sync with the C++ implementation (nix::Verbosity)
///
#[derive(Debug, Clone, Copy)]
pub enum NixVerbosity {
Error,
Warn,
Notice,
Info,
Talkative,
Chatty,
Debug,
Vomit,
}
impl From<sys::NixVerbosity> for NixVerbosity {
fn from(level: sys::NixVerbosity) -> NixVerbosity {
match level {
sys::NixVerbosity::Error => NixVerbosity::Error,
sys::NixVerbosity::Warn => NixVerbosity::Warn,
sys::NixVerbosity::Notice => NixVerbosity::Notice,
sys::NixVerbosity::Info => NixVerbosity::Info,
sys::NixVerbosity::Talkative => NixVerbosity::Talkative,
sys::NixVerbosity::Chatty => NixVerbosity::Chatty,
sys::NixVerbosity::Debug => NixVerbosity::Debug,
sys::NixVerbosity::Vomit => NixVerbosity::Vomit,
}
}
}
impl Into<sys::NixVerbosity> for NixVerbosity {
fn into(self) -> sys::NixVerbosity {
self as sys::NixVerbosity
}
}
/// Sets the verbosity level. /// Sets the verbosity level.
/// ///
@ -67,7 +30,7 @@ impl Into<sys::NixVerbosity> for NixVerbosity {
/// ///
pub fn set_verbosity(level: NixVerbosity) { pub fn set_verbosity(level: NixVerbosity) {
wrap::nix_fn!(|ctx: &ErrorContext| unsafe { wrap::nix_fn!(|ctx: &ErrorContext| unsafe {
sys::nix_set_verbosity(ctx.as_ptr(), level.into()); sys::nix_set_verbosity(ctx.as_ptr(), level);
}) })
.unwrap_or_else(|err| panic_issue_call_failed!("{}", err)) .unwrap()
} }