use super::*;
define_derive_deftly! {
IntoIoError for struct, expect items:
impl From<$ttype> for io::Error {
fn from(us: $ttype) -> io::Error {
io::Error::new(${tmeta(io_kind) as expr}, us)
}
}
}
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[non_exhaustive]
#[derive(Error)]
#[error("unexpected null pointer from getpw* or getgr*")]
#[derive(Deftly)]
#[derive_deftly(IntoIoError)]
#[deftly(io_kind = "Other")]
pub struct UnexpectedNullPointerError;
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[non_exhaustive]
#[derive(Error)]
#[error(
"getpw*_r or getgr*_r or getgroups required unreasonably large buffer"
)]
#[derive(Deftly)]
#[derive_deftly(IntoIoError)]
#[deftly(io_kind = "OutOfMemory")]
pub struct TooLargeBufferRequiredError;
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[non_exhaustive]
#[derive(Error)]
#[error(
"non-UTF-8 data in system password or group database, in field {field}"
)]
#[derive(Deftly)]
#[derive_deftly(IntoIoError)]
#[deftly(io_kind = "InvalidData")]
pub struct NonUtf8Error {
pub(crate) field: Box<str>,
}
impl NonUtf8Error {
pub fn field(&self) -> &str {
&self.field
}
}
pub type NulError = std::ffi::NulError;