1#[cfg(feature = "grpc")]
4pub mod query_client {
5 #![allow(
6 unused_variables,
7 dead_code,
8 missing_docs,
9 clippy::wildcard_imports,
10 clippy::let_unit_value
11 )]
12 use tonic::codegen::http::Uri;
13 use tonic::codegen::*;
14 #[derive(Debug, Clone)]
15 pub struct QueryClient<T> {
16 inner: tonic::client::Grpc<T>,
17 }
18 #[cfg(feature = "grpc-transport")]
19 impl QueryClient<tonic::transport::Channel> {
20 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
22 where
23 D: TryInto<tonic::transport::Endpoint>,
24 D::Error: Into<StdError>,
25 {
26 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
27 Ok(Self::new(conn))
28 }
29 }
30 impl<T> QueryClient<T>
31 where
32 T: tonic::client::GrpcService<tonic::body::Body>,
33 T::Error: Into<StdError>,
34 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
35 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
36 {
37 pub fn new(inner: T) -> Self {
38 let inner = tonic::client::Grpc::new(inner);
39 Self { inner }
40 }
41 pub fn with_origin(inner: T, origin: Uri) -> Self {
42 let inner = tonic::client::Grpc::with_origin(inner, origin);
43 Self { inner }
44 }
45 pub fn with_interceptor<F>(
46 inner: T,
47 interceptor: F,
48 ) -> QueryClient<InterceptedService<T, F>>
49 where
50 F: tonic::service::Interceptor,
51 T::ResponseBody: Default,
52 T: tonic::codegen::Service<
53 http::Request<tonic::body::Body>,
54 Response = http::Response<
55 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
56 >,
57 >,
58 <T as tonic::codegen::Service<http::Request<tonic::body::Body>>>::Error:
59 Into<StdError> + std::marker::Send + std::marker::Sync,
60 {
61 QueryClient::new(InterceptedService::new(inner, interceptor))
62 }
63 #[must_use]
68 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
69 self.inner = self.inner.send_compressed(encoding);
70 self
71 }
72 #[must_use]
74 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
75 self.inner = self.inner.accept_compressed(encoding);
76 self
77 }
78 #[must_use]
82 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
83 self.inner = self.inner.max_decoding_message_size(limit);
84 self
85 }
86 #[must_use]
90 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
91 self.inner = self.inner.max_encoding_message_size(limit);
92 self
93 }
94 pub async fn current_plan(
95 &mut self,
96 request: impl tonic::IntoRequest<super::QueryCurrentPlanRequest>,
97 ) -> core::result::Result<tonic::Response<super::QueryCurrentPlanResponse>, tonic::Status>
98 {
99 self.inner.ready().await.map_err(|e| {
100 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
101 })?;
102 let codec = tonic::codec::ProstCodec::default();
103 let path =
104 http::uri::PathAndQuery::from_static("/cosmos.upgrade.v1beta1.Query/CurrentPlan");
105 let mut req = request.into_request();
106 req.extensions_mut().insert(GrpcMethod::new(
107 "cosmos.upgrade.v1beta1.Query",
108 "CurrentPlan",
109 ));
110 self.inner.unary(req, path, codec).await
111 }
112 pub async fn applied_plan(
113 &mut self,
114 request: impl tonic::IntoRequest<super::QueryAppliedPlanRequest>,
115 ) -> core::result::Result<tonic::Response<super::QueryAppliedPlanResponse>, tonic::Status>
116 {
117 self.inner.ready().await.map_err(|e| {
118 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
119 })?;
120 let codec = tonic::codec::ProstCodec::default();
121 let path =
122 http::uri::PathAndQuery::from_static("/cosmos.upgrade.v1beta1.Query/AppliedPlan");
123 let mut req = request.into_request();
124 req.extensions_mut().insert(GrpcMethod::new(
125 "cosmos.upgrade.v1beta1.Query",
126 "AppliedPlan",
127 ));
128 self.inner.unary(req, path, codec).await
129 }
130 pub async fn upgraded_consensus_state(
131 &mut self,
132 request: impl tonic::IntoRequest<super::QueryUpgradedConsensusStateRequest>,
133 ) -> core::result::Result<
134 tonic::Response<super::QueryUpgradedConsensusStateResponse>,
135 tonic::Status,
136 > {
137 self.inner.ready().await.map_err(|e| {
138 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
139 })?;
140 let codec = tonic::codec::ProstCodec::default();
141 let path = http::uri::PathAndQuery::from_static(
142 "/cosmos.upgrade.v1beta1.Query/UpgradedConsensusState",
143 );
144 let mut req = request.into_request();
145 req.extensions_mut().insert(GrpcMethod::new(
146 "cosmos.upgrade.v1beta1.Query",
147 "UpgradedConsensusState",
148 ));
149 self.inner.unary(req, path, codec).await
150 }
151 pub async fn module_versions(
152 &mut self,
153 request: impl tonic::IntoRequest<super::QueryModuleVersionsRequest>,
154 ) -> core::result::Result<tonic::Response<super::QueryModuleVersionsResponse>, tonic::Status>
155 {
156 self.inner.ready().await.map_err(|e| {
157 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
158 })?;
159 let codec = tonic::codec::ProstCodec::default();
160 let path = http::uri::PathAndQuery::from_static(
161 "/cosmos.upgrade.v1beta1.Query/ModuleVersions",
162 );
163 let mut req = request.into_request();
164 req.extensions_mut().insert(GrpcMethod::new(
165 "cosmos.upgrade.v1beta1.Query",
166 "ModuleVersions",
167 ));
168 self.inner.unary(req, path, codec).await
169 }
170 pub async fn authority(
171 &mut self,
172 request: impl tonic::IntoRequest<super::QueryAuthorityRequest>,
173 ) -> core::result::Result<tonic::Response<super::QueryAuthorityResponse>, tonic::Status>
174 {
175 self.inner.ready().await.map_err(|e| {
176 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
177 })?;
178 let codec = tonic::codec::ProstCodec::default();
179 let path =
180 http::uri::PathAndQuery::from_static("/cosmos.upgrade.v1beta1.Query/Authority");
181 let mut req = request.into_request();
182 req.extensions_mut()
183 .insert(GrpcMethod::new("cosmos.upgrade.v1beta1.Query", "Authority"));
184 self.inner.unary(req, path, codec).await
185 }
186 }
187}
188#[cfg(feature = "grpc")]
190pub mod query_server {
191 #![allow(
192 unused_variables,
193 dead_code,
194 missing_docs,
195 clippy::wildcard_imports,
196 clippy::let_unit_value
197 )]
198 use tonic::codegen::*;
199 #[async_trait]
201 pub trait Query: std::marker::Send + std::marker::Sync + 'static {
202 async fn current_plan(
203 &self,
204 request: tonic::Request<super::QueryCurrentPlanRequest>,
205 ) -> core::result::Result<tonic::Response<super::QueryCurrentPlanResponse>, tonic::Status>;
206 async fn applied_plan(
207 &self,
208 request: tonic::Request<super::QueryAppliedPlanRequest>,
209 ) -> core::result::Result<tonic::Response<super::QueryAppliedPlanResponse>, tonic::Status>;
210 async fn upgraded_consensus_state(
211 &self,
212 request: tonic::Request<super::QueryUpgradedConsensusStateRequest>,
213 ) -> core::result::Result<
214 tonic::Response<super::QueryUpgradedConsensusStateResponse>,
215 tonic::Status,
216 >;
217 async fn module_versions(
218 &self,
219 request: tonic::Request<super::QueryModuleVersionsRequest>,
220 ) -> core::result::Result<tonic::Response<super::QueryModuleVersionsResponse>, tonic::Status>;
221 async fn authority(
222 &self,
223 request: tonic::Request<super::QueryAuthorityRequest>,
224 ) -> core::result::Result<tonic::Response<super::QueryAuthorityResponse>, tonic::Status>;
225 }
226 #[derive(Debug)]
227 pub struct QueryServer<T> {
228 inner: Arc<T>,
229 accept_compression_encodings: EnabledCompressionEncodings,
230 send_compression_encodings: EnabledCompressionEncodings,
231 max_decoding_message_size: Option<usize>,
232 max_encoding_message_size: Option<usize>,
233 }
234 impl<T> QueryServer<T> {
235 pub fn new(inner: T) -> Self {
236 Self::from_arc(Arc::new(inner))
237 }
238 pub fn from_arc(inner: Arc<T>) -> Self {
239 Self {
240 inner,
241 accept_compression_encodings: Default::default(),
242 send_compression_encodings: Default::default(),
243 max_decoding_message_size: None,
244 max_encoding_message_size: None,
245 }
246 }
247 pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
248 where
249 F: tonic::service::Interceptor,
250 {
251 InterceptedService::new(Self::new(inner), interceptor)
252 }
253 #[must_use]
255 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
256 self.accept_compression_encodings.enable(encoding);
257 self
258 }
259 #[must_use]
261 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
262 self.send_compression_encodings.enable(encoding);
263 self
264 }
265 #[must_use]
269 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
270 self.max_decoding_message_size = Some(limit);
271 self
272 }
273 #[must_use]
277 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
278 self.max_encoding_message_size = Some(limit);
279 self
280 }
281 }
282 impl<T, B> tonic::codegen::Service<http::Request<B>> for QueryServer<T>
283 where
284 T: Query,
285 B: Body + std::marker::Send + 'static,
286 B::Error: Into<StdError> + std::marker::Send + 'static,
287 {
288 type Response = http::Response<tonic::body::Body>;
289 type Error = std::convert::Infallible;
290 type Future = BoxFuture<Self::Response, Self::Error>;
291 fn poll_ready(
292 &mut self,
293 _cx: &mut Context<'_>,
294 ) -> Poll<core::result::Result<(), Self::Error>> {
295 Poll::Ready(Ok(()))
296 }
297 fn call(&mut self, req: http::Request<B>) -> Self::Future {
298 match req.uri().path() {
299 "/cosmos.upgrade.v1beta1.Query/CurrentPlan" => {
300 #[allow(non_camel_case_types)]
301 struct CurrentPlanSvc<T: Query>(pub Arc<T>);
302 impl<T: Query> tonic::server::UnaryService<super::QueryCurrentPlanRequest> for CurrentPlanSvc<T> {
303 type Response = super::QueryCurrentPlanResponse;
304 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
305 fn call(
306 &mut self,
307 request: tonic::Request<super::QueryCurrentPlanRequest>,
308 ) -> Self::Future {
309 let inner = Arc::clone(&self.0);
310 let fut =
311 async move { <T as Query>::current_plan(&inner, request).await };
312 Box::pin(fut)
313 }
314 }
315 let accept_compression_encodings = self.accept_compression_encodings;
316 let send_compression_encodings = self.send_compression_encodings;
317 let max_decoding_message_size = self.max_decoding_message_size;
318 let max_encoding_message_size = self.max_encoding_message_size;
319 let inner = self.inner.clone();
320 let fut = async move {
321 let method = CurrentPlanSvc(inner);
322 let codec = tonic::codec::ProstCodec::default();
323 let mut grpc = tonic::server::Grpc::new(codec)
324 .apply_compression_config(
325 accept_compression_encodings,
326 send_compression_encodings,
327 )
328 .apply_max_message_size_config(
329 max_decoding_message_size,
330 max_encoding_message_size,
331 );
332 let res = grpc.unary(method, req).await;
333 Ok(res)
334 };
335 Box::pin(fut)
336 }
337 "/cosmos.upgrade.v1beta1.Query/AppliedPlan" => {
338 #[allow(non_camel_case_types)]
339 struct AppliedPlanSvc<T: Query>(pub Arc<T>);
340 impl<T: Query> tonic::server::UnaryService<super::QueryAppliedPlanRequest> for AppliedPlanSvc<T> {
341 type Response = super::QueryAppliedPlanResponse;
342 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
343 fn call(
344 &mut self,
345 request: tonic::Request<super::QueryAppliedPlanRequest>,
346 ) -> Self::Future {
347 let inner = Arc::clone(&self.0);
348 let fut =
349 async move { <T as Query>::applied_plan(&inner, request).await };
350 Box::pin(fut)
351 }
352 }
353 let accept_compression_encodings = self.accept_compression_encodings;
354 let send_compression_encodings = self.send_compression_encodings;
355 let max_decoding_message_size = self.max_decoding_message_size;
356 let max_encoding_message_size = self.max_encoding_message_size;
357 let inner = self.inner.clone();
358 let fut = async move {
359 let method = AppliedPlanSvc(inner);
360 let codec = tonic::codec::ProstCodec::default();
361 let mut grpc = tonic::server::Grpc::new(codec)
362 .apply_compression_config(
363 accept_compression_encodings,
364 send_compression_encodings,
365 )
366 .apply_max_message_size_config(
367 max_decoding_message_size,
368 max_encoding_message_size,
369 );
370 let res = grpc.unary(method, req).await;
371 Ok(res)
372 };
373 Box::pin(fut)
374 }
375 "/cosmos.upgrade.v1beta1.Query/UpgradedConsensusState" => {
376 #[allow(non_camel_case_types)]
377 struct UpgradedConsensusStateSvc<T: Query>(pub Arc<T>);
378 impl<T: Query>
379 tonic::server::UnaryService<super::QueryUpgradedConsensusStateRequest>
380 for UpgradedConsensusStateSvc<T>
381 {
382 type Response = super::QueryUpgradedConsensusStateResponse;
383 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
384 fn call(
385 &mut self,
386 request: tonic::Request<super::QueryUpgradedConsensusStateRequest>,
387 ) -> Self::Future {
388 let inner = Arc::clone(&self.0);
389 let fut = async move {
390 <T as Query>::upgraded_consensus_state(&inner, request).await
391 };
392 Box::pin(fut)
393 }
394 }
395 let accept_compression_encodings = self.accept_compression_encodings;
396 let send_compression_encodings = self.send_compression_encodings;
397 let max_decoding_message_size = self.max_decoding_message_size;
398 let max_encoding_message_size = self.max_encoding_message_size;
399 let inner = self.inner.clone();
400 let fut = async move {
401 let method = UpgradedConsensusStateSvc(inner);
402 let codec = tonic::codec::ProstCodec::default();
403 let mut grpc = tonic::server::Grpc::new(codec)
404 .apply_compression_config(
405 accept_compression_encodings,
406 send_compression_encodings,
407 )
408 .apply_max_message_size_config(
409 max_decoding_message_size,
410 max_encoding_message_size,
411 );
412 let res = grpc.unary(method, req).await;
413 Ok(res)
414 };
415 Box::pin(fut)
416 }
417 "/cosmos.upgrade.v1beta1.Query/ModuleVersions" => {
418 #[allow(non_camel_case_types)]
419 struct ModuleVersionsSvc<T: Query>(pub Arc<T>);
420 impl<T: Query> tonic::server::UnaryService<super::QueryModuleVersionsRequest>
421 for ModuleVersionsSvc<T>
422 {
423 type Response = super::QueryModuleVersionsResponse;
424 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
425 fn call(
426 &mut self,
427 request: tonic::Request<super::QueryModuleVersionsRequest>,
428 ) -> Self::Future {
429 let inner = Arc::clone(&self.0);
430 let fut =
431 async move { <T as Query>::module_versions(&inner, request).await };
432 Box::pin(fut)
433 }
434 }
435 let accept_compression_encodings = self.accept_compression_encodings;
436 let send_compression_encodings = self.send_compression_encodings;
437 let max_decoding_message_size = self.max_decoding_message_size;
438 let max_encoding_message_size = self.max_encoding_message_size;
439 let inner = self.inner.clone();
440 let fut = async move {
441 let method = ModuleVersionsSvc(inner);
442 let codec = tonic::codec::ProstCodec::default();
443 let mut grpc = tonic::server::Grpc::new(codec)
444 .apply_compression_config(
445 accept_compression_encodings,
446 send_compression_encodings,
447 )
448 .apply_max_message_size_config(
449 max_decoding_message_size,
450 max_encoding_message_size,
451 );
452 let res = grpc.unary(method, req).await;
453 Ok(res)
454 };
455 Box::pin(fut)
456 }
457 "/cosmos.upgrade.v1beta1.Query/Authority" => {
458 #[allow(non_camel_case_types)]
459 struct AuthoritySvc<T: Query>(pub Arc<T>);
460 impl<T: Query> tonic::server::UnaryService<super::QueryAuthorityRequest> for AuthoritySvc<T> {
461 type Response = super::QueryAuthorityResponse;
462 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
463 fn call(
464 &mut self,
465 request: tonic::Request<super::QueryAuthorityRequest>,
466 ) -> Self::Future {
467 let inner = Arc::clone(&self.0);
468 let fut = async move { <T as Query>::authority(&inner, request).await };
469 Box::pin(fut)
470 }
471 }
472 let accept_compression_encodings = self.accept_compression_encodings;
473 let send_compression_encodings = self.send_compression_encodings;
474 let max_decoding_message_size = self.max_decoding_message_size;
475 let max_encoding_message_size = self.max_encoding_message_size;
476 let inner = self.inner.clone();
477 let fut = async move {
478 let method = AuthoritySvc(inner);
479 let codec = tonic::codec::ProstCodec::default();
480 let mut grpc = tonic::server::Grpc::new(codec)
481 .apply_compression_config(
482 accept_compression_encodings,
483 send_compression_encodings,
484 )
485 .apply_max_message_size_config(
486 max_decoding_message_size,
487 max_encoding_message_size,
488 );
489 let res = grpc.unary(method, req).await;
490 Ok(res)
491 };
492 Box::pin(fut)
493 }
494 _ => Box::pin(async move {
495 let mut response = http::Response::new(tonic::body::Body::default());
496 let headers = response.headers_mut();
497 headers.insert(
498 tonic::Status::GRPC_STATUS,
499 (tonic::Code::Unimplemented as i32).into(),
500 );
501 headers.insert(
502 http::header::CONTENT_TYPE,
503 tonic::metadata::GRPC_CONTENT_TYPE,
504 );
505 Ok(response)
506 }),
507 }
508 }
509 }
510 impl<T> Clone for QueryServer<T> {
511 fn clone(&self) -> Self {
512 let inner = self.inner.clone();
513 Self {
514 inner,
515 accept_compression_encodings: self.accept_compression_encodings,
516 send_compression_encodings: self.send_compression_encodings,
517 max_decoding_message_size: self.max_decoding_message_size,
518 max_encoding_message_size: self.max_encoding_message_size,
519 }
520 }
521 }
522 pub const SERVICE_NAME: &str = "cosmos.upgrade.v1beta1.Query";
524 impl<T> tonic::server::NamedService for QueryServer<T> {
525 const NAME: &'static str = SERVICE_NAME;
526 }
527}
528#[cfg(feature = "grpc")]
530pub mod msg_client {
531 #![allow(
532 unused_variables,
533 dead_code,
534 missing_docs,
535 clippy::wildcard_imports,
536 clippy::let_unit_value
537 )]
538 use tonic::codegen::http::Uri;
539 use tonic::codegen::*;
540 #[derive(Debug, Clone)]
541 pub struct MsgClient<T> {
542 inner: tonic::client::Grpc<T>,
543 }
544 #[cfg(feature = "grpc-transport")]
545 impl MsgClient<tonic::transport::Channel> {
546 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
548 where
549 D: TryInto<tonic::transport::Endpoint>,
550 D::Error: Into<StdError>,
551 {
552 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
553 Ok(Self::new(conn))
554 }
555 }
556 impl<T> MsgClient<T>
557 where
558 T: tonic::client::GrpcService<tonic::body::Body>,
559 T::Error: Into<StdError>,
560 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
561 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
562 {
563 pub fn new(inner: T) -> Self {
564 let inner = tonic::client::Grpc::new(inner);
565 Self { inner }
566 }
567 pub fn with_origin(inner: T, origin: Uri) -> Self {
568 let inner = tonic::client::Grpc::with_origin(inner, origin);
569 Self { inner }
570 }
571 pub fn with_interceptor<F>(inner: T, interceptor: F) -> MsgClient<InterceptedService<T, F>>
572 where
573 F: tonic::service::Interceptor,
574 T::ResponseBody: Default,
575 T: tonic::codegen::Service<
576 http::Request<tonic::body::Body>,
577 Response = http::Response<
578 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
579 >,
580 >,
581 <T as tonic::codegen::Service<http::Request<tonic::body::Body>>>::Error:
582 Into<StdError> + std::marker::Send + std::marker::Sync,
583 {
584 MsgClient::new(InterceptedService::new(inner, interceptor))
585 }
586 #[must_use]
591 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
592 self.inner = self.inner.send_compressed(encoding);
593 self
594 }
595 #[must_use]
597 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
598 self.inner = self.inner.accept_compressed(encoding);
599 self
600 }
601 #[must_use]
605 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
606 self.inner = self.inner.max_decoding_message_size(limit);
607 self
608 }
609 #[must_use]
613 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
614 self.inner = self.inner.max_encoding_message_size(limit);
615 self
616 }
617 pub async fn software_upgrade(
618 &mut self,
619 request: impl tonic::IntoRequest<super::MsgSoftwareUpgrade>,
620 ) -> core::result::Result<tonic::Response<super::MsgSoftwareUpgradeResponse>, tonic::Status>
621 {
622 self.inner.ready().await.map_err(|e| {
623 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
624 })?;
625 let codec = tonic::codec::ProstCodec::default();
626 let path =
627 http::uri::PathAndQuery::from_static("/cosmos.upgrade.v1beta1.Msg/SoftwareUpgrade");
628 let mut req = request.into_request();
629 req.extensions_mut().insert(GrpcMethod::new(
630 "cosmos.upgrade.v1beta1.Msg",
631 "SoftwareUpgrade",
632 ));
633 self.inner.unary(req, path, codec).await
634 }
635 pub async fn cancel_upgrade(
636 &mut self,
637 request: impl tonic::IntoRequest<super::MsgCancelUpgrade>,
638 ) -> core::result::Result<tonic::Response<super::MsgCancelUpgradeResponse>, tonic::Status>
639 {
640 self.inner.ready().await.map_err(|e| {
641 tonic::Status::unknown(alloc::format!("Service was not ready: {}", e.into()))
642 })?;
643 let codec = tonic::codec::ProstCodec::default();
644 let path =
645 http::uri::PathAndQuery::from_static("/cosmos.upgrade.v1beta1.Msg/CancelUpgrade");
646 let mut req = request.into_request();
647 req.extensions_mut().insert(GrpcMethod::new(
648 "cosmos.upgrade.v1beta1.Msg",
649 "CancelUpgrade",
650 ));
651 self.inner.unary(req, path, codec).await
652 }
653 }
654}
655#[cfg(feature = "grpc")]
657pub mod msg_server {
658 #![allow(
659 unused_variables,
660 dead_code,
661 missing_docs,
662 clippy::wildcard_imports,
663 clippy::let_unit_value
664 )]
665 use tonic::codegen::*;
666 #[async_trait]
668 pub trait Msg: std::marker::Send + std::marker::Sync + 'static {
669 async fn software_upgrade(
670 &self,
671 request: tonic::Request<super::MsgSoftwareUpgrade>,
672 ) -> core::result::Result<tonic::Response<super::MsgSoftwareUpgradeResponse>, tonic::Status>;
673 async fn cancel_upgrade(
674 &self,
675 request: tonic::Request<super::MsgCancelUpgrade>,
676 ) -> core::result::Result<tonic::Response<super::MsgCancelUpgradeResponse>, tonic::Status>;
677 }
678 #[derive(Debug)]
679 pub struct MsgServer<T> {
680 inner: Arc<T>,
681 accept_compression_encodings: EnabledCompressionEncodings,
682 send_compression_encodings: EnabledCompressionEncodings,
683 max_decoding_message_size: Option<usize>,
684 max_encoding_message_size: Option<usize>,
685 }
686 impl<T> MsgServer<T> {
687 pub fn new(inner: T) -> Self {
688 Self::from_arc(Arc::new(inner))
689 }
690 pub fn from_arc(inner: Arc<T>) -> Self {
691 Self {
692 inner,
693 accept_compression_encodings: Default::default(),
694 send_compression_encodings: Default::default(),
695 max_decoding_message_size: None,
696 max_encoding_message_size: None,
697 }
698 }
699 pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
700 where
701 F: tonic::service::Interceptor,
702 {
703 InterceptedService::new(Self::new(inner), interceptor)
704 }
705 #[must_use]
707 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
708 self.accept_compression_encodings.enable(encoding);
709 self
710 }
711 #[must_use]
713 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
714 self.send_compression_encodings.enable(encoding);
715 self
716 }
717 #[must_use]
721 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
722 self.max_decoding_message_size = Some(limit);
723 self
724 }
725 #[must_use]
729 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
730 self.max_encoding_message_size = Some(limit);
731 self
732 }
733 }
734 impl<T, B> tonic::codegen::Service<http::Request<B>> for MsgServer<T>
735 where
736 T: Msg,
737 B: Body + std::marker::Send + 'static,
738 B::Error: Into<StdError> + std::marker::Send + 'static,
739 {
740 type Response = http::Response<tonic::body::Body>;
741 type Error = std::convert::Infallible;
742 type Future = BoxFuture<Self::Response, Self::Error>;
743 fn poll_ready(
744 &mut self,
745 _cx: &mut Context<'_>,
746 ) -> Poll<core::result::Result<(), Self::Error>> {
747 Poll::Ready(Ok(()))
748 }
749 fn call(&mut self, req: http::Request<B>) -> Self::Future {
750 match req.uri().path() {
751 "/cosmos.upgrade.v1beta1.Msg/SoftwareUpgrade" => {
752 #[allow(non_camel_case_types)]
753 struct SoftwareUpgradeSvc<T: Msg>(pub Arc<T>);
754 impl<T: Msg> tonic::server::UnaryService<super::MsgSoftwareUpgrade> for SoftwareUpgradeSvc<T> {
755 type Response = super::MsgSoftwareUpgradeResponse;
756 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
757 fn call(
758 &mut self,
759 request: tonic::Request<super::MsgSoftwareUpgrade>,
760 ) -> Self::Future {
761 let inner = Arc::clone(&self.0);
762 let fut =
763 async move { <T as Msg>::software_upgrade(&inner, request).await };
764 Box::pin(fut)
765 }
766 }
767 let accept_compression_encodings = self.accept_compression_encodings;
768 let send_compression_encodings = self.send_compression_encodings;
769 let max_decoding_message_size = self.max_decoding_message_size;
770 let max_encoding_message_size = self.max_encoding_message_size;
771 let inner = self.inner.clone();
772 let fut = async move {
773 let method = SoftwareUpgradeSvc(inner);
774 let codec = tonic::codec::ProstCodec::default();
775 let mut grpc = tonic::server::Grpc::new(codec)
776 .apply_compression_config(
777 accept_compression_encodings,
778 send_compression_encodings,
779 )
780 .apply_max_message_size_config(
781 max_decoding_message_size,
782 max_encoding_message_size,
783 );
784 let res = grpc.unary(method, req).await;
785 Ok(res)
786 };
787 Box::pin(fut)
788 }
789 "/cosmos.upgrade.v1beta1.Msg/CancelUpgrade" => {
790 #[allow(non_camel_case_types)]
791 struct CancelUpgradeSvc<T: Msg>(pub Arc<T>);
792 impl<T: Msg> tonic::server::UnaryService<super::MsgCancelUpgrade> for CancelUpgradeSvc<T> {
793 type Response = super::MsgCancelUpgradeResponse;
794 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
795 fn call(
796 &mut self,
797 request: tonic::Request<super::MsgCancelUpgrade>,
798 ) -> Self::Future {
799 let inner = Arc::clone(&self.0);
800 let fut =
801 async move { <T as Msg>::cancel_upgrade(&inner, request).await };
802 Box::pin(fut)
803 }
804 }
805 let accept_compression_encodings = self.accept_compression_encodings;
806 let send_compression_encodings = self.send_compression_encodings;
807 let max_decoding_message_size = self.max_decoding_message_size;
808 let max_encoding_message_size = self.max_encoding_message_size;
809 let inner = self.inner.clone();
810 let fut = async move {
811 let method = CancelUpgradeSvc(inner);
812 let codec = tonic::codec::ProstCodec::default();
813 let mut grpc = tonic::server::Grpc::new(codec)
814 .apply_compression_config(
815 accept_compression_encodings,
816 send_compression_encodings,
817 )
818 .apply_max_message_size_config(
819 max_decoding_message_size,
820 max_encoding_message_size,
821 );
822 let res = grpc.unary(method, req).await;
823 Ok(res)
824 };
825 Box::pin(fut)
826 }
827 _ => Box::pin(async move {
828 let mut response = http::Response::new(tonic::body::Body::default());
829 let headers = response.headers_mut();
830 headers.insert(
831 tonic::Status::GRPC_STATUS,
832 (tonic::Code::Unimplemented as i32).into(),
833 );
834 headers.insert(
835 http::header::CONTENT_TYPE,
836 tonic::metadata::GRPC_CONTENT_TYPE,
837 );
838 Ok(response)
839 }),
840 }
841 }
842 }
843 impl<T> Clone for MsgServer<T> {
844 fn clone(&self) -> Self {
845 let inner = self.inner.clone();
846 Self {
847 inner,
848 accept_compression_encodings: self.accept_compression_encodings,
849 send_compression_encodings: self.send_compression_encodings,
850 max_decoding_message_size: self.max_decoding_message_size,
851 max_encoding_message_size: self.max_encoding_message_size,
852 }
853 }
854 }
855 pub const SERVICE_NAME: &str = "cosmos.upgrade.v1beta1.Msg";
857 impl<T> tonic::server::NamedService for MsgServer<T> {
858 const NAME: &'static str = SERVICE_NAME;
859 }
860}