aerro 0.2.0

Cross-service gRPC error framework for Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! `TryFromStatus` — recover a typed failure from a `tonic::Status`.

use tonic::Status;

use crate::wire::decode::decode;
use crate::{Aerro, RemoteError, ServiceFailure};

pub trait TryFromStatus<E: Aerro>: Sized {
    fn try_from_status(status: Status) -> Result<ServiceFailure<E>, RemoteError>;
}

impl<E: Aerro> TryFromStatus<E> for ServiceFailure<E> {
    fn try_from_status(status: Status) -> Result<ServiceFailure<E>, RemoteError> {
        decode::<E>(status)
    }
}