xref: /tonic/tonic-reflection/src/server/mod.rs (revision c8754f3a)
1 pub use crate::pb::v1::server_reflection_server::{ServerReflection, ServerReflectionServer};
2 
3 use prost::DecodeError;
4 use std::fmt::{Display, Formatter};
5 
6 mod v1;
7 
8 pub use v1::Builder;
9 
10 /// Represents an error in the construction of a gRPC Reflection Service.
11 #[derive(Debug)]
12 pub enum Error {
13     /// An error was encountered decoding a `prost_types::FileDescriptorSet` from a buffer.
14     DecodeError(prost::DecodeError),
15     /// An invalid `prost_types::FileDescriptorProto` was encountered.
16     InvalidFileDescriptorSet(String),
17 }
18 
19 impl From<DecodeError> for Error {
20     fn from(e: DecodeError) -> Self {
21         Error::DecodeError(e)
22     }
23 }
24 
25 impl std::error::Error for Error {}
26 
27 impl Display for Error {
28     fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
29         match self {
30             Error::DecodeError(_) => f.write_str("error decoding FileDescriptorSet from buffer"),
31             Error::InvalidFileDescriptorSet(s) => {
32                 write!(f, "invalid FileDescriptorSet - {}", s)
33             }
34         }
35     }
36 }
37