Spaces:
Build error
Build error
// This file is @generated by prost-build. | |
pub struct HealthCheckRequest { | |
pub service: ::prost::alloc::string::String, | |
} | |
pub struct HealthCheckResponse { | |
pub status: i32, | |
} | |
/// Nested message and enum types in `HealthCheckResponse`. | |
pub mod health_check_response { | |
pub enum ServingStatus { | |
Unknown = 0, | |
Serving = 1, | |
NotServing = 2, | |
/// Used only by the Watch method. | |
ServiceUnknown = 3, | |
} | |
impl ServingStatus { | |
/// String value of the enum field names used in the ProtoBuf definition. | |
/// | |
/// The values are not transformed in any way and thus are considered stable | |
/// (if the ProtoBuf definition does not change) and safe for programmatic use. | |
pub fn as_str_name(&self) -> &'static str { | |
match self { | |
ServingStatus::Unknown => "UNKNOWN", | |
ServingStatus::Serving => "SERVING", | |
ServingStatus::NotServing => "NOT_SERVING", | |
ServingStatus::ServiceUnknown => "SERVICE_UNKNOWN", | |
} | |
} | |
/// Creates an enum from field names used in the ProtoBuf definition. | |
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> { | |
match value { | |
"UNKNOWN" => Some(Self::Unknown), | |
"SERVING" => Some(Self::Serving), | |
"NOT_SERVING" => Some(Self::NotServing), | |
"SERVICE_UNKNOWN" => Some(Self::ServiceUnknown), | |
_ => None, | |
} | |
} | |
} | |
} | |
/// Generated client implementations. | |
pub mod health_client { | |
use tonic::codegen::*; | |
use tonic::codegen::http::Uri; | |
pub struct HealthClient<T> { | |
inner: tonic::client::Grpc<T>, | |
} | |
impl HealthClient<tonic::transport::Channel> { | |
/// Attempt to create a new client by connecting to a given endpoint. | |
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error> | |
where | |
D: TryInto<tonic::transport::Endpoint>, | |
D::Error: Into<StdError>, | |
{ | |
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; | |
Ok(Self::new(conn)) | |
} | |
} | |
impl<T> HealthClient<T> | |
where | |
T: tonic::client::GrpcService<tonic::body::BoxBody>, | |
T::Error: Into<StdError>, | |
T::ResponseBody: Body<Data = Bytes> + Send + 'static, | |
<T::ResponseBody as Body>::Error: Into<StdError> + Send, | |
{ | |
pub fn new(inner: T) -> Self { | |
let inner = tonic::client::Grpc::new(inner); | |
Self { inner } | |
} | |
pub fn with_origin(inner: T, origin: Uri) -> Self { | |
let inner = tonic::client::Grpc::with_origin(inner, origin); | |
Self { inner } | |
} | |
pub fn with_interceptor<F>( | |
inner: T, | |
interceptor: F, | |
) -> HealthClient<InterceptedService<T, F>> | |
where | |
F: tonic::service::Interceptor, | |
T::ResponseBody: Default, | |
T: tonic::codegen::Service< | |
http::Request<tonic::body::BoxBody>, | |
Response = http::Response< | |
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody, | |
>, | |
>, | |
<T as tonic::codegen::Service< | |
http::Request<tonic::body::BoxBody>, | |
>>::Error: Into<StdError> + Send + Sync, | |
{ | |
HealthClient::new(InterceptedService::new(inner, interceptor)) | |
} | |
/// Compress requests with the given encoding. | |
/// | |
/// This requires the server to support it otherwise it might respond with an | |
/// error. | |
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { | |
self.inner = self.inner.send_compressed(encoding); | |
self | |
} | |
/// Enable decompressing responses. | |
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { | |
self.inner = self.inner.accept_compressed(encoding); | |
self | |
} | |
/// Limits the maximum size of a decoded message. | |
/// | |
/// Default: `4MB` | |
pub fn max_decoding_message_size(mut self, limit: usize) -> Self { | |
self.inner = self.inner.max_decoding_message_size(limit); | |
self | |
} | |
/// Limits the maximum size of an encoded message. | |
/// | |
/// Default: `usize::MAX` | |
pub fn max_encoding_message_size(mut self, limit: usize) -> Self { | |
self.inner = self.inner.max_encoding_message_size(limit); | |
self | |
} | |
pub async fn check( | |
&mut self, | |
request: impl tonic::IntoRequest<super::HealthCheckRequest>, | |
) -> std::result::Result< | |
tonic::Response<super::HealthCheckResponse>, | |
tonic::Status, | |
> { | |
self.inner | |
.ready() | |
.await | |
.map_err(|e| { | |
tonic::Status::new( | |
tonic::Code::Unknown, | |
format!("Service was not ready: {}", e.into()), | |
) | |
})?; | |
let codec = tonic::codec::ProstCodec::default(); | |
let path = http::uri::PathAndQuery::from_static( | |
"/grpc.health.v1.Health/Check", | |
); | |
let mut req = request.into_request(); | |
req.extensions_mut() | |
.insert(GrpcMethod::new("grpc.health.v1.Health", "Check")); | |
self.inner.unary(req, path, codec).await | |
} | |
} | |
} | |
/// Generated server implementations. | |
pub mod health_server { | |
use tonic::codegen::*; | |
/// Generated trait containing gRPC methods that should be implemented for use with HealthServer. | |
pub trait Health: Send + Sync + 'static { | |
async fn check( | |
&self, | |
request: tonic::Request<super::HealthCheckRequest>, | |
) -> std::result::Result< | |
tonic::Response<super::HealthCheckResponse>, | |
tonic::Status, | |
>; | |
} | |
pub struct HealthServer<T: Health> { | |
inner: _Inner<T>, | |
accept_compression_encodings: EnabledCompressionEncodings, | |
send_compression_encodings: EnabledCompressionEncodings, | |
max_decoding_message_size: Option<usize>, | |
max_encoding_message_size: Option<usize>, | |
} | |
struct _Inner<T>(Arc<T>); | |
impl<T: Health> HealthServer<T> { | |
pub fn new(inner: T) -> Self { | |
Self::from_arc(Arc::new(inner)) | |
} | |
pub fn from_arc(inner: Arc<T>) -> Self { | |
let inner = _Inner(inner); | |
Self { | |
inner, | |
accept_compression_encodings: Default::default(), | |
send_compression_encodings: Default::default(), | |
max_decoding_message_size: None, | |
max_encoding_message_size: None, | |
} | |
} | |
pub fn with_interceptor<F>( | |
inner: T, | |
interceptor: F, | |
) -> InterceptedService<Self, F> | |
where | |
F: tonic::service::Interceptor, | |
{ | |
InterceptedService::new(Self::new(inner), interceptor) | |
} | |
/// Enable decompressing requests with the given encoding. | |
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { | |
self.accept_compression_encodings.enable(encoding); | |
self | |
} | |
/// Compress responses with the given encoding, if the client supports it. | |
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { | |
self.send_compression_encodings.enable(encoding); | |
self | |
} | |
/// Limits the maximum size of a decoded message. | |
/// | |
/// Default: `4MB` | |
pub fn max_decoding_message_size(mut self, limit: usize) -> Self { | |
self.max_decoding_message_size = Some(limit); | |
self | |
} | |
/// Limits the maximum size of an encoded message. | |
/// | |
/// Default: `usize::MAX` | |
pub fn max_encoding_message_size(mut self, limit: usize) -> Self { | |
self.max_encoding_message_size = Some(limit); | |
self | |
} | |
} | |
impl<T, B> tonic::codegen::Service<http::Request<B>> for HealthServer<T> | |
where | |
T: Health, | |
B: Body + Send + 'static, | |
B::Error: Into<StdError> + Send + 'static, | |
{ | |
type Response = http::Response<tonic::body::BoxBody>; | |
type Error = std::convert::Infallible; | |
type Future = BoxFuture<Self::Response, Self::Error>; | |
fn poll_ready( | |
&mut self, | |
_cx: &mut Context<'_>, | |
) -> Poll<std::result::Result<(), Self::Error>> { | |
Poll::Ready(Ok(())) | |
} | |
fn call(&mut self, req: http::Request<B>) -> Self::Future { | |
let inner = self.inner.clone(); | |
match req.uri().path() { | |
"/grpc.health.v1.Health/Check" => { | |
struct CheckSvc<T: Health>(pub Arc<T>); | |
impl< | |
T: Health, | |
> tonic::server::UnaryService<super::HealthCheckRequest> | |
for CheckSvc<T> { | |
type Response = super::HealthCheckResponse; | |
type Future = BoxFuture< | |
tonic::Response<Self::Response>, | |
tonic::Status, | |
>; | |
fn call( | |
&mut self, | |
request: tonic::Request<super::HealthCheckRequest>, | |
) -> Self::Future { | |
let inner = Arc::clone(&self.0); | |
let fut = async move { | |
<T as Health>::check(&inner, request).await | |
}; | |
Box::pin(fut) | |
} | |
} | |
let accept_compression_encodings = self.accept_compression_encodings; | |
let send_compression_encodings = self.send_compression_encodings; | |
let max_decoding_message_size = self.max_decoding_message_size; | |
let max_encoding_message_size = self.max_encoding_message_size; | |
let inner = self.inner.clone(); | |
let fut = async move { | |
let inner = inner.0; | |
let method = CheckSvc(inner); | |
let codec = tonic::codec::ProstCodec::default(); | |
let mut grpc = tonic::server::Grpc::new(codec) | |
.apply_compression_config( | |
accept_compression_encodings, | |
send_compression_encodings, | |
) | |
.apply_max_message_size_config( | |
max_decoding_message_size, | |
max_encoding_message_size, | |
); | |
let res = grpc.unary(method, req).await; | |
Ok(res) | |
}; | |
Box::pin(fut) | |
} | |
_ => { | |
Box::pin(async move { | |
Ok( | |
http::Response::builder() | |
.status(200) | |
.header("grpc-status", "12") | |
.header("content-type", "application/grpc") | |
.body(empty_body()) | |
.unwrap(), | |
) | |
}) | |
} | |
} | |
} | |
} | |
impl<T: Health> Clone for HealthServer<T> { | |
fn clone(&self) -> Self { | |
let inner = self.inner.clone(); | |
Self { | |
inner, | |
accept_compression_encodings: self.accept_compression_encodings, | |
send_compression_encodings: self.send_compression_encodings, | |
max_decoding_message_size: self.max_decoding_message_size, | |
max_encoding_message_size: self.max_encoding_message_size, | |
} | |
} | |
} | |
impl<T: Health> Clone for _Inner<T> { | |
fn clone(&self) -> Self { | |
Self(Arc::clone(&self.0)) | |
} | |
} | |
impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> { | |
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | |
write!(f, "{:?}", self.0) | |
} | |
} | |
impl<T: Health> tonic::server::NamedService for HealthServer<T> { | |
const NAME: &'static str = "grpc.health.v1.Health"; | |
} | |
} | |