use thiserror::Error;
#[derive(Debug, Error)]
pub enum ContentError {
#[error("coordinator runtime is not initialized")]
RuntimeNotInitialized,
#[error("substrate error: {0}")]
Substrate(String),
#[error("transaction failed: {0}")]
Transaction(String),
#[error("unknown polkadot account: {0}")]
UnknownAccount(String),
#[error("ipfs error: {0}")]
Ipfs(String),
#[error("image error: {0}")]
Image(String),
#[error("indexer error: {0}")]
Indexer(String),
#[error("content error: {0}")]
Content(String),
#[error("invalid argument: {0}")]
InvalidArgument(String),
#[error("cid error: {0}")]
Cid(String),
#[error("account error: {0}")]
Account(String),
#[error("content error: {0}")]
Other(String),
}
impl ContentError {
pub fn other(msg: impl Into<String>) -> Self {
ContentError::Other(msg.into())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn messages_render() {
assert_eq!(
ContentError::RuntimeNotInitialized.to_string(),
"coordinator runtime is not initialized"
);
assert!(
ContentError::Substrate("boom".into())
.to_string()
.contains("boom")
);
assert!(
ContentError::Account("missing".into())
.to_string()
.contains("missing")
);
}
#[test]
fn other_constructor() {
assert_eq!(ContentError::other("x").to_string(), "content error: x");
}
}