1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Comment {
4 #[prost(string, tag = "1")]
6 pub rid: ::prost::alloc::string::String,
7 #[prost(message, optional, tag = "2")]
9 pub parent: ::core::option::Option<CommentParent>,
10 #[prost(string, tag = "3")]
12 pub author_rid: ::prost::alloc::string::String,
13 #[prost(message, optional, tag = "4")]
15 pub created_at: ::core::option::Option<
16 super::super::super::google::protobuf::Timestamp,
17 >,
18 #[prost(message, optional, tag = "5")]
20 pub edited_at: ::core::option::Option<
21 super::super::super::google::protobuf::Timestamp,
22 >,
23 #[prost(message, optional, tag = "6")]
25 pub deleted_at: ::core::option::Option<
26 super::super::super::google::protobuf::Timestamp,
27 >,
28 #[prost(string, tag = "7")]
30 pub content: ::prost::alloc::string::String,
31 #[prost(string, optional, tag = "8")]
33 pub pinned_by: ::core::option::Option<::prost::alloc::string::String>,
34 #[prost(message, optional, tag = "9")]
36 pub pinned_at: ::core::option::Option<
37 super::super::super::google::protobuf::Timestamp,
38 >,
39 #[prost(message, repeated, tag = "10")]
41 pub reactions: ::prost::alloc::vec::Vec<Reaction>,
42 #[prost(string, repeated, tag = "11")]
44 pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
45}
46#[derive(Clone, PartialEq, ::prost::Message)]
48pub struct CommentParent {
49 #[prost(oneof = "comment_parent::CommentParent", tags = "1, 2")]
51 pub comment_parent: ::core::option::Option<comment_parent::CommentParent>,
52}
53pub mod comment_parent {
55 #[derive(Clone, PartialEq, ::prost::Oneof)]
57 pub enum CommentParent {
58 #[prost(message, tag = "1")]
59 Resource(super::CommentParentResource),
60 #[prost(message, tag = "2")]
61 Comment(super::CommentParentComment),
62 }
63}
64#[derive(Clone, PartialEq, ::prost::Message)]
65pub struct CommentParentComment {
66 #[prost(string, tag = "1")]
68 pub comment_rid: ::prost::alloc::string::String,
69}
70#[derive(Clone, PartialEq, ::prost::Message)]
71pub struct CommentParentResource {
72 #[prost(enumeration = "ResourceType", tag = "1")]
74 pub resource_type: i32,
75 #[prost(string, tag = "2")]
77 pub resource_rid: ::prost::alloc::string::String,
78}
79#[derive(Clone, PartialEq, ::prost::Message)]
80pub struct Conversation {
81 #[prost(string, tag = "1")]
83 pub resource_rid: ::prost::alloc::string::String,
84 #[prost(enumeration = "ResourceType", tag = "2")]
86 pub resource_type: i32,
87 #[prost(message, repeated, tag = "3")]
90 pub comments: ::prost::alloc::vec::Vec<ConversationNode>,
91}
92#[derive(Clone, PartialEq, ::prost::Message)]
93pub struct ConversationNode {
94 #[prost(message, optional, tag = "1")]
96 pub comment: ::core::option::Option<Comment>,
97 #[prost(message, repeated, tag = "2")]
99 pub replies: ::prost::alloc::vec::Vec<ConversationNode>,
100}
101#[derive(Clone, PartialEq, ::prost::Message)]
102pub struct CreateCommentRequest {
103 #[prost(message, optional, tag = "1")]
104 pub parent: ::core::option::Option<CommentParent>,
105 #[prost(string, tag = "2")]
107 pub content: ::prost::alloc::string::String,
108 #[prost(string, repeated, tag = "3")]
110 pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
111}
112#[derive(Clone, PartialEq, ::prost::Message)]
113pub struct EditCommentRequest {
114 #[prost(string, tag = "1")]
116 pub content: ::prost::alloc::string::String,
117 #[prost(string, repeated, tag = "2")]
119 pub attachments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
120}
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct Reaction {
123 #[prost(string, tag = "1")]
125 pub rid: ::prost::alloc::string::String,
126 #[prost(string, tag = "2")]
128 pub user_rid: ::prost::alloc::string::String,
129 #[prost(message, optional, tag = "3")]
131 pub created_at: ::core::option::Option<
132 super::super::super::google::protobuf::Timestamp,
133 >,
134 #[prost(enumeration = "ReactionType", tag = "4")]
136 pub r#type: i32,
137}
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct GetConversationRequest {
140 #[prost(enumeration = "ResourceType", tag = "1")]
142 pub resource_type: i32,
143 #[prost(string, tag = "2")]
145 pub resource_rid: ::prost::alloc::string::String,
146}
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct GetConversationResponse {
149 #[prost(message, optional, tag = "1")]
150 pub conversation: ::core::option::Option<Conversation>,
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct GetConversationCountRequest {
154 #[prost(enumeration = "ResourceType", tag = "1")]
156 pub resource_type: i32,
157 #[prost(string, tag = "2")]
159 pub resource_rid: ::prost::alloc::string::String,
160 #[prost(bool, optional, tag = "3")]
162 pub include_deleted: ::core::option::Option<bool>,
163}
164#[derive(Clone, Copy, PartialEq, ::prost::Message)]
165pub struct GetConversationCountResponse {
166 #[prost(int32, tag = "1")]
167 pub count: i32,
168}
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct GetCommentRequest {
171 #[prost(string, tag = "1")]
173 pub comment_rid: ::prost::alloc::string::String,
174}
175#[derive(Clone, PartialEq, ::prost::Message)]
176pub struct GetCommentResponse {
177 #[prost(message, optional, tag = "1")]
178 pub comment: ::core::option::Option<Comment>,
179}
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct CreateCommentResponse {
182 #[prost(message, optional, tag = "1")]
183 pub comment: ::core::option::Option<Comment>,
184}
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct EditCommentRequestWrapper {
187 #[prost(string, tag = "1")]
189 pub comment_rid: ::prost::alloc::string::String,
190 #[prost(message, optional, tag = "2")]
191 pub request: ::core::option::Option<EditCommentRequest>,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct EditCommentResponse {
195 #[prost(message, optional, tag = "1")]
196 pub comment: ::core::option::Option<Comment>,
197}
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct DeleteCommentRequest {
200 #[prost(string, tag = "1")]
202 pub comment_rid: ::prost::alloc::string::String,
203}
204#[derive(Clone, PartialEq, ::prost::Message)]
205pub struct DeleteCommentResponse {
206 #[prost(message, optional, tag = "1")]
207 pub comment: ::core::option::Option<Comment>,
208}
209#[derive(Clone, PartialEq, ::prost::Message)]
210pub struct PinCommentRequest {
211 #[prost(string, tag = "1")]
213 pub comment_rid: ::prost::alloc::string::String,
214}
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct PinCommentResponse {
217 #[prost(message, optional, tag = "1")]
218 pub comment: ::core::option::Option<Comment>,
219}
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct UnpinCommentRequest {
222 #[prost(string, tag = "1")]
224 pub comment_rid: ::prost::alloc::string::String,
225}
226#[derive(Clone, PartialEq, ::prost::Message)]
227pub struct UnpinCommentResponse {
228 #[prost(message, optional, tag = "1")]
229 pub comment: ::core::option::Option<Comment>,
230}
231#[derive(Clone, PartialEq, ::prost::Message)]
232pub struct AddReactionRequest {
233 #[prost(string, tag = "1")]
235 pub comment_rid: ::prost::alloc::string::String,
236 #[prost(enumeration = "ReactionType", tag = "2")]
238 pub r#type: i32,
239}
240#[derive(Clone, PartialEq, ::prost::Message)]
241pub struct AddReactionResponse {
242 #[prost(message, optional, tag = "1")]
243 pub comment: ::core::option::Option<Comment>,
244}
245#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct RemoveReactionRequest {
247 #[prost(string, tag = "1")]
249 pub comment_rid: ::prost::alloc::string::String,
250 #[prost(enumeration = "ReactionType", tag = "2")]
252 pub r#type: i32,
253}
254#[derive(Clone, PartialEq, ::prost::Message)]
255pub struct RemoveReactionResponse {
256 #[prost(message, optional, tag = "1")]
257 pub comment: ::core::option::Option<Comment>,
258}
259#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
261#[repr(i32)]
262pub enum ReactionType {
263 Unspecified = 0,
264 Like = 1,
265 Dislike = 2,
266 Heart = 3,
267 Hooray = 4,
268 Rocket = 5,
269 Eyes = 6,
270}
271impl ReactionType {
272 pub fn as_str_name(&self) -> &'static str {
277 match self {
278 Self::Unspecified => "REACTION_TYPE_UNSPECIFIED",
279 Self::Like => "LIKE",
280 Self::Dislike => "DISLIKE",
281 Self::Heart => "HEART",
282 Self::Hooray => "HOORAY",
283 Self::Rocket => "ROCKET",
284 Self::Eyes => "EYES",
285 }
286 }
287 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
289 match value {
290 "REACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
291 "LIKE" => Some(Self::Like),
292 "DISLIKE" => Some(Self::Dislike),
293 "HEART" => Some(Self::Heart),
294 "HOORAY" => Some(Self::Hooray),
295 "ROCKET" => Some(Self::Rocket),
296 "EYES" => Some(Self::Eyes),
297 _ => None,
298 }
299 }
300}
301#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
303#[repr(i32)]
304pub enum ResourceType {
305 Unspecified = 0,
306 Run = 1,
307 Event = 2,
308}
309impl ResourceType {
310 pub fn as_str_name(&self) -> &'static str {
315 match self {
316 Self::Unspecified => "RESOURCE_TYPE_UNSPECIFIED",
317 Self::Run => "RUN",
318 Self::Event => "EVENT",
319 }
320 }
321 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
323 match value {
324 "RESOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
325 "RUN" => Some(Self::Run),
326 "EVENT" => Some(Self::Event),
327 _ => None,
328 }
329 }
330}
331#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
333#[repr(i32)]
334pub enum CommentsError {
335 CommentNotFound = 0,
336 ContentTooLong = 1,
337 EmptyCommentContent = 2,
338 InvalidAttachment = 3,
339 MaxNestingDepthExceeded = 4,
340 Unauthorized = 5,
341}
342impl CommentsError {
343 pub fn as_str_name(&self) -> &'static str {
348 match self {
349 Self::CommentNotFound => "COMMENTS_ERROR_COMMENT_NOT_FOUND",
350 Self::ContentTooLong => "COMMENTS_ERROR_CONTENT_TOO_LONG",
351 Self::EmptyCommentContent => "COMMENTS_ERROR_EMPTY_COMMENT_CONTENT",
352 Self::InvalidAttachment => "COMMENTS_ERROR_INVALID_ATTACHMENT",
353 Self::MaxNestingDepthExceeded => "COMMENTS_ERROR_MAX_NESTING_DEPTH_EXCEEDED",
354 Self::Unauthorized => "COMMENTS_ERROR_UNAUTHORIZED",
355 }
356 }
357 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
359 match value {
360 "COMMENTS_ERROR_COMMENT_NOT_FOUND" => Some(Self::CommentNotFound),
361 "COMMENTS_ERROR_CONTENT_TOO_LONG" => Some(Self::ContentTooLong),
362 "COMMENTS_ERROR_EMPTY_COMMENT_CONTENT" => Some(Self::EmptyCommentContent),
363 "COMMENTS_ERROR_INVALID_ATTACHMENT" => Some(Self::InvalidAttachment),
364 "COMMENTS_ERROR_MAX_NESTING_DEPTH_EXCEEDED" => {
365 Some(Self::MaxNestingDepthExceeded)
366 }
367 "COMMENTS_ERROR_UNAUTHORIZED" => Some(Self::Unauthorized),
368 _ => None,
369 }
370 }
371}
372pub mod comments_service_client {
374 #![allow(
375 unused_variables,
376 dead_code,
377 missing_docs,
378 clippy::wildcard_imports,
379 clippy::let_unit_value,
380 )]
381 use tonic::codegen::*;
382 use tonic::codegen::http::Uri;
383 #[derive(Debug, Clone)]
385 pub struct CommentsServiceClient<T> {
386 inner: tonic::client::Grpc<T>,
387 }
388 impl CommentsServiceClient<tonic::transport::Channel> {
389 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
391 where
392 D: TryInto<tonic::transport::Endpoint>,
393 D::Error: Into<StdError>,
394 {
395 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
396 Ok(Self::new(conn))
397 }
398 }
399 impl<T> CommentsServiceClient<T>
400 where
401 T: tonic::client::GrpcService<tonic::body::Body>,
402 T::Error: Into<StdError>,
403 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
404 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
405 {
406 pub fn new(inner: T) -> Self {
407 let inner = tonic::client::Grpc::new(inner);
408 Self { inner }
409 }
410 pub fn with_origin(inner: T, origin: Uri) -> Self {
411 let inner = tonic::client::Grpc::with_origin(inner, origin);
412 Self { inner }
413 }
414 pub fn with_interceptor<F>(
415 inner: T,
416 interceptor: F,
417 ) -> CommentsServiceClient<InterceptedService<T, F>>
418 where
419 F: tonic::service::Interceptor,
420 T::ResponseBody: Default,
421 T: tonic::codegen::Service<
422 http::Request<tonic::body::Body>,
423 Response = http::Response<
424 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
425 >,
426 >,
427 <T as tonic::codegen::Service<
428 http::Request<tonic::body::Body>,
429 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
430 {
431 CommentsServiceClient::new(InterceptedService::new(inner, interceptor))
432 }
433 #[must_use]
438 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
439 self.inner = self.inner.send_compressed(encoding);
440 self
441 }
442 #[must_use]
444 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
445 self.inner = self.inner.accept_compressed(encoding);
446 self
447 }
448 #[must_use]
452 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
453 self.inner = self.inner.max_decoding_message_size(limit);
454 self
455 }
456 #[must_use]
460 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
461 self.inner = self.inner.max_encoding_message_size(limit);
462 self
463 }
464 pub async fn get_conversation(
467 &mut self,
468 request: impl tonic::IntoRequest<super::GetConversationRequest>,
469 ) -> std::result::Result<
470 tonic::Response<super::GetConversationResponse>,
471 tonic::Status,
472 > {
473 self.inner
474 .ready()
475 .await
476 .map_err(|e| {
477 tonic::Status::unknown(
478 format!("Service was not ready: {}", e.into()),
479 )
480 })?;
481 let codec = tonic::codec::ProstCodec::default();
482 let path = http::uri::PathAndQuery::from_static(
483 "/nominal.comments.v1.CommentsService/GetConversation",
484 );
485 let mut req = request.into_request();
486 req.extensions_mut()
487 .insert(
488 GrpcMethod::new(
489 "nominal.comments.v1.CommentsService",
490 "GetConversation",
491 ),
492 );
493 self.inner.unary(req, path, codec).await
494 }
495 pub async fn get_conversation_count(
497 &mut self,
498 request: impl tonic::IntoRequest<super::GetConversationCountRequest>,
499 ) -> std::result::Result<
500 tonic::Response<super::GetConversationCountResponse>,
501 tonic::Status,
502 > {
503 self.inner
504 .ready()
505 .await
506 .map_err(|e| {
507 tonic::Status::unknown(
508 format!("Service was not ready: {}", e.into()),
509 )
510 })?;
511 let codec = tonic::codec::ProstCodec::default();
512 let path = http::uri::PathAndQuery::from_static(
513 "/nominal.comments.v1.CommentsService/GetConversationCount",
514 );
515 let mut req = request.into_request();
516 req.extensions_mut()
517 .insert(
518 GrpcMethod::new(
519 "nominal.comments.v1.CommentsService",
520 "GetConversationCount",
521 ),
522 );
523 self.inner.unary(req, path, codec).await
524 }
525 pub async fn get_comment(
527 &mut self,
528 request: impl tonic::IntoRequest<super::GetCommentRequest>,
529 ) -> std::result::Result<
530 tonic::Response<super::GetCommentResponse>,
531 tonic::Status,
532 > {
533 self.inner
534 .ready()
535 .await
536 .map_err(|e| {
537 tonic::Status::unknown(
538 format!("Service was not ready: {}", e.into()),
539 )
540 })?;
541 let codec = tonic::codec::ProstCodec::default();
542 let path = http::uri::PathAndQuery::from_static(
543 "/nominal.comments.v1.CommentsService/GetComment",
544 );
545 let mut req = request.into_request();
546 req.extensions_mut()
547 .insert(
548 GrpcMethod::new("nominal.comments.v1.CommentsService", "GetComment"),
549 );
550 self.inner.unary(req, path, codec).await
551 }
552 pub async fn create_comment(
555 &mut self,
556 request: impl tonic::IntoRequest<super::CreateCommentRequest>,
557 ) -> std::result::Result<
558 tonic::Response<super::CreateCommentResponse>,
559 tonic::Status,
560 > {
561 self.inner
562 .ready()
563 .await
564 .map_err(|e| {
565 tonic::Status::unknown(
566 format!("Service was not ready: {}", e.into()),
567 )
568 })?;
569 let codec = tonic::codec::ProstCodec::default();
570 let path = http::uri::PathAndQuery::from_static(
571 "/nominal.comments.v1.CommentsService/CreateComment",
572 );
573 let mut req = request.into_request();
574 req.extensions_mut()
575 .insert(
576 GrpcMethod::new(
577 "nominal.comments.v1.CommentsService",
578 "CreateComment",
579 ),
580 );
581 self.inner.unary(req, path, codec).await
582 }
583 pub async fn edit_comment(
586 &mut self,
587 request: impl tonic::IntoRequest<super::EditCommentRequestWrapper>,
588 ) -> std::result::Result<
589 tonic::Response<super::EditCommentResponse>,
590 tonic::Status,
591 > {
592 self.inner
593 .ready()
594 .await
595 .map_err(|e| {
596 tonic::Status::unknown(
597 format!("Service was not ready: {}", e.into()),
598 )
599 })?;
600 let codec = tonic::codec::ProstCodec::default();
601 let path = http::uri::PathAndQuery::from_static(
602 "/nominal.comments.v1.CommentsService/EditComment",
603 );
604 let mut req = request.into_request();
605 req.extensions_mut()
606 .insert(
607 GrpcMethod::new("nominal.comments.v1.CommentsService", "EditComment"),
608 );
609 self.inner.unary(req, path, codec).await
610 }
611 pub async fn delete_comment(
613 &mut self,
614 request: impl tonic::IntoRequest<super::DeleteCommentRequest>,
615 ) -> std::result::Result<
616 tonic::Response<super::DeleteCommentResponse>,
617 tonic::Status,
618 > {
619 self.inner
620 .ready()
621 .await
622 .map_err(|e| {
623 tonic::Status::unknown(
624 format!("Service was not ready: {}", e.into()),
625 )
626 })?;
627 let codec = tonic::codec::ProstCodec::default();
628 let path = http::uri::PathAndQuery::from_static(
629 "/nominal.comments.v1.CommentsService/DeleteComment",
630 );
631 let mut req = request.into_request();
632 req.extensions_mut()
633 .insert(
634 GrpcMethod::new(
635 "nominal.comments.v1.CommentsService",
636 "DeleteComment",
637 ),
638 );
639 self.inner.unary(req, path, codec).await
640 }
641 pub async fn pin_comment(
643 &mut self,
644 request: impl tonic::IntoRequest<super::PinCommentRequest>,
645 ) -> std::result::Result<
646 tonic::Response<super::PinCommentResponse>,
647 tonic::Status,
648 > {
649 self.inner
650 .ready()
651 .await
652 .map_err(|e| {
653 tonic::Status::unknown(
654 format!("Service was not ready: {}", e.into()),
655 )
656 })?;
657 let codec = tonic::codec::ProstCodec::default();
658 let path = http::uri::PathAndQuery::from_static(
659 "/nominal.comments.v1.CommentsService/PinComment",
660 );
661 let mut req = request.into_request();
662 req.extensions_mut()
663 .insert(
664 GrpcMethod::new("nominal.comments.v1.CommentsService", "PinComment"),
665 );
666 self.inner.unary(req, path, codec).await
667 }
668 pub async fn unpin_comment(
670 &mut self,
671 request: impl tonic::IntoRequest<super::UnpinCommentRequest>,
672 ) -> std::result::Result<
673 tonic::Response<super::UnpinCommentResponse>,
674 tonic::Status,
675 > {
676 self.inner
677 .ready()
678 .await
679 .map_err(|e| {
680 tonic::Status::unknown(
681 format!("Service was not ready: {}", e.into()),
682 )
683 })?;
684 let codec = tonic::codec::ProstCodec::default();
685 let path = http::uri::PathAndQuery::from_static(
686 "/nominal.comments.v1.CommentsService/UnpinComment",
687 );
688 let mut req = request.into_request();
689 req.extensions_mut()
690 .insert(
691 GrpcMethod::new(
692 "nominal.comments.v1.CommentsService",
693 "UnpinComment",
694 ),
695 );
696 self.inner.unary(req, path, codec).await
697 }
698 pub async fn add_reaction(
700 &mut self,
701 request: impl tonic::IntoRequest<super::AddReactionRequest>,
702 ) -> std::result::Result<
703 tonic::Response<super::AddReactionResponse>,
704 tonic::Status,
705 > {
706 self.inner
707 .ready()
708 .await
709 .map_err(|e| {
710 tonic::Status::unknown(
711 format!("Service was not ready: {}", e.into()),
712 )
713 })?;
714 let codec = tonic::codec::ProstCodec::default();
715 let path = http::uri::PathAndQuery::from_static(
716 "/nominal.comments.v1.CommentsService/AddReaction",
717 );
718 let mut req = request.into_request();
719 req.extensions_mut()
720 .insert(
721 GrpcMethod::new("nominal.comments.v1.CommentsService", "AddReaction"),
722 );
723 self.inner.unary(req, path, codec).await
724 }
725 pub async fn remove_reaction(
727 &mut self,
728 request: impl tonic::IntoRequest<super::RemoveReactionRequest>,
729 ) -> std::result::Result<
730 tonic::Response<super::RemoveReactionResponse>,
731 tonic::Status,
732 > {
733 self.inner
734 .ready()
735 .await
736 .map_err(|e| {
737 tonic::Status::unknown(
738 format!("Service was not ready: {}", e.into()),
739 )
740 })?;
741 let codec = tonic::codec::ProstCodec::default();
742 let path = http::uri::PathAndQuery::from_static(
743 "/nominal.comments.v1.CommentsService/RemoveReaction",
744 );
745 let mut req = request.into_request();
746 req.extensions_mut()
747 .insert(
748 GrpcMethod::new(
749 "nominal.comments.v1.CommentsService",
750 "RemoveReaction",
751 ),
752 );
753 self.inner.unary(req, path, codec).await
754 }
755 }
756}