1#[derive(Debug, Error)]
5pub enum Error {
6 #[error(transparent)]
7 YamlError(#[from] serde_yaml::Error),
8 #[error(transparent)]
9 JsonError(#[from] serde_json::Error),
10 #[error(transparent)]
11 IOError(#[from] std::io::Error),
12 #[error(transparent)]
13 OboSyntaxError(#[from] fastobo::error::SyntaxError),
14 #[error("{0}: {1:?}")]
15 InvalidBoolean(#[source] std::str::ParseBoolError, String),
16 #[error("invalid synonym type: {0:?}")]
17 InvalidSynonymType(String),
18 #[error("invalid term clause: {0:?}")]
19 InvalidTermClause(String),
20 #[error("invalid instance clause: {0:?}")]
21 InvalidInstanceClause(String),
22}
23
24pub type Result<T> = std::result::Result<T, Error>;
26
27impl Error {
28 pub fn invalid_instance_clause<S: Into<String>>(clause: S) -> Self {
30 Error::InvalidInstanceClause(clause.into())
31 }
32
33 pub fn invalid_term_clause<S: Into<String>>(clause: S) -> Self {
35 Error::InvalidTermClause(clause.into())
36 }
37}