use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Error)]
pub enum Error {
#[error("unknown {kind} `{id}`")]
UnknownReference {
kind: &'static str,
id: String,
},
#[error("relationship `{name}` has {found} endpoint(s); at least 2 required")]
InsufficientEndpoints {
name: String,
found: usize,
},
#[error("invalid specialization: {0}")]
InvalidSpecialization(String),
#[error("model validation failed with {0} error(s)")]
Validation(usize),
#[error("conversion cancelled")]
Cancelled,
#[error("internal error: {0}")]
Internal(String),
}