use facet::{Facet, Shape};
use facet_error as error;
use facet_toml::TomlDeError;
#[repr(u8)]
#[derive(Facet, Debug)]
#[facet(derive(Error))]
pub enum HierConfError {
#[facet(error::from)]
Io(#[facet(opaque)] std::io::Error),
TomlDeserialize(String),
MissingAttribute(String),
AttributeShapeMismatch {
#[facet(opaque)]
shape: &'static Shape,
namespace: Option<&'static str>,
key: &'static str,
attr: &'static str,
},
NoConfigFiles {
locations: Vec<camino::Utf8PathBuf>,
},
}
impl<'input> From<TomlDeError<'input>> for HierConfError {
fn from(err: TomlDeError<'input>) -> Self {
HierConfError::TomlDeserialize(err.to_string())
}
}