sova-grpc 0.1.2

Connect-JSON unary RPC client (+ optional server) for Sova
Documentation
//! gRPC-style errors (Connect-JSON unary).

use thiserror::Error;

#[derive(Debug, Error)]
pub enum GrpcError {
    #[error("grpc transport: {0}")]
    Transport(String),
    #[error("grpc http {status}: {body}")]
    Http { status: u16, body: String },
    #[error("grpc decode: {0}")]
    Decode(String),
    #[error("grpc method not found: {0}")]
    NotFound(String),
    #[error("grpc handler: {0}")]
    Handler(String),
    #[error("grpc rpc {code}: {message}")]
    Rpc { code: String, message: String },
    #[error("grpc plugin not installed")]
    NotInstalled,
}

impl From<GrpcError> for sova_core::Error {
    fn from(value: GrpcError) -> Self {
        sova_core::Error::Internal(value.to_string())
    }
}