use internet2::presentation;
use microservices::rpc;
use crate::{FailureCode};
#[derive(Clone, Eq, PartialEq, Hash, Debug, Display, From)]
#[derive(Api)]
#[api(encoding = "strict")]
#[non_exhaustive]
pub enum Reply {
#[api(type = 0x0001)]
#[display("success({0})")]
Success,
#[api(type = 0x0000)]
#[display("failure({0:#})")]
#[from]
Failure(rpc::Failure<FailureCode>),
}
impl rpc::Reply for Reply {}
impl From<presentation::Error> for Reply {
fn from(err: presentation::Error) -> Self {
Reply::Failure(rpc::Failure {
code: rpc::FailureCode::Presentation,
info: format!("{}", err),
})
}
}