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