1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Activity {
5 #[prost(int64, tag = "1")]
7 pub activity_id: i64,
8 #[prost(int64, tag = "2")]
10 pub activity_state: i64,
11 #[prost(string, tag = "3")]
13 pub activity_placeholder: ::prost::alloc::string::String,
14}
15#[derive(Clone, PartialEq, ::prost::Message)]
17pub struct AnswerQuestionReq {
18 #[prost(int64, tag = "1")]
20 pub qid: i64,
21 #[prost(string, tag = "2")]
23 pub option_key: ::prost::alloc::string::String,
24}
25#[derive(Clone, PartialEq, ::prost::Message)]
27pub struct AnswerQuestionResp {
28 #[prost(bool, tag = "1")]
30 pub passed: bool,
31 #[prost(bool, tag = "2")]
33 pub member_passed: bool,
34 #[prost(message, optional, tag = "3")]
36 pub member_passed_popup: ::core::option::Option<
37 answer_question_resp::MemberPassedPopup,
38 >,
39 #[prost(string, tag = "4")]
41 pub bottom_text: ::prost::alloc::string::String,
42 #[prost(message, optional, tag = "5")]
44 pub stat: ::core::option::Option<QuestionCardStat>,
45}
46pub mod answer_question_resp {
48 #[derive(Clone, PartialEq, ::prost::Message)]
50 pub struct MemberPassedPopup {
51 #[prost(string, tag = "1")]
53 pub title: ::prost::alloc::string::String,
54 #[prost(string, tag = "2")]
56 pub subtitle: ::prost::alloc::string::String,
57 #[prost(string, tag = "3")]
59 pub h5_link: ::prost::alloc::string::String,
60 }
61}
62#[derive(Clone, PartialEq, ::prost::Message)]
64pub struct ArticleSearchItem {
65 #[prost(string, tag = "1")]
67 pub title: ::prost::alloc::string::String,
68 #[prost(string, tag = "2")]
70 pub up_nickname: ::prost::alloc::string::String,
71 #[prost(string, repeated, tag = "3")]
73 pub covers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
74}
75#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct AtGroup {
78 #[prost(enumeration = "at_group::Type", tag = "1")]
80 pub group_type: i32,
81 #[prost(string, tag = "2")]
83 pub group_name: ::prost::alloc::string::String,
84 #[prost(message, repeated, tag = "3")]
86 pub items: ::prost::alloc::vec::Vec<AtItem>,
87}
88pub mod at_group {
90 #[derive(
92 Clone,
93 Copy,
94 Debug,
95 PartialEq,
96 Eq,
97 Hash,
98 PartialOrd,
99 Ord,
100 ::prost::Enumeration
101 )]
102 #[repr(i32)]
103 pub enum Type {
104 AtGroupTypeDefault = 0,
106 AtGroupTypeRecent = 1,
108 AtGroupTypeFollow = 2,
110 AtGroupTypeFans = 3,
112 AtGroupTypeOthers = 4,
114 }
115 impl Type {
116 pub fn as_str_name(&self) -> &'static str {
121 match self {
122 Self::AtGroupTypeDefault => "AT_GROUP_TYPE_DEFAULT",
123 Self::AtGroupTypeRecent => "AT_GROUP_TYPE_RECENT",
124 Self::AtGroupTypeFollow => "AT_GROUP_TYPE_FOLLOW",
125 Self::AtGroupTypeFans => "AT_GROUP_TYPE_FANS",
126 Self::AtGroupTypeOthers => "AT_GROUP_TYPE_OTHERS",
127 }
128 }
129 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
131 match value {
132 "AT_GROUP_TYPE_DEFAULT" => Some(Self::AtGroupTypeDefault),
133 "AT_GROUP_TYPE_RECENT" => Some(Self::AtGroupTypeRecent),
134 "AT_GROUP_TYPE_FOLLOW" => Some(Self::AtGroupTypeFollow),
135 "AT_GROUP_TYPE_FANS" => Some(Self::AtGroupTypeFans),
136 "AT_GROUP_TYPE_OTHERS" => Some(Self::AtGroupTypeOthers),
137 _ => None,
138 }
139 }
140 }
141}
142#[derive(Clone, PartialEq, ::prost::Message)]
144pub struct AtItem {
145 #[prost(int64, tag = "1")]
147 pub mid: i64,
148 #[prost(string, tag = "2")]
150 pub name: ::prost::alloc::string::String,
151 #[prost(string, tag = "3")]
153 pub face: ::prost::alloc::string::String,
154 #[prost(int32, tag = "4")]
156 pub fans: i32,
157 #[prost(int32, tag = "5")]
159 pub official_verify_type: i32,
160}
161#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct AtSearchReply {
164 #[prost(message, repeated, tag = "1")]
166 pub groups: ::prost::alloc::vec::Vec<AtGroup>,
167}
168#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct AtSearchReq {
171 #[prost(int64, tag = "1")]
173 pub mid: i64,
174 #[prost(string, tag = "2")]
176 pub keyword: ::prost::alloc::string::String,
177}
178#[derive(Clone, PartialEq, ::prost::Message)]
180pub struct Cm {
181 #[prost(message, optional, tag = "1")]
183 pub source_content: ::core::option::Option<::prost_types::Any>,
184}
185#[derive(Clone, PartialEq, ::prost::Message)]
187pub struct Content {
188 #[prost(string, tag = "1")]
190 pub message: ::prost::alloc::string::String,
191 #[prost(map = "string, message", tag = "2")]
193 pub members: ::std::collections::HashMap<::prost::alloc::string::String, Member>,
194 #[prost(map = "string, message", tag = "3")]
196 pub emotes: ::std::collections::HashMap<::prost::alloc::string::String, Emote>,
197 #[prost(map = "string, message", tag = "4")]
199 pub topics: ::std::collections::HashMap<::prost::alloc::string::String, Topic>,
200 #[prost(map = "string, message", tag = "5")]
202 pub urls: ::std::collections::HashMap<::prost::alloc::string::String, Url>,
203 #[prost(message, optional, tag = "6")]
205 pub vote: ::core::option::Option<Vote>,
206 #[prost(map = "string, int64", tag = "7")]
208 pub at_name_to_mid: ::std::collections::HashMap<::prost::alloc::string::String, i64>,
209 #[prost(message, optional, tag = "8")]
211 pub rich_text: ::core::option::Option<RichText>,
212 #[prost(message, repeated, tag = "9")]
214 pub pictures: ::prost::alloc::vec::Vec<Picture>,
215 #[prost(double, tag = "10")]
217 pub picture_scale: f64,
218}
219#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct CursorReply {
222 #[prost(int64, tag = "1")]
224 pub next: i64,
225 #[prost(int64, tag = "2")]
227 pub prev: i64,
228 #[prost(bool, tag = "3")]
230 pub is_begin: bool,
231 #[prost(bool, tag = "4")]
233 pub is_end: bool,
234 #[prost(enumeration = "Mode", tag = "5")]
236 pub mode: i32,
237 #[prost(string, tag = "6")]
239 pub mode_text: ::prost::alloc::string::String,
240}
241#[derive(Clone, Copy, PartialEq, ::prost::Message)]
243pub struct CursorReq {
244 #[prost(int64, tag = "1")]
246 pub next: i64,
247 #[prost(int64, tag = "2")]
249 pub prev: i64,
250 #[prost(enumeration = "Mode", tag = "4")]
252 pub mode: i32,
253}
254#[derive(Clone, PartialEq, ::prost::Message)]
256pub struct DetailListReply {
257 #[prost(message, optional, tag = "1")]
259 pub cursor: ::core::option::Option<CursorReply>,
260 #[prost(message, optional, tag = "2")]
262 pub subject_control: ::core::option::Option<SubjectControl>,
263 #[prost(message, optional, tag = "3")]
265 pub root: ::core::option::Option<ReplyInfo>,
266 #[prost(message, optional, tag = "4")]
268 pub activity: ::core::option::Option<Activity>,
269 #[prost(message, optional, tag = "5")]
271 pub likes: ::core::option::Option<LikeInfo>,
272 #[prost(enumeration = "Mode", tag = "6")]
274 pub mode: i32,
275 #[prost(string, tag = "7")]
277 pub mode_text: ::prost::alloc::string::String,
278 #[prost(message, optional, tag = "8")]
280 pub pagination_reply: ::core::option::Option<
281 super::super::super::super::pagination::FeedPaginationReply,
282 >,
283 #[prost(string, tag = "9")]
285 pub session_id: ::prost::alloc::string::String,
286}
287#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct DetailListReq {
290 #[prost(int64, tag = "1")]
292 pub oid: i64,
293 #[prost(int64, tag = "2")]
295 pub r#type: i64,
296 #[prost(int64, tag = "3")]
298 pub root: i64,
299 #[prost(int64, tag = "4")]
301 pub rpid: i64,
302 #[prost(message, optional, tag = "5")]
304 pub cursor: ::core::option::Option<CursorReq>,
305 #[prost(enumeration = "DetailListScene", tag = "6")]
307 pub scene: i32,
308 #[prost(enumeration = "Mode", tag = "7")]
310 pub mode: i32,
311 #[prost(message, optional, tag = "8")]
313 pub pagination: ::core::option::Option<
314 super::super::super::super::pagination::FeedPagination,
315 >,
316 #[prost(string, tag = "9")]
318 pub extra: ::prost::alloc::string::String,
319}
320#[derive(Clone, PartialEq, ::prost::Message)]
322pub struct DialogListReply {
323 #[prost(message, optional, tag = "1")]
325 pub cursor: ::core::option::Option<CursorReply>,
326 #[prost(message, optional, tag = "2")]
328 pub subject_control: ::core::option::Option<SubjectControl>,
329 #[prost(message, repeated, tag = "3")]
331 pub replies: ::prost::alloc::vec::Vec<ReplyInfo>,
332 #[prost(message, optional, tag = "4")]
334 pub activity: ::core::option::Option<Activity>,
335 #[prost(message, optional, tag = "5")]
337 pub pagination_reply: ::core::option::Option<
338 super::super::super::super::pagination::FeedPaginationReply,
339 >,
340 #[prost(string, tag = "6")]
342 pub session_id: ::prost::alloc::string::String,
343}
344#[derive(Clone, PartialEq, ::prost::Message)]
346pub struct DialogListReq {
347 #[prost(int64, tag = "1")]
349 pub oid: i64,
350 #[prost(int64, tag = "2")]
352 pub r#type: i64,
353 #[prost(int64, tag = "3")]
355 pub root: i64,
356 #[prost(int64, tag = "4")]
358 pub dialog: i64,
359 #[prost(message, optional, tag = "5")]
361 pub cursor: ::core::option::Option<CursorReq>,
362 #[prost(message, optional, tag = "6")]
364 pub pagination: ::core::option::Option<
365 super::super::super::super::pagination::FeedPagination,
366 >,
367 #[prost(string, tag = "7")]
369 pub extra: ::prost::alloc::string::String,
370}
371#[derive(Clone, Copy, PartialEq, ::prost::Message)]
373pub struct DoVoteReq {
374 #[prost(int64, tag = "1")]
376 pub oid: i64,
377 #[prost(int64, tag = "2")]
379 pub r#type: i64,
380 #[prost(int64, tag = "3")]
382 pub vote_id: i64,
383 #[prost(int64, tag = "4")]
385 pub option: i64,
386}
387#[derive(Clone, Copy, PartialEq, ::prost::Message)]
389pub struct DoVoteResp {}
390#[derive(Clone, PartialEq, ::prost::Message)]
392pub struct ESportsGradeCard {
393 #[prost(string, tag = "1")]
395 pub title: ::prost::alloc::string::String,
396 #[prost(string, tag = "2")]
398 pub description: ::prost::alloc::string::String,
399 #[prost(string, tag = "3")]
401 pub image: ::prost::alloc::string::String,
402 #[prost(string, tag = "4")]
404 pub link: ::prost::alloc::string::String,
405}
406#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct Effects {
409 #[prost(string, tag = "1")]
411 pub preloading: ::prost::alloc::string::String,
412}
413#[derive(Clone, PartialEq, ::prost::Message)]
415pub struct Emote {
416 #[prost(int64, tag = "1")]
418 pub size: i64,
419 #[prost(string, tag = "2")]
421 pub url: ::prost::alloc::string::String,
422 #[prost(string, tag = "3")]
424 pub jump_url: ::prost::alloc::string::String,
425 #[prost(string, tag = "4")]
427 pub jump_title: ::prost::alloc::string::String,
428 #[prost(int64, tag = "5")]
430 pub id: i64,
431 #[prost(int64, tag = "6")]
433 pub package_id: i64,
434 #[prost(string, tag = "7")]
436 pub gif_url: ::prost::alloc::string::String,
437 #[prost(string, tag = "8")]
439 pub text: ::prost::alloc::string::String,
440 #[prost(string, tag = "9")]
442 pub webp_url: ::prost::alloc::string::String,
443}
444#[derive(Clone, PartialEq, ::prost::Message)]
446pub struct EmptyPage {
447 #[prost(string, tag = "1")]
449 pub image_url: ::prost::alloc::string::String,
450 #[prost(message, repeated, tag = "2")]
452 pub texts: ::prost::alloc::vec::Vec<empty_page::Text>,
453 #[prost(message, optional, tag = "3")]
455 pub left_button: ::core::option::Option<empty_page::Button>,
456 #[prost(message, optional, tag = "4")]
458 pub right_button: ::core::option::Option<empty_page::Button>,
459}
460pub mod empty_page {
462 #[derive(Clone, PartialEq, ::prost::Message)]
464 pub struct Button {
465 #[prost(string, tag = "1")]
467 pub title: ::prost::alloc::string::String,
468 #[prost(enumeration = "Action", tag = "2")]
470 pub action: i32,
471 }
472 #[derive(Clone, PartialEq, ::prost::Message)]
474 pub struct Text {
475 #[prost(string, tag = "1")]
477 pub raw: ::prost::alloc::string::String,
478 #[prost(message, optional, tag = "2")]
480 pub style: ::core::option::Option<super::TextStyle>,
481 #[prost(enumeration = "Action", tag = "3")]
483 pub action: i32,
484 }
485 #[derive(
487 Clone,
488 Copy,
489 Debug,
490 PartialEq,
491 Eq,
492 Hash,
493 PartialOrd,
494 Ord,
495 ::prost::Enumeration
496 )]
497 #[repr(i32)]
498 pub enum Action {
499 Unavailable = 0,
501 ShowKeyboard = 1,
503 SendReplyWithBoldText = 2,
505 }
506 impl Action {
507 pub fn as_str_name(&self) -> &'static str {
512 match self {
513 Self::Unavailable => "UNAVAILABLE",
514 Self::ShowKeyboard => "SHOW_KEYBOARD",
515 Self::SendReplyWithBoldText => "SEND_REPLY_WITH_BOLD_TEXT",
516 }
517 }
518 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
520 match value {
521 "UNAVAILABLE" => Some(Self::Unavailable),
522 "SHOW_KEYBOARD" => Some(Self::ShowKeyboard),
523 "SEND_REPLY_WITH_BOLD_TEXT" => Some(Self::SendReplyWithBoldText),
524 _ => None,
525 }
526 }
527 }
528}
529#[derive(Clone, PartialEq, ::prost::Message)]
531pub struct Form {
532 #[prost(int32, tag = "1")]
534 pub r#type: i32,
535 #[prost(message, repeated, tag = "2")]
537 pub options: ::prost::alloc::vec::Vec<QoeOption>,
538}
539#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct GoodsSearchItem {
542 #[prost(int64, tag = "1")]
544 pub id: i64,
545 #[prost(string, tag = "2")]
547 pub name: ::prost::alloc::string::String,
548 #[prost(string, tag = "3")]
550 pub price: ::prost::alloc::string::String,
551 #[prost(string, tag = "4")]
553 pub income: ::prost::alloc::string::String,
554 #[prost(string, tag = "5")]
556 pub img: ::prost::alloc::string::String,
557 #[prost(string, tag = "6")]
559 pub label: ::prost::alloc::string::String,
560}
561#[derive(Clone, PartialEq, ::prost::Message)]
563pub struct LikeInfo {
564 #[prost(message, repeated, tag = "1")]
566 pub items: ::prost::alloc::vec::Vec<like_info::Item>,
567 #[prost(string, tag = "2")]
569 pub title: ::prost::alloc::string::String,
570}
571pub mod like_info {
573 #[derive(Clone, PartialEq, ::prost::Message)]
575 pub struct Item {
576 #[prost(message, optional, tag = "1")]
578 pub member: ::core::option::Option<super::Member>,
579 }
580}
581#[derive(Clone, PartialEq, ::prost::Message)]
583pub struct Lottery {
584 #[prost(int64, tag = "1")]
586 pub lottery_id: i64,
587 #[prost(int64, tag = "2")]
589 pub lottery_status: i64,
590 #[prost(int64, tag = "3")]
592 pub lottery_mid: i64,
593 #[prost(int64, tag = "4")]
595 pub lottery_time: i64,
596 #[prost(int64, tag = "5")]
598 pub oid: i64,
599 #[prost(int64, tag = "6")]
601 pub r#type: i64,
602 #[prost(int64, tag = "7")]
604 pub ctime: i64,
605 #[prost(message, optional, tag = "8")]
607 pub content: ::core::option::Option<Content>,
608 #[prost(message, optional, tag = "9")]
610 pub member: ::core::option::Option<Member>,
611 #[prost(message, optional, tag = "10")]
613 pub reply_control: ::core::option::Option<ReplyControl>,
614}
615#[derive(Clone, PartialEq, ::prost::Message)]
617pub struct MainListReply {
618 #[prost(message, optional, tag = "1")]
620 pub cursor: ::core::option::Option<CursorReply>,
621 #[prost(message, repeated, tag = "2")]
623 pub replies: ::prost::alloc::vec::Vec<ReplyInfo>,
624 #[prost(message, optional, tag = "3")]
626 pub subject_control: ::core::option::Option<SubjectControl>,
627 #[prost(message, optional, tag = "4")]
629 pub up_top: ::core::option::Option<ReplyInfo>,
630 #[prost(message, optional, tag = "5")]
632 pub admin_top: ::core::option::Option<ReplyInfo>,
633 #[prost(message, optional, tag = "6")]
635 pub vote_top: ::core::option::Option<ReplyInfo>,
636 #[prost(message, optional, tag = "7")]
638 pub notice: ::core::option::Option<Notice>,
639 #[prost(message, optional, tag = "8")]
641 pub lottery: ::core::option::Option<Lottery>,
642 #[prost(message, optional, tag = "9")]
644 pub activity: ::core::option::Option<Activity>,
645 #[prost(message, optional, tag = "10")]
647 pub up_selection: ::core::option::Option<UpSelection>,
648 #[prost(message, optional, tag = "11")]
650 pub cm: ::core::option::Option<Cm>,
651 #[prost(message, optional, tag = "12")]
653 pub effects: ::core::option::Option<Effects>,
654 #[prost(message, optional, tag = "13")]
656 pub operation: ::core::option::Option<Operation>,
657 #[prost(message, repeated, tag = "14")]
659 pub top_replies: ::prost::alloc::vec::Vec<ReplyInfo>,
660 #[prost(message, optional, tag = "15")]
662 pub qoe: ::core::option::Option<QoeInfo>,
663 #[prost(map = "string, int32", tag = "16")]
665 pub callbacks: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
666 #[prost(message, optional, tag = "17")]
668 pub operation_v2: ::core::option::Option<OperationV2>,
669 #[prost(enumeration = "Mode", tag = "18")]
671 pub mode: i32,
672 #[prost(string, tag = "19")]
674 pub mode_text: ::prost::alloc::string::String,
675 #[prost(message, optional, tag = "20")]
677 pub pagination_reply: ::core::option::Option<
678 super::super::super::super::pagination::FeedPaginationReply,
679 >,
680 #[prost(string, tag = "21")]
682 pub session_id: ::prost::alloc::string::String,
683 #[prost(string, tag = "22")]
685 pub report_params: ::prost::alloc::string::String,
686 #[prost(message, optional, tag = "23")]
688 pub vote_card: ::core::option::Option<VoteCard>,
689 #[prost(message, optional, tag = "24")]
691 pub esports_grade_card: ::core::option::Option<ESportsGradeCard>,
692 #[prost(string, tag = "25")]
694 pub context_feature: ::prost::alloc::string::String,
695 #[prost(string, tag = "26")]
697 pub pagination_end_text: ::prost::alloc::string::String,
698 #[prost(message, repeated, tag = "27")]
700 pub mixed_cards: ::prost::alloc::vec::Vec<MixedCard>,
701}
702#[derive(Clone, PartialEq, ::prost::Message)]
704pub struct MainListReq {
705 #[prost(int64, tag = "1")]
707 pub oid: i64,
708 #[prost(int64, tag = "2")]
710 pub r#type: i64,
711 #[prost(message, optional, tag = "3")]
713 pub cursor: ::core::option::Option<CursorReq>,
714 #[prost(string, tag = "4")]
716 pub extra: ::prost::alloc::string::String,
717 #[prost(string, tag = "5")]
719 pub ad_extra: ::prost::alloc::string::String,
720 #[prost(int64, tag = "6")]
722 pub rpid: i64,
723 #[prost(int64, tag = "7")]
725 pub seek_rpid: i64,
726 #[prost(string, tag = "8")]
728 pub filter_tag_name: ::prost::alloc::string::String,
729 #[prost(enumeration = "Mode", tag = "9")]
731 pub mode: i32,
732 #[prost(message, optional, tag = "10")]
734 pub pagination: ::core::option::Option<
735 super::super::super::super::pagination::FeedPagination,
736 >,
737 #[prost(int64, repeated, tag = "11")]
739 pub client_recall_rpids: ::prost::alloc::vec::Vec<i64>,
740 #[prost(message, optional, tag = "12")]
742 pub word_search_param: ::core::option::Option<WordSearchParam>,
743}
744#[derive(Clone, PartialEq, ::prost::Message)]
746pub struct Member {
747 #[prost(int64, tag = "1")]
749 pub mid: i64,
750 #[prost(string, tag = "2")]
752 pub name: ::prost::alloc::string::String,
753 #[prost(string, tag = "3")]
755 pub sex: ::prost::alloc::string::String,
756 #[prost(string, tag = "4")]
758 pub face: ::prost::alloc::string::String,
759 #[prost(int64, tag = "5")]
761 pub level: i64,
762 #[prost(int64, tag = "6")]
764 pub official_verify_type: i64,
765 #[prost(int64, tag = "7")]
767 pub vip_type: i64,
768 #[prost(int64, tag = "8")]
770 pub vip_status: i64,
771 #[prost(int64, tag = "9")]
773 pub vip_theme_type: i64,
774 #[prost(string, tag = "10")]
776 pub vip_label_path: ::prost::alloc::string::String,
777 #[prost(string, tag = "11")]
779 pub garb_pendant_image: ::prost::alloc::string::String,
780 #[prost(string, tag = "12")]
782 pub garb_card_image: ::prost::alloc::string::String,
783 #[prost(string, tag = "13")]
785 pub garb_card_image_with_focus: ::prost::alloc::string::String,
786 #[prost(string, tag = "14")]
788 pub garb_card_jump_url: ::prost::alloc::string::String,
789 #[prost(string, tag = "15")]
791 pub garb_card_number: ::prost::alloc::string::String,
792 #[prost(string, tag = "16")]
794 pub garb_card_fan_color: ::prost::alloc::string::String,
795 #[prost(bool, tag = "17")]
797 pub garb_card_is_fan: bool,
798 #[prost(string, tag = "18")]
800 pub fans_medal_name: ::prost::alloc::string::String,
801 #[prost(int64, tag = "19")]
803 pub fans_medal_level: i64,
804 #[prost(int64, tag = "20")]
806 pub fans_medal_color: i64,
807 #[prost(string, tag = "21")]
809 pub vip_nickname_color: ::prost::alloc::string::String,
810 #[prost(int32, tag = "22")]
812 pub vip_avatar_subscript: i32,
813 #[prost(string, tag = "23")]
815 pub vip_label_text: ::prost::alloc::string::String,
816 #[prost(string, tag = "24")]
818 pub vip_label_theme: ::prost::alloc::string::String,
819 #[prost(int64, tag = "25")]
821 pub fans_medal_color_end: i64,
822 #[prost(int64, tag = "26")]
824 pub fans_medal_color_border: i64,
825 #[prost(int64, tag = "27")]
827 pub fans_medal_color_name: i64,
828 #[prost(int64, tag = "28")]
830 pub fans_medal_color_level: i64,
831 #[prost(int64, tag = "29")]
833 pub fans_guard_level: i64,
834 #[prost(int32, tag = "30")]
836 pub face_nft: i32,
837 #[prost(int32, tag = "31")]
839 pub face_nft_new: i32,
840 #[prost(int32, tag = "32")]
842 pub is_senior_member: i32,
843 #[prost(message, optional, tag = "33")]
845 pub nft_interaction: ::core::option::Option<member::NftInteraction>,
846 #[prost(string, tag = "34")]
848 pub fans_guard_icon: ::prost::alloc::string::String,
849 #[prost(string, tag = "35")]
851 pub fans_honor_icon: ::prost::alloc::string::String,
852}
853pub mod member {
855 #[derive(Clone, PartialEq, ::prost::Message)]
857 pub struct NftInteraction {
858 #[prost(string, tag = "1")]
860 pub itype: ::prost::alloc::string::String,
861 #[prost(string, tag = "2")]
863 pub metadata_url: ::prost::alloc::string::String,
864 #[prost(string, tag = "3")]
866 pub nft_id: ::prost::alloc::string::String,
867 #[prost(message, optional, tag = "4")]
869 pub region: ::core::option::Option<nft_interaction::Region>,
870 }
871 pub mod nft_interaction {
873 #[derive(Clone, PartialEq, ::prost::Message)]
875 pub struct Region {
876 #[prost(enumeration = "RegionType", tag = "1")]
878 pub r#type: i32,
879 #[prost(string, tag = "2")]
881 pub icon: ::prost::alloc::string::String,
882 #[prost(enumeration = "ShowStatus", tag = "3")]
884 pub show_status: i32,
885 }
886 #[derive(
888 Clone,
889 Copy,
890 Debug,
891 PartialEq,
892 Eq,
893 Hash,
894 PartialOrd,
895 Ord,
896 ::prost::Enumeration
897 )]
898 #[repr(i32)]
899 pub enum RegionType {
900 Default = 0,
902 Mainland = 1,
904 Gat = 2,
906 }
907 impl RegionType {
908 pub fn as_str_name(&self) -> &'static str {
913 match self {
914 Self::Default => "DEFAULT",
915 Self::Mainland => "MAINLAND",
916 Self::Gat => "GAT",
917 }
918 }
919 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
921 match value {
922 "DEFAULT" => Some(Self::Default),
923 "MAINLAND" => Some(Self::Mainland),
924 "GAT" => Some(Self::Gat),
925 _ => None,
926 }
927 }
928 }
929 #[derive(
931 Clone,
932 Copy,
933 Debug,
934 PartialEq,
935 Eq,
936 Hash,
937 PartialOrd,
938 Ord,
939 ::prost::Enumeration
940 )]
941 #[repr(i32)]
942 pub enum ShowStatus {
943 Showdefault = 0,
945 Zoominmainland = 1,
947 Raw = 2,
949 }
950 impl ShowStatus {
951 pub fn as_str_name(&self) -> &'static str {
956 match self {
957 Self::Showdefault => "SHOWDEFAULT",
958 Self::Zoominmainland => "ZOOMINMAINLAND",
959 Self::Raw => "RAW",
960 }
961 }
962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
964 match value {
965 "SHOWDEFAULT" => Some(Self::Showdefault),
966 "ZOOMINMAINLAND" => Some(Self::Zoominmainland),
967 "RAW" => Some(Self::Raw),
968 _ => None,
969 }
970 }
971 }
972 }
973}
974#[derive(Clone, PartialEq, ::prost::Message)]
976pub struct MemberV2 {
977 #[prost(message, optional, tag = "1")]
979 pub basic: ::core::option::Option<member_v2::Basic>,
980 #[prost(message, optional, tag = "2")]
982 pub official: ::core::option::Option<member_v2::Official>,
983 #[prost(message, optional, tag = "3")]
985 pub vip: ::core::option::Option<member_v2::Vip>,
986 #[prost(message, optional, tag = "4")]
988 pub garb: ::core::option::Option<member_v2::Garb>,
989 #[prost(message, optional, tag = "5")]
991 pub medal: ::core::option::Option<member_v2::Medal>,
992 #[prost(message, optional, tag = "6")]
994 pub nft: ::core::option::Option<member_v2::Nft>,
995 #[prost(message, optional, tag = "7")]
997 pub senior: ::core::option::Option<member_v2::Senior>,
998 #[prost(message, optional, tag = "8")]
1000 pub contractor: ::core::option::Option<member_v2::Contractor>,
1001 #[prost(message, optional, tag = "9")]
1003 pub user_sailing: ::core::option::Option<
1004 super::super::super::super::vas::garb::model::UserSailing,
1005 >,
1006}
1007pub mod member_v2 {
1009 #[derive(Clone, PartialEq, ::prost::Message)]
1011 pub struct Basic {
1012 #[prost(int64, tag = "1")]
1014 pub mid: i64,
1015 #[prost(string, tag = "2")]
1017 pub name: ::prost::alloc::string::String,
1018 #[prost(string, tag = "3")]
1020 pub sex: ::prost::alloc::string::String,
1021 #[prost(string, tag = "4")]
1023 pub face: ::prost::alloc::string::String,
1024 #[prost(int64, tag = "5")]
1026 pub level: i64,
1027 #[prost(message, optional, tag = "6")]
1029 pub avatar_item: ::core::option::Option<
1030 super::super::super::super::super::dagw::component::avatar::v1::AvatarItem,
1031 >,
1032 #[prost(message, optional, tag = "7")]
1034 pub name_render: ::core::option::Option<
1035 super::super::super::super::super::account::service::v1::NameRender,
1036 >,
1037 }
1038 #[derive(Clone, PartialEq, ::prost::Message)]
1040 pub struct Contractor {
1041 #[prost(bool, tag = "1")]
1043 pub is_contractor: bool,
1044 #[prost(string, tag = "2")]
1046 pub contract_desc: ::prost::alloc::string::String,
1047 }
1048 #[derive(Clone, PartialEq, ::prost::Message)]
1050 pub struct Garb {
1051 #[prost(string, tag = "1")]
1053 pub pendant_image: ::prost::alloc::string::String,
1054 #[prost(string, tag = "2")]
1056 pub card_image: ::prost::alloc::string::String,
1057 #[prost(string, tag = "3")]
1059 pub card_image_with_focus: ::prost::alloc::string::String,
1060 #[prost(string, tag = "4")]
1062 pub card_jump_url: ::prost::alloc::string::String,
1063 #[prost(string, tag = "5")]
1065 pub card_number: ::prost::alloc::string::String,
1066 #[prost(string, tag = "6")]
1068 pub card_fan_color: ::prost::alloc::string::String,
1069 #[prost(bool, tag = "7")]
1071 pub card_is_fan: bool,
1072 #[prost(string, tag = "8")]
1074 pub fan_num_prefix: ::prost::alloc::string::String,
1075 #[prost(message, optional, tag = "9")]
1077 pub fan_num_color_format: ::core::option::Option<garb::FanNumColorFormat>,
1078 }
1079 pub mod garb {
1081 #[derive(Clone, PartialEq, ::prost::Message)]
1083 pub struct FanNumColorFormat {
1084 #[prost(string, tag = "1")]
1086 pub start_point: ::prost::alloc::string::String,
1087 #[prost(string, tag = "2")]
1089 pub end_point: ::prost::alloc::string::String,
1090 #[prost(string, repeated, tag = "3")]
1092 pub colors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1093 #[prost(int64, repeated, tag = "4")]
1095 pub gradients: ::prost::alloc::vec::Vec<i64>,
1096 }
1097 }
1098 #[derive(Clone, PartialEq, ::prost::Message)]
1100 pub struct Medal {
1101 #[prost(string, tag = "1")]
1103 pub name: ::prost::alloc::string::String,
1104 #[prost(int64, tag = "2")]
1106 pub level: i64,
1107 #[prost(int64, tag = "3")]
1109 pub color_start: i64,
1110 #[prost(int64, tag = "4")]
1112 pub color_end: i64,
1113 #[prost(int64, tag = "5")]
1115 pub color_border: i64,
1116 #[prost(int64, tag = "6")]
1118 pub color_name: i64,
1119 #[prost(int64, tag = "7")]
1121 pub color_level: i64,
1122 #[prost(int64, tag = "8")]
1124 pub guard_level: i64,
1125 #[prost(string, tag = "9")]
1127 pub first_icon: ::prost::alloc::string::String,
1128 #[prost(string, tag = "10")]
1130 pub second_icon: ::prost::alloc::string::String,
1131 #[prost(int64, tag = "11")]
1133 pub level_bg_color: i64,
1134 }
1135 #[derive(Clone, PartialEq, ::prost::Message)]
1137 pub struct Nft {
1138 #[prost(int32, tag = "1")]
1140 pub face: i32,
1141 #[prost(message, optional, tag = "2")]
1143 pub interaction: ::core::option::Option<nft::Interaction>,
1144 }
1145 pub mod nft {
1147 #[derive(Clone, PartialEq, ::prost::Message)]
1149 pub struct Interaction {
1150 #[prost(string, tag = "1")]
1152 pub itype: ::prost::alloc::string::String,
1153 #[prost(string, tag = "2")]
1155 pub metadata_url: ::prost::alloc::string::String,
1156 #[prost(string, tag = "3")]
1158 pub nft_id: ::prost::alloc::string::String,
1159 #[prost(message, optional, tag = "4")]
1161 pub region: ::core::option::Option<interaction::Region>,
1162 }
1163 pub mod interaction {
1165 #[derive(Clone, PartialEq, ::prost::Message)]
1167 pub struct Region {
1168 #[prost(enumeration = "RegionType", tag = "1")]
1170 pub r#type: i32,
1171 #[prost(string, tag = "2")]
1173 pub icon: ::prost::alloc::string::String,
1174 #[prost(enumeration = "ShowStatus", tag = "3")]
1176 pub show_status: i32,
1177 }
1178 #[derive(
1180 Clone,
1181 Copy,
1182 Debug,
1183 PartialEq,
1184 Eq,
1185 Hash,
1186 PartialOrd,
1187 Ord,
1188 ::prost::Enumeration
1189 )]
1190 #[repr(i32)]
1191 pub enum RegionType {
1192 DefaultRegionType = 0,
1194 MainlandRegionType = 1,
1196 GatRegionType = 2,
1198 }
1199 impl RegionType {
1200 pub fn as_str_name(&self) -> &'static str {
1205 match self {
1206 Self::DefaultRegionType => "DEFAULT_RegionType",
1207 Self::MainlandRegionType => "MAINLAND_RegionType",
1208 Self::GatRegionType => "GAT_RegionType",
1209 }
1210 }
1211 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1213 match value {
1214 "DEFAULT_RegionType" => Some(Self::DefaultRegionType),
1215 "MAINLAND_RegionType" => Some(Self::MainlandRegionType),
1216 "GAT_RegionType" => Some(Self::GatRegionType),
1217 _ => None,
1218 }
1219 }
1220 }
1221 #[derive(
1223 Clone,
1224 Copy,
1225 Debug,
1226 PartialEq,
1227 Eq,
1228 Hash,
1229 PartialOrd,
1230 Ord,
1231 ::prost::Enumeration
1232 )]
1233 #[repr(i32)]
1234 pub enum ShowStatus {
1235 ShowdefaultShowStatus = 0,
1237 ZoominmainlandShowStatus = 1,
1239 RawShowStatus = 2,
1241 }
1242 impl ShowStatus {
1243 pub fn as_str_name(&self) -> &'static str {
1248 match self {
1249 Self::ShowdefaultShowStatus => "SHOWDEFAULT_ShowStatus",
1250 Self::ZoominmainlandShowStatus => "ZOOMINMAINLAND_ShowStatus",
1251 Self::RawShowStatus => "RAW_ShowStatus",
1252 }
1253 }
1254 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1256 match value {
1257 "SHOWDEFAULT_ShowStatus" => Some(Self::ShowdefaultShowStatus),
1258 "ZOOMINMAINLAND_ShowStatus" => {
1259 Some(Self::ZoominmainlandShowStatus)
1260 }
1261 "RAW_ShowStatus" => Some(Self::RawShowStatus),
1262 _ => None,
1263 }
1264 }
1265 }
1266 }
1267 }
1268 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1270 pub struct Official {
1271 #[prost(int64, tag = "1")]
1273 pub verify_type: i64,
1274 }
1275 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1277 pub struct Senior {
1278 #[prost(int32, tag = "1")]
1280 pub is_senior_member: i32,
1281 #[prost(enumeration = "senior::Status", tag = "2")]
1283 pub status: i32,
1284 }
1285 pub mod senior {
1287 #[derive(
1289 Clone,
1290 Copy,
1291 Debug,
1292 PartialEq,
1293 Eq,
1294 Hash,
1295 PartialOrd,
1296 Ord,
1297 ::prost::Enumeration
1298 )]
1299 #[repr(i32)]
1300 pub enum Status {
1301 Normal = 0,
1303 Pending = 1,
1305 Senior = 2,
1307 WillExpire = 3,
1309 Expired = 4,
1311 }
1312 impl Status {
1313 pub fn as_str_name(&self) -> &'static str {
1318 match self {
1319 Self::Normal => "Normal",
1320 Self::Pending => "Pending",
1321 Self::Senior => "Senior",
1322 Self::WillExpire => "WillExpire",
1323 Self::Expired => "Expired",
1324 }
1325 }
1326 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1328 match value {
1329 "Normal" => Some(Self::Normal),
1330 "Pending" => Some(Self::Pending),
1331 "Senior" => Some(Self::Senior),
1332 "WillExpire" => Some(Self::WillExpire),
1333 "Expired" => Some(Self::Expired),
1334 _ => None,
1335 }
1336 }
1337 }
1338 }
1339 #[derive(Clone, PartialEq, ::prost::Message)]
1341 pub struct Vip {
1342 #[prost(int64, tag = "1")]
1344 pub r#type: i64,
1345 #[prost(int64, tag = "2")]
1347 pub status: i64,
1348 #[prost(int64, tag = "3")]
1350 pub theme_type: i64,
1351 #[prost(string, tag = "4")]
1353 pub label_path: ::prost::alloc::string::String,
1354 #[prost(string, tag = "5")]
1356 pub nickname_color: ::prost::alloc::string::String,
1357 #[prost(int32, tag = "6")]
1359 pub avatar_subscript: i32,
1360 #[prost(string, tag = "7")]
1362 pub label_text: ::prost::alloc::string::String,
1363 #[prost(string, tag = "8")]
1365 pub vip_label_theme: ::prost::alloc::string::String,
1366 }
1367}
1368#[derive(Clone, PartialEq, ::prost::Message)]
1370pub struct MixedCard {
1371 #[prost(enumeration = "mixed_card::Type", tag = "1")]
1373 pub r#type: i32,
1374 #[prost(string, tag = "2")]
1376 pub oid: ::prost::alloc::string::String,
1377 #[prost(int64, tag = "3")]
1379 pub display_rank: i64,
1380 #[prost(oneof = "mixed_card::Item", tags = "4")]
1382 pub item: ::core::option::Option<mixed_card::Item>,
1383}
1384pub mod mixed_card {
1386 #[derive(
1388 Clone,
1389 Copy,
1390 Debug,
1391 PartialEq,
1392 Eq,
1393 Hash,
1394 PartialOrd,
1395 Ord,
1396 ::prost::Enumeration
1397 )]
1398 #[repr(i32)]
1399 pub enum Type {
1400 Unknown = 0,
1402 Question = 1,
1404 }
1405 impl Type {
1406 pub fn as_str_name(&self) -> &'static str {
1411 match self {
1412 Self::Unknown => "UNKNOWN",
1413 Self::Question => "QUESTION",
1414 }
1415 }
1416 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1418 match value {
1419 "UNKNOWN" => Some(Self::Unknown),
1420 "QUESTION" => Some(Self::Question),
1421 _ => None,
1422 }
1423 }
1424 }
1425 #[derive(Clone, PartialEq, ::prost::Oneof)]
1427 pub enum Item {
1428 #[prost(message, tag = "4")]
1430 Question(super::QuestionCard),
1431 }
1432}
1433#[derive(Clone, PartialEq, ::prost::Message)]
1435pub struct Notice {
1436 #[prost(int64, tag = "1")]
1438 pub id: i64,
1439 #[prost(string, tag = "2")]
1441 pub content: ::prost::alloc::string::String,
1442 #[prost(string, tag = "3")]
1444 pub link: ::prost::alloc::string::String,
1445}
1446#[derive(Clone, PartialEq, ::prost::Message)]
1448pub struct Operation {
1449 #[prost(enumeration = "operation::Type", tag = "1")]
1451 pub r#type: i32,
1452 #[prost(int64, tag = "2")]
1454 pub id: i64,
1455 #[prost(message, optional, tag = "3")]
1457 pub title: ::core::option::Option<OperationTitle>,
1458 #[prost(message, optional, tag = "4")]
1460 pub subtitle: ::core::option::Option<OperationTitle>,
1461 #[prost(string, tag = "5")]
1463 pub link: ::prost::alloc::string::String,
1464 #[prost(string, tag = "6")]
1466 pub report_extra: ::prost::alloc::string::String,
1467 #[prost(string, tag = "7")]
1469 pub icon: ::prost::alloc::string::String,
1470}
1471pub mod operation {
1473 #[derive(
1475 Clone,
1476 Copy,
1477 Debug,
1478 PartialEq,
1479 Eq,
1480 Hash,
1481 PartialOrd,
1482 Ord,
1483 ::prost::Enumeration
1484 )]
1485 #[repr(i32)]
1486 pub enum Type {
1487 UnknownType = 0,
1489 Note = 1,
1491 Topic = 2,
1493 Notice = 3,
1495 }
1496 impl Type {
1497 pub fn as_str_name(&self) -> &'static str {
1502 match self {
1503 Self::UnknownType => "UNKNOWN_Type",
1504 Self::Note => "NOTE",
1505 Self::Topic => "TOPIC",
1506 Self::Notice => "NOTICE",
1507 }
1508 }
1509 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1511 match value {
1512 "UNKNOWN_Type" => Some(Self::UnknownType),
1513 "NOTE" => Some(Self::Note),
1514 "TOPIC" => Some(Self::Topic),
1515 "NOTICE" => Some(Self::Notice),
1516 _ => None,
1517 }
1518 }
1519 }
1520}
1521#[derive(Clone, PartialEq, ::prost::Message)]
1523pub struct OperationTitle {
1524 #[prost(string, tag = "1")]
1526 pub content: ::prost::alloc::string::String,
1527 #[prost(bool, tag = "2")]
1529 pub is_highlight: bool,
1530}
1531#[derive(Clone, PartialEq, ::prost::Message)]
1533pub struct OperationV2 {
1534 #[prost(enumeration = "operation_v2::Type", tag = "1")]
1536 pub r#type: i32,
1537 #[prost(string, tag = "2")]
1539 pub prefix_text: ::prost::alloc::string::String,
1540 #[prost(message, optional, tag = "3")]
1542 pub icon: ::core::option::Option<operation_v2::Icon>,
1543 #[prost(string, tag = "4")]
1545 pub title: ::prost::alloc::string::String,
1546 #[prost(string, tag = "5")]
1548 pub link: ::prost::alloc::string::String,
1549 #[prost(string, tag = "6")]
1551 pub report_extra: ::prost::alloc::string::String,
1552}
1553pub mod operation_v2 {
1555 #[derive(Clone, PartialEq, ::prost::Message)]
1557 pub struct Icon {
1558 #[prost(enumeration = "icon::Position", tag = "1")]
1560 pub position: i32,
1561 #[prost(string, tag = "2")]
1563 pub url: ::prost::alloc::string::String,
1564 }
1565 pub mod icon {
1567 #[derive(
1569 Clone,
1570 Copy,
1571 Debug,
1572 PartialEq,
1573 Eq,
1574 Hash,
1575 PartialOrd,
1576 Ord,
1577 ::prost::Enumeration
1578 )]
1579 #[repr(i32)]
1580 pub enum Position {
1581 Prefix = 0,
1583 Suffix = 1,
1585 }
1586 impl Position {
1587 pub fn as_str_name(&self) -> &'static str {
1592 match self {
1593 Self::Prefix => "PREFIX",
1594 Self::Suffix => "SUFFIX",
1595 }
1596 }
1597 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1599 match value {
1600 "PREFIX" => Some(Self::Prefix),
1601 "SUFFIX" => Some(Self::Suffix),
1602 _ => None,
1603 }
1604 }
1605 }
1606 }
1607 #[derive(
1609 Clone,
1610 Copy,
1611 Debug,
1612 PartialEq,
1613 Eq,
1614 Hash,
1615 PartialOrd,
1616 Ord,
1617 ::prost::Enumeration
1618 )]
1619 #[repr(i32)]
1620 pub enum Type {
1621 UnknownType = 0,
1623 NoteType = 1,
1625 TopicType = 2,
1627 Search = 4,
1629 }
1630 impl Type {
1631 pub fn as_str_name(&self) -> &'static str {
1636 match self {
1637 Self::UnknownType => "UNKNOWN_Type",
1638 Self::NoteType => "NOTE_Type",
1639 Self::TopicType => "TOPIC_Type",
1640 Self::Search => "SEARCH",
1641 }
1642 }
1643 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1645 match value {
1646 "UNKNOWN_Type" => Some(Self::UnknownType),
1647 "NOTE_Type" => Some(Self::NoteType),
1648 "TOPIC_Type" => Some(Self::TopicType),
1649 "SEARCH" => Some(Self::Search),
1650 _ => None,
1651 }
1652 }
1653 }
1654}
1655#[derive(Clone, PartialEq, ::prost::Message)]
1657pub struct PgcVideoSearchItem {
1658 #[prost(string, tag = "1")]
1660 pub title: ::prost::alloc::string::String,
1661 #[prost(string, tag = "2")]
1663 pub category: ::prost::alloc::string::String,
1664 #[prost(string, tag = "3")]
1666 pub cover: ::prost::alloc::string::String,
1667}
1668#[derive(Clone, PartialEq, ::prost::Message)]
1670pub struct Picture {
1671 #[prost(string, tag = "1")]
1673 pub img_src: ::prost::alloc::string::String,
1674 #[prost(double, tag = "2")]
1676 pub img_width: f64,
1677 #[prost(double, tag = "3")]
1679 pub img_height: f64,
1680 #[prost(double, tag = "4")]
1682 pub img_size: f64,
1683 #[prost(string, tag = "5")]
1685 pub top_right_icon: ::prost::alloc::string::String,
1686 #[prost(bool, tag = "6")]
1688 pub play_gif_thumbnail: bool,
1689}
1690#[derive(Clone, PartialEq, ::prost::Message)]
1692pub struct PreviewListReply {
1693 #[prost(message, optional, tag = "1")]
1695 pub cursor: ::core::option::Option<CursorReply>,
1696 #[prost(message, repeated, tag = "2")]
1698 pub replies: ::prost::alloc::vec::Vec<ReplyInfo>,
1699 #[prost(message, optional, tag = "3")]
1701 pub subject_control: ::core::option::Option<SubjectControl>,
1702 #[prost(message, optional, tag = "4")]
1704 pub up_top: ::core::option::Option<ReplyInfo>,
1705 #[prost(message, optional, tag = "5")]
1707 pub admin_top: ::core::option::Option<ReplyInfo>,
1708 #[prost(message, optional, tag = "6")]
1710 pub vote_top: ::core::option::Option<ReplyInfo>,
1711}
1712#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1714pub struct PreviewListReq {
1715 #[prost(int64, tag = "1")]
1717 pub oid: i64,
1718 #[prost(int64, tag = "2")]
1720 pub r#type: i64,
1721 #[prost(message, optional, tag = "3")]
1723 pub cursor: ::core::option::Option<CursorReq>,
1724}
1725#[derive(Clone, PartialEq, ::prost::Message)]
1727pub struct QoeInfo {
1728 #[prost(int64, tag = "1")]
1730 pub id: i64,
1731 #[prost(int32, tag = "2")]
1733 pub r#type: i32,
1734 #[prost(int32, tag = "3")]
1736 pub style: i32,
1737 #[prost(string, tag = "4")]
1739 pub title: ::prost::alloc::string::String,
1740 #[prost(string, tag = "5")]
1742 pub feedback_title: ::prost::alloc::string::String,
1743 #[prost(message, repeated, tag = "6")]
1745 pub score_items: ::prost::alloc::vec::Vec<QoeScoreItem>,
1746 #[prost(int64, tag = "7")]
1748 pub display_rank: i64,
1749 #[prost(message, optional, tag = "8")]
1751 pub form: ::core::option::Option<Form>,
1752}
1753#[derive(Clone, PartialEq, ::prost::Message)]
1755pub struct QoeOption {
1756 #[prost(string, tag = "1")]
1758 pub title: ::prost::alloc::string::String,
1759 #[prost(float, tag = "2")]
1761 pub score: f32,
1762 #[prost(string, tag = "3")]
1764 pub img_url: ::prost::alloc::string::String,
1765 #[prost(string, repeated, tag = "4")]
1767 pub desc: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1768}
1769#[derive(Clone, PartialEq, ::prost::Message)]
1771pub struct QoeOptionDesc {
1772 #[prost(string, repeated, tag = "1")]
1774 pub desc: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1775}
1776#[derive(Clone, PartialEq, ::prost::Message)]
1778pub struct QoeScoreItem {
1779 #[prost(string, tag = "1")]
1781 pub title: ::prost::alloc::string::String,
1782 #[prost(string, tag = "2")]
1784 pub url: ::prost::alloc::string::String,
1785 #[prost(float, tag = "3")]
1787 pub score: f32,
1788}
1789#[derive(Clone, PartialEq, ::prost::Message)]
1791pub struct QuestionCard {
1792 #[prost(message, optional, tag = "1")]
1794 pub question: ::core::option::Option<question_card::Question>,
1795 #[prost(message, optional, tag = "2")]
1797 pub stat: ::core::option::Option<QuestionCardStat>,
1798 #[prost(string, tag = "3")]
1800 pub bottom_text: ::prost::alloc::string::String,
1801}
1802pub mod question_card {
1804 #[derive(Clone, PartialEq, ::prost::Message)]
1806 pub struct Option {
1807 #[prost(string, tag = "1")]
1809 pub key: ::prost::alloc::string::String,
1810 #[prost(string, tag = "2")]
1812 pub title: ::prost::alloc::string::String,
1813 }
1814 #[derive(Clone, PartialEq, ::prost::Message)]
1816 pub struct Question {
1817 #[prost(int64, tag = "1")]
1819 pub qid: i64,
1820 #[prost(string, tag = "2")]
1822 pub title: ::prost::alloc::string::String,
1823 #[prost(bool, tag = "3")]
1825 pub must_right: bool,
1826 #[prost(message, repeated, tag = "4")]
1828 pub options: ::prost::alloc::vec::Vec<Option>,
1829 }
1830}
1831#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1833pub struct QuestionCardStat {
1834 #[prost(int64, tag = "1")]
1836 pub right_cnt: i64,
1837 #[prost(int64, tag = "2")]
1839 pub right_mid_cnt: i64,
1840 #[prost(int64, tag = "3")]
1842 pub submit_mid_cnt: i64,
1843}
1844#[derive(Clone, PartialEq, ::prost::Message)]
1846pub struct ReplyCardLabel {
1847 #[prost(string, tag = "1")]
1849 pub text_content: ::prost::alloc::string::String,
1850 #[prost(string, tag = "2")]
1852 pub text_color_day: ::prost::alloc::string::String,
1853 #[prost(string, tag = "3")]
1855 pub text_color_night: ::prost::alloc::string::String,
1856 #[prost(string, tag = "4")]
1858 pub label_color_day: ::prost::alloc::string::String,
1859 #[prost(string, tag = "5")]
1861 pub label_color_night: ::prost::alloc::string::String,
1862 #[prost(string, tag = "6")]
1864 pub image: ::prost::alloc::string::String,
1865 #[prost(enumeration = "reply_card_label::Type", tag = "7")]
1867 pub r#type: i32,
1868 #[prost(string, tag = "8")]
1870 pub background: ::prost::alloc::string::String,
1871 #[prost(double, tag = "9")]
1873 pub background_width: f64,
1874 #[prost(double, tag = "10")]
1876 pub background_height: f64,
1877 #[prost(string, tag = "11")]
1879 pub jump_url: ::prost::alloc::string::String,
1880 #[prost(int64, tag = "12")]
1882 pub effect: i64,
1883 #[prost(int64, tag = "13")]
1885 pub effect_start_time: i64,
1886}
1887pub mod reply_card_label {
1889 #[derive(
1891 Clone,
1892 Copy,
1893 Debug,
1894 PartialEq,
1895 Eq,
1896 Hash,
1897 PartialOrd,
1898 Ord,
1899 ::prost::Enumeration
1900 )]
1901 #[repr(i32)]
1902 pub enum Type {
1903 Underline = 0,
1905 Background = 1,
1907 }
1908 impl Type {
1909 pub fn as_str_name(&self) -> &'static str {
1914 match self {
1915 Self::Underline => "UNDERLINE",
1916 Self::Background => "BACKGROUND",
1917 }
1918 }
1919 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1921 match value {
1922 "UNDERLINE" => Some(Self::Underline),
1923 "BACKGROUND" => Some(Self::Background),
1924 _ => None,
1925 }
1926 }
1927 }
1928}
1929#[derive(Clone, PartialEq, ::prost::Message)]
1931pub struct ReplyControl {
1932 #[prost(int64, tag = "1")]
1934 pub action: i64,
1935 #[prost(bool, tag = "2")]
1937 pub up_like: bool,
1938 #[prost(bool, tag = "3")]
1940 pub up_reply: bool,
1941 #[prost(bool, tag = "4")]
1943 pub show_follow_btn: bool,
1944 #[prost(bool, tag = "5")]
1946 pub is_assist: bool,
1947 #[prost(string, tag = "6")]
1949 pub label_text: ::prost::alloc::string::String,
1950 #[prost(bool, tag = "7")]
1952 pub following: bool,
1953 #[prost(bool, tag = "8")]
1955 pub followed: bool,
1956 #[prost(bool, tag = "9")]
1958 pub blocked: bool,
1959 #[prost(bool, tag = "10")]
1961 pub has_folded_reply: bool,
1962 #[prost(bool, tag = "11")]
1964 pub is_folded_reply: bool,
1965 #[prost(bool, tag = "12")]
1967 pub is_up_top: bool,
1968 #[prost(bool, tag = "13")]
1970 pub is_admin_top: bool,
1971 #[prost(bool, tag = "14")]
1973 pub is_vote_top: bool,
1974 #[prost(int64, tag = "15")]
1976 pub max_line: i64,
1977 #[prost(bool, tag = "16")]
1979 pub invisible: bool,
1980 #[prost(bool, tag = "17")]
1982 pub is_contractor: bool,
1983 #[prost(bool, tag = "18")]
1985 pub is_note: bool,
1986 #[prost(message, repeated, tag = "19")]
1988 pub card_labels: ::prost::alloc::vec::Vec<ReplyCardLabel>,
1989 #[prost(string, tag = "20")]
1991 pub sub_reply_entry_text: ::prost::alloc::string::String,
1992 #[prost(string, tag = "21")]
1994 pub sub_reply_title_text: ::prost::alloc::string::String,
1995 #[prost(string, tag = "22")]
1997 pub contract_desc: ::prost::alloc::string::String,
1998 #[prost(string, tag = "23")]
2000 pub time_desc: ::prost::alloc::string::String,
2001 #[prost(string, tag = "24")]
2003 pub biz_scene: ::prost::alloc::string::String,
2004 #[prost(string, tag = "25")]
2006 pub location: ::prost::alloc::string::String,
2007 #[prost(bool, tag = "26")]
2009 pub fold_pictures: bool,
2010 #[prost(bool, tag = "27")]
2012 pub is_note_v2: bool,
2013 #[prost(bool, tag = "28")]
2015 pub hide_note_icon: bool,
2016 #[prost(string, tag = "29")]
2018 pub cm_recommend_component: ::prost::alloc::string::String,
2019 #[prost(message, optional, tag = "30")]
2021 pub vote_option: ::core::option::Option<reply_control::VoteOption>,
2022 #[prost(string, tag = "31")]
2024 pub charged_desc: ::prost::alloc::string::String,
2025 #[prost(message, optional, tag = "32")]
2027 pub grade_record: ::core::option::Option<reply_control::GradeRecord>,
2028 #[prost(string, tag = "33")]
2030 pub preset_reply_text: ::prost::alloc::string::String,
2031 #[prost(message, optional, tag = "34")]
2033 pub easter_egg_label: ::core::option::Option<reply_control::EasterEggLabel>,
2034 #[prost(string, tag = "35")]
2036 pub context_feature: ::prost::alloc::string::String,
2037 #[prost(message, optional, tag = "36")]
2039 pub insert_effect: ::core::option::Option<reply_control::InsertEffect>,
2040}
2041pub mod reply_control {
2043 #[derive(Clone, PartialEq, ::prost::Message)]
2045 pub struct EasterEggLabel {
2046 #[prost(string, tag = "1")]
2048 pub image: ::prost::alloc::string::String,
2049 #[prost(string, tag = "2")]
2051 pub jump_url: ::prost::alloc::string::String,
2052 }
2053 #[derive(Clone, PartialEq, ::prost::Message)]
2055 pub struct GradeRecord {
2056 #[prost(int32, tag = "1")]
2058 pub score: i32,
2059 #[prost(message, repeated, tag = "2")]
2061 pub texts: ::prost::alloc::vec::Vec<grade_record::Text>,
2062 }
2063 pub mod grade_record {
2065 #[derive(Clone, PartialEq, ::prost::Message)]
2067 pub struct Text {
2068 #[prost(string, tag = "1")]
2070 pub raw: ::prost::alloc::string::String,
2071 #[prost(message, optional, tag = "2")]
2073 pub style: ::core::option::Option<super::super::TextStyle>,
2074 }
2075 }
2076 #[derive(Clone, PartialEq, ::prost::Message)]
2078 pub struct InsertEffect {
2079 #[prost(string, tag = "1")]
2081 pub content: ::prost::alloc::string::String,
2082 #[prost(string, tag = "2")]
2084 pub icon: ::prost::alloc::string::String,
2085 }
2086 #[derive(Clone, PartialEq, ::prost::Message)]
2088 pub struct VoteOption {
2089 #[prost(enumeration = "vote_option::LabelKind", tag = "1")]
2091 pub label_kind: i32,
2092 #[prost(string, tag = "2")]
2094 pub desc: ::prost::alloc::string::String,
2095 #[prost(int64, tag = "3")]
2097 pub idx: i64,
2098 #[prost(int64, tag = "4")]
2100 pub vote_id: i64,
2101 }
2102 pub mod vote_option {
2104 #[derive(
2106 Clone,
2107 Copy,
2108 Debug,
2109 PartialEq,
2110 Eq,
2111 Hash,
2112 PartialOrd,
2113 Ord,
2114 ::prost::Enumeration
2115 )]
2116 #[repr(i32)]
2117 pub enum LabelKind {
2118 DefaultLabelKind = 0,
2120 Red = 1,
2122 Blue = 2,
2124 Plain = 3,
2126 }
2127 impl LabelKind {
2128 pub fn as_str_name(&self) -> &'static str {
2133 match self {
2134 Self::DefaultLabelKind => "DEFAULT_LabelKind",
2135 Self::Red => "RED",
2136 Self::Blue => "BLUE",
2137 Self::Plain => "PLAIN",
2138 }
2139 }
2140 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2142 match value {
2143 "DEFAULT_LabelKind" => Some(Self::DefaultLabelKind),
2144 "RED" => Some(Self::Red),
2145 "BLUE" => Some(Self::Blue),
2146 "PLAIN" => Some(Self::Plain),
2147 _ => None,
2148 }
2149 }
2150 }
2151 }
2152}
2153#[derive(Clone, PartialEq, ::prost::Message)]
2155pub struct ReplyExtra {
2156 #[prost(int64, tag = "1")]
2158 pub season_id: i64,
2159 #[prost(int64, tag = "2")]
2161 pub season_type: i64,
2162 #[prost(int64, tag = "3")]
2164 pub ep_id: i64,
2165 #[prost(bool, tag = "4")]
2167 pub is_story: bool,
2168 #[prost(string, tag = "5")]
2170 pub spmid: ::prost::alloc::string::String,
2171 #[prost(string, tag = "6")]
2173 pub from_spmid: ::prost::alloc::string::String,
2174 #[prost(bool, tag = "7")]
2176 pub disable_underline: bool,
2177 #[prost(bool, tag = "8")]
2179 pub disable_we_search: bool,
2180 #[prost(bool, tag = "9")]
2182 pub disable_filter_tag: bool,
2183 #[prost(bool, tag = "10")]
2185 pub is_activity_mode: bool,
2186}
2187#[derive(Clone, PartialEq, ::prost::Message)]
2189pub struct ReplyInfo {
2190 #[prost(message, repeated, tag = "1")]
2192 pub replies: ::prost::alloc::vec::Vec<ReplyInfo>,
2193 #[prost(int64, tag = "2")]
2195 pub id: i64,
2196 #[prost(int64, tag = "3")]
2198 pub oid: i64,
2199 #[prost(int64, tag = "4")]
2201 pub r#type: i64,
2202 #[prost(int64, tag = "5")]
2204 pub mid: i64,
2205 #[prost(int64, tag = "6")]
2207 pub root: i64,
2208 #[prost(int64, tag = "7")]
2210 pub parent: i64,
2211 #[prost(int64, tag = "8")]
2213 pub dialog: i64,
2214 #[prost(int64, tag = "9")]
2216 pub like: i64,
2217 #[prost(int64, tag = "10")]
2219 pub ctime: i64,
2220 #[prost(int64, tag = "11")]
2222 pub count: i64,
2223 #[prost(message, optional, tag = "12")]
2225 pub content: ::core::option::Option<Content>,
2226 #[prost(message, optional, tag = "13")]
2228 pub member: ::core::option::Option<Member>,
2229 #[prost(message, optional, tag = "14")]
2231 pub reply_control: ::core::option::Option<ReplyControl>,
2232 #[prost(message, optional, tag = "15")]
2234 pub member_v2: ::core::option::Option<MemberV2>,
2235 #[prost(string, tag = "16")]
2237 pub track_info: ::prost::alloc::string::String,
2238}
2239#[derive(Clone, PartialEq, ::prost::Message)]
2241pub struct ReplyInfoReply {
2242 #[prost(message, optional, tag = "1")]
2244 pub reply: ::core::option::Option<ReplyInfo>,
2245}
2246#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2248pub struct ReplyInfoReq {
2249 #[prost(int64, tag = "1")]
2251 pub rpid: i64,
2252 #[prost(enumeration = "reply_info_req::ReplyInfoScene", tag = "2")]
2254 pub scene: i32,
2255}
2256pub mod reply_info_req {
2258 #[derive(
2260 Clone,
2261 Copy,
2262 Debug,
2263 PartialEq,
2264 Eq,
2265 Hash,
2266 PartialOrd,
2267 Ord,
2268 ::prost::Enumeration
2269 )]
2270 #[repr(i32)]
2271 pub enum ReplyInfoScene {
2272 Insert = 0,
2274 }
2275 impl ReplyInfoScene {
2276 pub fn as_str_name(&self) -> &'static str {
2281 match self {
2282 Self::Insert => "Insert",
2283 }
2284 }
2285 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2287 match value {
2288 "Insert" => Some(Self::Insert),
2289 _ => None,
2290 }
2291 }
2292 }
2293}
2294#[derive(Clone, PartialEq, ::prost::Message)]
2296pub struct ReplyTrackInfo {
2297 #[prost(string, tag = "1")]
2299 pub track_id: ::prost::alloc::string::String,
2300}
2301#[derive(Clone, PartialEq, ::prost::Message)]
2303pub struct RichText {
2304 #[prost(oneof = "rich_text::Item", tags = "1, 2")]
2306 pub item: ::core::option::Option<rich_text::Item>,
2307}
2308pub mod rich_text {
2310 #[derive(Clone, PartialEq, ::prost::Oneof)]
2312 pub enum Item {
2313 #[prost(message, tag = "1")]
2315 Note(super::RichTextNote),
2316 #[prost(message, tag = "2")]
2318 Opus(super::super::super::super::super::app::dynamic::v2::OpusItem),
2319 }
2320}
2321#[derive(Clone, PartialEq, ::prost::Message)]
2323pub struct RichTextNote {
2324 #[prost(string, tag = "1")]
2326 pub summary: ::prost::alloc::string::String,
2327 #[prost(string, repeated, tag = "2")]
2329 pub images: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2330 #[prost(string, tag = "3")]
2332 pub click_url: ::prost::alloc::string::String,
2333 #[prost(string, tag = "4")]
2335 pub last_mtime_text: ::prost::alloc::string::String,
2336}
2337#[derive(Clone, PartialEq, ::prost::Message)]
2339pub struct SearchItem {
2340 #[prost(string, tag = "1")]
2342 pub url: ::prost::alloc::string::String,
2343 #[prost(oneof = "search_item::Item", tags = "2, 3, 4")]
2345 pub item: ::core::option::Option<search_item::Item>,
2346}
2347pub mod search_item {
2349 #[derive(Clone, PartialEq, ::prost::Oneof)]
2351 pub enum Item {
2352 #[prost(message, tag = "2")]
2354 Goods(super::GoodsSearchItem),
2355 #[prost(message, tag = "3")]
2357 Video(super::VideoSearchItem),
2358 #[prost(message, tag = "4")]
2360 Article(super::ArticleSearchItem),
2361 }
2362}
2363#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2365pub struct SearchItemCursorReply {
2366 #[prost(bool, tag = "1")]
2368 pub has_next: bool,
2369 #[prost(int64, tag = "2")]
2371 pub next: i64,
2372}
2373#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2375pub struct SearchItemCursorReq {
2376 #[prost(int64, tag = "1")]
2378 pub next: i64,
2379 #[prost(enumeration = "SearchItemType", tag = "2")]
2381 pub item_type: i32,
2382}
2383#[derive(Clone, PartialEq, ::prost::Message)]
2385pub struct SearchItemPreHookReply {
2386 #[prost(string, tag = "1")]
2388 pub placeholder_text: ::prost::alloc::string::String,
2389 #[prost(string, tag = "2")]
2391 pub background_text: ::prost::alloc::string::String,
2392 #[prost(int32, repeated, tag = "3")]
2394 pub ordered_type: ::prost::alloc::vec::Vec<i32>,
2395}
2396#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2398pub struct SearchItemPreHookReq {
2399 #[prost(int64, tag = "1")]
2401 pub oid: i64,
2402 #[prost(int64, tag = "2")]
2404 pub r#type: i64,
2405}
2406#[derive(Clone, PartialEq, ::prost::Message)]
2408pub struct SearchItemReply {
2409 #[prost(message, optional, tag = "1")]
2411 pub cursor: ::core::option::Option<SearchItemCursorReply>,
2412 #[prost(message, repeated, tag = "2")]
2414 pub items: ::prost::alloc::vec::Vec<SearchItem>,
2415 #[prost(message, optional, tag = "3")]
2417 pub extra: ::core::option::Option<SearchItemReplyExtraInfo>,
2418}
2419#[derive(Clone, PartialEq, ::prost::Message)]
2421pub struct SearchItemReplyExtraInfo {
2422 #[prost(string, tag = "1")]
2424 pub event_id: ::prost::alloc::string::String,
2425}
2426#[derive(Clone, PartialEq, ::prost::Message)]
2428pub struct SearchItemReq {
2429 #[prost(message, optional, tag = "1")]
2431 pub cursor: ::core::option::Option<SearchItemCursorReq>,
2432 #[prost(int64, tag = "2")]
2434 pub oid: i64,
2435 #[prost(int64, tag = "3")]
2437 pub r#type: i64,
2438 #[prost(string, tag = "4")]
2440 pub keyword: ::prost::alloc::string::String,
2441}
2442#[derive(Clone, PartialEq, ::prost::Message)]
2444pub struct ShareRepliesInfoReq {
2445 #[prost(int64, repeated, tag = "1")]
2447 pub rpids: ::prost::alloc::vec::Vec<i64>,
2448 #[prost(int64, tag = "2")]
2450 pub oid: i64,
2451 #[prost(int64, tag = "3")]
2453 pub r#type: i64,
2454}
2455#[derive(Clone, PartialEq, ::prost::Message)]
2457pub struct ShareRepliesInfoResp {
2458 #[prost(message, repeated, tag = "1")]
2460 pub infos: ::prost::alloc::vec::Vec<ShareReplyInfo>,
2461 #[prost(string, tag = "2")]
2463 pub from_title: ::prost::alloc::string::String,
2464 #[prost(string, tag = "3")]
2466 pub from_up: ::prost::alloc::string::String,
2467 #[prost(string, tag = "4")]
2469 pub from_pic: ::prost::alloc::string::String,
2470 #[prost(string, tag = "5")]
2472 pub url: ::prost::alloc::string::String,
2473 #[prost(string, tag = "6")]
2475 pub slogan_pic: ::prost::alloc::string::String,
2476 #[prost(string, tag = "7")]
2478 pub slogan_text: ::prost::alloc::string::String,
2479 #[prost(message, optional, tag = "8")]
2481 pub topic: ::core::option::Option<ShareReplyTopic>,
2482 #[prost(message, optional, tag = "9")]
2484 pub extra: ::core::option::Option<share_replies_info_resp::ShareExtra>,
2485}
2486pub mod share_replies_info_resp {
2488 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2490 pub struct ShareExtra {
2491 #[prost(bool, tag = "1")]
2493 pub is_pgc: bool,
2494 }
2495}
2496#[derive(Clone, PartialEq, ::prost::Message)]
2498pub struct ShareReplyInfo {
2499 #[prost(message, optional, tag = "1")]
2501 pub member: ::core::option::Option<Member>,
2502 #[prost(message, optional, tag = "2")]
2504 pub content: ::core::option::Option<Content>,
2505 #[prost(string, tag = "3")]
2507 pub title: ::prost::alloc::string::String,
2508 #[prost(string, tag = "4")]
2510 pub sub_title: ::prost::alloc::string::String,
2511 #[prost(string, tag = "5")]
2513 pub achievement_text: ::prost::alloc::string::String,
2514 #[prost(string, tag = "6")]
2516 pub label_url: ::prost::alloc::string::String,
2517}
2518#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2520pub struct ShareReplyMaterialReq {
2521 #[prost(int64, tag = "1")]
2523 pub oid: i64,
2524 #[prost(int64, tag = "2")]
2526 pub r#type: i64,
2527 #[prost(int64, tag = "3")]
2529 pub rpid: i64,
2530}
2531#[derive(Clone, PartialEq, ::prost::Message)]
2533pub struct ShareReplyMaterialResp {
2534 #[prost(message, optional, tag = "1")]
2536 pub subject_material: ::core::option::Option<
2537 share_reply_material_resp::SubjectMaterial,
2538 >,
2539 #[prost(string, tag = "2")]
2541 pub qrcode_url: ::prost::alloc::string::String,
2542 #[prost(string, tag = "3")]
2544 pub save_pic_text: ::prost::alloc::string::String,
2545 #[prost(string, tag = "4")]
2547 pub open_app_text: ::prost::alloc::string::String,
2548 #[prost(string, tag = "5")]
2550 pub share_time_text: ::prost::alloc::string::String,
2551 #[prost(string, tag = "6")]
2553 pub bili_logo_icon: ::prost::alloc::string::String,
2554 #[prost(message, optional, tag = "7")]
2556 pub extra: ::core::option::Option<share_reply_material_resp::ExtraData>,
2557}
2558pub mod share_reply_material_resp {
2560 #[derive(Clone, PartialEq, ::prost::Message)]
2562 pub struct ArchiveMaterial {
2563 #[prost(string, tag = "1")]
2565 pub title: ::prost::alloc::string::String,
2566 #[prost(string, tag = "2")]
2568 pub cover: ::prost::alloc::string::String,
2569 #[prost(string, tag = "3")]
2571 pub up_name: ::prost::alloc::string::String,
2572 #[prost(string, tag = "4")]
2574 pub up_icon: ::prost::alloc::string::String,
2575 }
2576 #[derive(Clone, PartialEq, ::prost::Message)]
2578 pub struct ArticleMaterial {
2579 #[prost(string, tag = "1")]
2581 pub title: ::prost::alloc::string::String,
2582 #[prost(string, tag = "2")]
2584 pub message: ::prost::alloc::string::String,
2585 }
2586 #[derive(Clone, PartialEq, ::prost::Message)]
2588 pub struct DynamicMaterial {
2589 #[prost(string, tag = "1")]
2591 pub title: ::prost::alloc::string::String,
2592 #[prost(string, tag = "2")]
2594 pub message: ::prost::alloc::string::String,
2595 }
2596 #[derive(Clone, PartialEq, ::prost::Message)]
2598 pub struct ExtraData {
2599 #[prost(bool, tag = "1")]
2601 pub is_pgc: bool,
2602 #[prost(string, tag = "2")]
2604 pub origin_text: ::prost::alloc::string::String,
2605 #[prost(int64, tag = "3")]
2607 pub topic_id: i64,
2608 }
2609 #[derive(Clone, PartialEq, ::prost::Message)]
2611 pub struct SubjectMaterial {
2612 #[prost(oneof = "subject_material::Item", tags = "1, 2, 3")]
2614 pub item: ::core::option::Option<subject_material::Item>,
2615 }
2616 pub mod subject_material {
2618 #[derive(Clone, PartialEq, ::prost::Oneof)]
2620 pub enum Item {
2621 #[prost(message, tag = "1")]
2623 ArchiveMaterial(super::ArchiveMaterial),
2624 #[prost(message, tag = "2")]
2626 DynamicMaterial(super::DynamicMaterial),
2627 #[prost(message, tag = "3")]
2629 ArticleMaterial(super::ArticleMaterial),
2630 }
2631 }
2632}
2633#[derive(Clone, PartialEq, ::prost::Message)]
2635pub struct ShareReplyTopic {
2636 #[prost(message, optional, tag = "1")]
2638 pub topic: ::core::option::Option<Topic>,
2639 #[prost(string, tag = "2")]
2641 pub origin_text: ::prost::alloc::string::String,
2642}
2643#[derive(Clone, PartialEq, ::prost::Message)]
2645pub struct SubjectControl {
2646 #[prost(int64, tag = "1")]
2648 pub up_mid: i64,
2649 #[prost(bool, tag = "2")]
2651 pub is_assist: bool,
2652 #[prost(bool, tag = "3")]
2654 pub read_only: bool,
2655 #[prost(bool, tag = "4")]
2657 pub has_vote_access: bool,
2658 #[prost(bool, tag = "5")]
2660 pub has_lottery_access: bool,
2661 #[prost(bool, tag = "6")]
2663 pub has_folded_reply: bool,
2664 #[prost(string, tag = "7")]
2666 pub bg_text: ::prost::alloc::string::String,
2667 #[prost(bool, tag = "8")]
2669 pub up_blocked: bool,
2670 #[prost(bool, tag = "9")]
2672 pub has_activity_access: bool,
2673 #[prost(bool, tag = "10")]
2675 pub show_title: bool,
2676 #[prost(bool, tag = "11")]
2678 pub show_up_action: bool,
2679 #[prost(int64, tag = "12")]
2681 pub switcher_type: i64,
2682 #[prost(bool, tag = "13")]
2684 pub input_disable: bool,
2685 #[prost(string, tag = "14")]
2687 pub root_text: ::prost::alloc::string::String,
2688 #[prost(string, tag = "15")]
2690 pub child_text: ::prost::alloc::string::String,
2691 #[prost(int64, tag = "16")]
2693 pub count: i64,
2694 #[prost(string, tag = "17")]
2696 pub title: ::prost::alloc::string::String,
2697 #[prost(string, tag = "18")]
2699 pub giveup_text: ::prost::alloc::string::String,
2700 #[prost(bool, tag = "19")]
2702 pub has_note_access: bool,
2703 #[prost(bool, tag = "20")]
2705 pub disable_jump_emote: bool,
2706 #[prost(string, tag = "21")]
2708 pub empty_background_text_plain: ::prost::alloc::string::String,
2709 #[prost(string, tag = "22")]
2711 pub empty_background_text_highlight: ::prost::alloc::string::String,
2712 #[prost(string, tag = "23")]
2714 pub empty_background_uri: ::prost::alloc::string::String,
2715 #[prost(message, repeated, tag = "24")]
2717 pub support_filter_tags: ::prost::alloc::vec::Vec<subject_control::FilterTag>,
2718 #[prost(enumeration = "EditorIconState", tag = "25")]
2720 pub screenshot_icon_state: i32,
2721 #[prost(enumeration = "EditorIconState", tag = "26")]
2723 pub upload_picture_icon_state: i32,
2724 #[prost(message, optional, tag = "27")]
2726 pub empty_page: ::core::option::Option<EmptyPage>,
2727 #[prost(message, optional, tag = "28")]
2729 pub cm_top_reply_protection: ::core::option::Option<
2730 subject_control::CmTopReplyProtection,
2731 >,
2732 #[prost(bool, tag = "29")]
2734 pub enable_charged: bool,
2735}
2736pub mod subject_control {
2738 #[derive(Clone, PartialEq, ::prost::Message)]
2740 pub struct CmTopReplyProtection {
2741 #[prost(int64, tag = "1")]
2743 pub protected_top_rpid: i64,
2744 #[prost(string, tag = "2")]
2746 pub popup_message: ::prost::alloc::string::String,
2747 #[prost(string, tag = "3")]
2749 pub appeal_url: ::prost::alloc::string::String,
2750 }
2751 #[derive(Clone, PartialEq, ::prost::Message)]
2753 pub struct FilterTag {
2754 #[prost(string, tag = "1")]
2756 pub name: ::prost::alloc::string::String,
2757 #[prost(string, tag = "2")]
2759 pub event_id: ::prost::alloc::string::String,
2760 }
2761}
2762#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2764pub struct SuggestEmotesReq {
2765 #[prost(int64, tag = "1")]
2767 pub oid: i64,
2768 #[prost(int64, tag = "2")]
2770 pub r#type: i64,
2771}
2772#[derive(Clone, PartialEq, ::prost::Message)]
2774pub struct SuggestEmotesResp {
2775 #[prost(message, repeated, tag = "1")]
2777 pub emotes: ::prost::alloc::vec::Vec<Emote>,
2778}
2779#[derive(Clone, PartialEq, ::prost::Message)]
2781pub struct TextStyle {
2782 #[prost(int32, tag = "1")]
2784 pub font_size: i32,
2785 #[prost(enumeration = "text_style::FontStyle", tag = "2")]
2787 pub font_style: i32,
2788 #[prost(string, tag = "3")]
2790 pub text_day_color: ::prost::alloc::string::String,
2791 #[prost(string, tag = "4")]
2793 pub text_night_color: ::prost::alloc::string::String,
2794}
2795pub mod text_style {
2797 #[derive(
2799 Clone,
2800 Copy,
2801 Debug,
2802 PartialEq,
2803 Eq,
2804 Hash,
2805 PartialOrd,
2806 Ord,
2807 ::prost::Enumeration
2808 )]
2809 #[repr(i32)]
2810 pub enum FontStyle {
2811 Normal = 0,
2813 Bold = 1,
2815 }
2816 impl FontStyle {
2817 pub fn as_str_name(&self) -> &'static str {
2822 match self {
2823 Self::Normal => "NORMAL",
2824 Self::Bold => "BOLD",
2825 }
2826 }
2827 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2829 match value {
2830 "NORMAL" => Some(Self::Normal),
2831 "BOLD" => Some(Self::Bold),
2832 _ => None,
2833 }
2834 }
2835 }
2836}
2837#[derive(Clone, PartialEq, ::prost::Message)]
2839pub struct Topic {
2840 #[prost(string, tag = "1")]
2842 pub link: ::prost::alloc::string::String,
2843 #[prost(int64, tag = "2")]
2845 pub id: i64,
2846}
2847#[derive(Clone, PartialEq, ::prost::Message)]
2849pub struct UgcVideoSearchItem {
2850 #[prost(string, tag = "1")]
2852 pub title: ::prost::alloc::string::String,
2853 #[prost(string, tag = "2")]
2855 pub up_nickname: ::prost::alloc::string::String,
2856 #[prost(int64, tag = "3")]
2858 pub duration: i64,
2859 #[prost(string, tag = "4")]
2861 pub cover: ::prost::alloc::string::String,
2862}
2863#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2865pub struct UpSelection {
2866 #[prost(int64, tag = "1")]
2868 pub pending_count: i64,
2869 #[prost(int64, tag = "2")]
2871 pub ignore_count: i64,
2872}
2873#[derive(Clone, PartialEq, ::prost::Message)]
2875pub struct Url {
2876 #[prost(string, tag = "1")]
2878 pub title: ::prost::alloc::string::String,
2879 #[prost(int64, tag = "2")]
2881 pub state: i64,
2882 #[prost(string, tag = "3")]
2884 pub prefix_icon: ::prost::alloc::string::String,
2885 #[prost(string, tag = "4")]
2887 pub app_url_schema: ::prost::alloc::string::String,
2888 #[prost(string, tag = "5")]
2890 pub app_name: ::prost::alloc::string::String,
2891 #[prost(string, tag = "6")]
2893 pub app_package_name: ::prost::alloc::string::String,
2894 #[prost(string, tag = "7")]
2896 pub click_report: ::prost::alloc::string::String,
2897 #[prost(bool, tag = "8")]
2899 pub is_half_screen: bool,
2900 #[prost(string, tag = "9")]
2902 pub exposure_report: ::prost::alloc::string::String,
2903 #[prost(message, optional, tag = "10")]
2905 pub extra: ::core::option::Option<url::Extra>,
2906 #[prost(bool, tag = "11")]
2908 pub underline: bool,
2909 #[prost(bool, tag = "12")]
2911 pub match_once: bool,
2912 #[prost(string, tag = "13")]
2914 pub pc_url: ::prost::alloc::string::String,
2915 #[prost(enumeration = "url::IconPosition", tag = "14")]
2917 pub icon_position: i32,
2918}
2919pub mod url {
2921 #[derive(Clone, PartialEq, ::prost::Message)]
2923 pub struct Extra {
2924 #[prost(int64, tag = "1")]
2926 pub goods_item_id: i64,
2927 #[prost(string, tag = "2")]
2929 pub goods_prefetched_cache: ::prost::alloc::string::String,
2930 #[prost(enumeration = "extra::GoodsShowType", tag = "3")]
2932 pub goods_show_type: i32,
2933 #[prost(bool, tag = "4")]
2935 pub is_word_search: bool,
2936 #[prost(int64, tag = "5")]
2938 pub goods_cm_control: i64,
2939 #[prost(string, tag = "6")]
2941 pub goods_click_report: ::prost::alloc::string::String,
2942 #[prost(string, tag = "7")]
2944 pub goods_exposure_report: ::prost::alloc::string::String,
2945 #[prost(int64, tag = "8")]
2947 pub goods_show_pop_window: i64,
2948 }
2949 pub mod extra {
2951 #[derive(
2953 Clone,
2954 Copy,
2955 Debug,
2956 PartialEq,
2957 Eq,
2958 Hash,
2959 PartialOrd,
2960 Ord,
2961 ::prost::Enumeration
2962 )]
2963 #[repr(i32)]
2964 pub enum GoodsShowType {
2965 Popup = 0,
2967 FullScreen = 1,
2969 HalfScreen = 2,
2971 }
2972 impl GoodsShowType {
2973 pub fn as_str_name(&self) -> &'static str {
2978 match self {
2979 Self::Popup => "Popup",
2980 Self::FullScreen => "FullScreen",
2981 Self::HalfScreen => "HalfScreen",
2982 }
2983 }
2984 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2986 match value {
2987 "Popup" => Some(Self::Popup),
2988 "FullScreen" => Some(Self::FullScreen),
2989 "HalfScreen" => Some(Self::HalfScreen),
2990 _ => None,
2991 }
2992 }
2993 }
2994 }
2995 #[derive(
2997 Clone,
2998 Copy,
2999 Debug,
3000 PartialEq,
3001 Eq,
3002 Hash,
3003 PartialOrd,
3004 Ord,
3005 ::prost::Enumeration
3006 )]
3007 #[repr(i32)]
3008 pub enum IconPosition {
3009 Prefix = 0,
3011 Suffix = 1,
3013 }
3014 impl IconPosition {
3015 pub fn as_str_name(&self) -> &'static str {
3020 match self {
3021 Self::Prefix => "Prefix",
3022 Self::Suffix => "Suffix",
3023 }
3024 }
3025 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3027 match value {
3028 "Prefix" => Some(Self::Prefix),
3029 "Suffix" => Some(Self::Suffix),
3030 _ => None,
3031 }
3032 }
3033 }
3034}
3035#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3037pub struct UserCallbackReply {}
3038#[derive(Clone, PartialEq, ::prost::Message)]
3040pub struct UserCallbackReq {
3041 #[prost(int64, tag = "1")]
3043 pub mid: i64,
3044 #[prost(enumeration = "UserCallbackScene", tag = "2")]
3046 pub scene: i32,
3047 #[prost(enumeration = "UserCallbackAction", tag = "3")]
3049 pub action: i32,
3050 #[prost(int64, tag = "4")]
3052 pub oid: i64,
3053 #[prost(int64, tag = "5")]
3055 pub r#type: i64,
3056 #[prost(int64, repeated, tag = "6")]
3058 pub rpids: ::prost::alloc::vec::Vec<i64>,
3059}
3060#[derive(Clone, PartialEq, ::prost::Message)]
3062pub struct VideoSearchItem {
3063 #[prost(enumeration = "SearchItemVideoSubType", tag = "1")]
3065 pub r#type: i32,
3066 #[prost(oneof = "video_search_item::VideoItem", tags = "2, 3")]
3068 pub video_item: ::core::option::Option<video_search_item::VideoItem>,
3069}
3070pub mod video_search_item {
3072 #[derive(Clone, PartialEq, ::prost::Oneof)]
3074 pub enum VideoItem {
3075 #[prost(message, tag = "2")]
3077 Ugc(super::UgcVideoSearchItem),
3078 #[prost(message, tag = "3")]
3080 Pgc(super::PgcVideoSearchItem),
3081 }
3082}
3083#[derive(Clone, PartialEq, ::prost::Message)]
3085pub struct Vote {
3086 #[prost(int64, tag = "1")]
3088 pub id: i64,
3089 #[prost(string, tag = "2")]
3091 pub title: ::prost::alloc::string::String,
3092 #[prost(int64, tag = "3")]
3094 pub count: i64,
3095}
3096#[derive(Clone, PartialEq, ::prost::Message)]
3098pub struct VoteCard {
3099 #[prost(int64, tag = "1")]
3101 pub vote_id: i64,
3102 #[prost(string, tag = "2")]
3104 pub title: ::prost::alloc::string::String,
3105 #[prost(int64, tag = "3")]
3107 pub count: i64,
3108 #[prost(message, repeated, tag = "4")]
3110 pub options: ::prost::alloc::vec::Vec<vote_card::Option>,
3111 #[prost(int64, tag = "5")]
3113 pub my_vote_option: i64,
3114}
3115pub mod vote_card {
3117 #[derive(Clone, PartialEq, ::prost::Message)]
3119 pub struct Option {
3120 #[prost(int64, tag = "1")]
3122 pub idx: i64,
3123 #[prost(string, tag = "2")]
3125 pub desc: ::prost::alloc::string::String,
3126 #[prost(int64, tag = "3")]
3128 pub count: i64,
3129 }
3130}
3131#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3133pub struct WordSearchParam {
3134 #[prost(int64, tag = "1")]
3136 pub shown_count: i64,
3137}
3138#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3140#[repr(i32)]
3141pub enum DetailListScene {
3142 Reply = 0,
3144 MsgFeed = 1,
3146 Notify = 2,
3148}
3149impl DetailListScene {
3150 pub fn as_str_name(&self) -> &'static str {
3155 match self {
3156 Self::Reply => "REPLY",
3157 Self::MsgFeed => "MSG_FEED",
3158 Self::Notify => "NOTIFY",
3159 }
3160 }
3161 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3163 match value {
3164 "REPLY" => Some(Self::Reply),
3165 "MSG_FEED" => Some(Self::MsgFeed),
3166 "NOTIFY" => Some(Self::Notify),
3167 _ => None,
3168 }
3169 }
3170}
3171#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3173#[repr(i32)]
3174pub enum EditorIconState {
3175 Default = 0,
3177 Enable = 1,
3179 Disable = 2,
3181 Hide = 3,
3183}
3184impl EditorIconState {
3185 pub fn as_str_name(&self) -> &'static str {
3190 match self {
3191 Self::Default => "EditorIconState_DEFAULT",
3192 Self::Enable => "EditorIconState_ENABLE",
3193 Self::Disable => "EditorIconState_DISABLE",
3194 Self::Hide => "EditorIconState_HIDE",
3195 }
3196 }
3197 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3199 match value {
3200 "EditorIconState_DEFAULT" => Some(Self::Default),
3201 "EditorIconState_ENABLE" => Some(Self::Enable),
3202 "EditorIconState_DISABLE" => Some(Self::Disable),
3203 "EditorIconState_HIDE" => Some(Self::Hide),
3204 _ => None,
3205 }
3206 }
3207}
3208#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3210#[repr(i32)]
3211pub enum Mode {
3212 DefaultMode = 0,
3214 Unspecified = 1,
3216 MainListTime = 2,
3218 MainListHot = 3,
3220}
3221impl Mode {
3222 pub fn as_str_name(&self) -> &'static str {
3227 match self {
3228 Self::DefaultMode => "DEFAULT_Mode",
3229 Self::Unspecified => "UNSPECIFIED",
3230 Self::MainListTime => "MAIN_LIST_TIME",
3231 Self::MainListHot => "MAIN_LIST_HOT",
3232 }
3233 }
3234 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3236 match value {
3237 "DEFAULT_Mode" => Some(Self::DefaultMode),
3238 "UNSPECIFIED" => Some(Self::Unspecified),
3239 "MAIN_LIST_TIME" => Some(Self::MainListTime),
3240 "MAIN_LIST_HOT" => Some(Self::MainListHot),
3241 _ => None,
3242 }
3243 }
3244}
3245#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3247#[repr(i32)]
3248pub enum SearchItemType {
3249 DefaultItemType = 0,
3251 Goods = 1,
3253 Video = 2,
3255 Article = 3,
3257}
3258impl SearchItemType {
3259 pub fn as_str_name(&self) -> &'static str {
3264 match self {
3265 Self::DefaultItemType => "DEFAULT_ITEM_TYPE",
3266 Self::Goods => "GOODS",
3267 Self::Video => "VIDEO",
3268 Self::Article => "ARTICLE",
3269 }
3270 }
3271 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3273 match value {
3274 "DEFAULT_ITEM_TYPE" => Some(Self::DefaultItemType),
3275 "GOODS" => Some(Self::Goods),
3276 "VIDEO" => Some(Self::Video),
3277 "ARTICLE" => Some(Self::Article),
3278 _ => None,
3279 }
3280 }
3281}
3282#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3284#[repr(i32)]
3285pub enum SearchItemVideoSubType {
3286 Ugc = 0,
3288 Pgc = 1,
3290}
3291impl SearchItemVideoSubType {
3292 pub fn as_str_name(&self) -> &'static str {
3297 match self {
3298 Self::Ugc => "UGC",
3299 Self::Pgc => "PGC",
3300 }
3301 }
3302 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3304 match value {
3305 "UGC" => Some(Self::Ugc),
3306 "PGC" => Some(Self::Pgc),
3307 _ => None,
3308 }
3309 }
3310}
3311#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3313#[repr(i32)]
3314pub enum UserCallbackAction {
3315 Dismiss = 0,
3317}
3318impl UserCallbackAction {
3319 pub fn as_str_name(&self) -> &'static str {
3324 match self {
3325 Self::Dismiss => "Dismiss",
3326 }
3327 }
3328 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3330 match value {
3331 "Dismiss" => Some(Self::Dismiss),
3332 _ => None,
3333 }
3334 }
3335}
3336#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3338#[repr(i32)]
3339pub enum UserCallbackScene {
3340 InsertUserCallbackScene = 0,
3342 RecommendSuperbReply = 1,
3344}
3345impl UserCallbackScene {
3346 pub fn as_str_name(&self) -> &'static str {
3351 match self {
3352 Self::InsertUserCallbackScene => "Insert_UserCallbackScene",
3353 Self::RecommendSuperbReply => "RecommendSuperbReply",
3354 }
3355 }
3356 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
3358 match value {
3359 "Insert_UserCallbackScene" => Some(Self::InsertUserCallbackScene),
3360 "RecommendSuperbReply" => Some(Self::RecommendSuperbReply),
3361 _ => None,
3362 }
3363 }
3364}
3365pub mod reply_client {
3367 #![allow(
3368 unused_variables,
3369 dead_code,
3370 missing_docs,
3371 clippy::wildcard_imports,
3372 clippy::let_unit_value,
3373 )]
3374 use tonic::codegen::*;
3375 use tonic::codegen::http::Uri;
3376 #[derive(Debug, Clone)]
3378 pub struct ReplyClient<T> {
3379 inner: tonic::client::Grpc<T>,
3380 }
3381 impl<T> ReplyClient<T>
3382 where
3383 T: tonic::client::GrpcService<tonic::body::BoxBody>,
3384 T::Error: Into<StdError>,
3385 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3386 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3387 {
3388 pub fn new(inner: T) -> Self {
3389 let inner = tonic::client::Grpc::new(inner);
3390 Self { inner }
3391 }
3392 pub fn with_origin(inner: T, origin: Uri) -> Self {
3393 let inner = tonic::client::Grpc::with_origin(inner, origin);
3394 Self { inner }
3395 }
3396 pub fn with_interceptor<F>(
3397 inner: T,
3398 interceptor: F,
3399 ) -> ReplyClient<InterceptedService<T, F>>
3400 where
3401 F: tonic::service::Interceptor,
3402 T::ResponseBody: Default,
3403 T: tonic::codegen::Service<
3404 http::Request<tonic::body::BoxBody>,
3405 Response = http::Response<
3406 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3407 >,
3408 >,
3409 <T as tonic::codegen::Service<
3410 http::Request<tonic::body::BoxBody>,
3411 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3412 {
3413 ReplyClient::new(InterceptedService::new(inner, interceptor))
3414 }
3415 #[must_use]
3420 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3421 self.inner = self.inner.send_compressed(encoding);
3422 self
3423 }
3424 #[must_use]
3426 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3427 self.inner = self.inner.accept_compressed(encoding);
3428 self
3429 }
3430 #[must_use]
3434 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3435 self.inner = self.inner.max_decoding_message_size(limit);
3436 self
3437 }
3438 #[must_use]
3442 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3443 self.inner = self.inner.max_encoding_message_size(limit);
3444 self
3445 }
3446 pub async fn answer_question(
3448 &mut self,
3449 request: impl tonic::IntoRequest<super::AnswerQuestionReq>,
3450 ) -> std::result::Result<
3451 tonic::Response<super::AnswerQuestionResp>,
3452 tonic::Status,
3453 > {
3454 self.inner
3455 .ready()
3456 .await
3457 .map_err(|e| {
3458 tonic::Status::unknown(
3459 format!("Service was not ready: {}", e.into()),
3460 )
3461 })?;
3462 let codec = tonic::codec::ProstCodec::default();
3463 let path = http::uri::PathAndQuery::from_static(
3464 "/bilibili.main.community.reply.v1.Reply/AnswerQuestion",
3465 );
3466 let mut req = request.into_request();
3467 req.extensions_mut()
3468 .insert(
3469 GrpcMethod::new(
3470 "bilibili.main.community.reply.v1.Reply",
3471 "AnswerQuestion",
3472 ),
3473 );
3474 self.inner.unary(req, path, codec).await
3475 }
3476 pub async fn at_search(
3478 &mut self,
3479 request: impl tonic::IntoRequest<super::AtSearchReq>,
3480 ) -> std::result::Result<tonic::Response<super::AtSearchReply>, tonic::Status> {
3481 self.inner
3482 .ready()
3483 .await
3484 .map_err(|e| {
3485 tonic::Status::unknown(
3486 format!("Service was not ready: {}", e.into()),
3487 )
3488 })?;
3489 let codec = tonic::codec::ProstCodec::default();
3490 let path = http::uri::PathAndQuery::from_static(
3491 "/bilibili.main.community.reply.v1.Reply/AtSearch",
3492 );
3493 let mut req = request.into_request();
3494 req.extensions_mut()
3495 .insert(
3496 GrpcMethod::new("bilibili.main.community.reply.v1.Reply", "AtSearch"),
3497 );
3498 self.inner.unary(req, path, codec).await
3499 }
3500 pub async fn detail_list(
3502 &mut self,
3503 request: impl tonic::IntoRequest<super::DetailListReq>,
3504 ) -> std::result::Result<
3505 tonic::Response<super::DetailListReply>,
3506 tonic::Status,
3507 > {
3508 self.inner
3509 .ready()
3510 .await
3511 .map_err(|e| {
3512 tonic::Status::unknown(
3513 format!("Service was not ready: {}", e.into()),
3514 )
3515 })?;
3516 let codec = tonic::codec::ProstCodec::default();
3517 let path = http::uri::PathAndQuery::from_static(
3518 "/bilibili.main.community.reply.v1.Reply/DetailList",
3519 );
3520 let mut req = request.into_request();
3521 req.extensions_mut()
3522 .insert(
3523 GrpcMethod::new(
3524 "bilibili.main.community.reply.v1.Reply",
3525 "DetailList",
3526 ),
3527 );
3528 self.inner.unary(req, path, codec).await
3529 }
3530 pub async fn dialog_list(
3532 &mut self,
3533 request: impl tonic::IntoRequest<super::DialogListReq>,
3534 ) -> std::result::Result<
3535 tonic::Response<super::DialogListReply>,
3536 tonic::Status,
3537 > {
3538 self.inner
3539 .ready()
3540 .await
3541 .map_err(|e| {
3542 tonic::Status::unknown(
3543 format!("Service was not ready: {}", e.into()),
3544 )
3545 })?;
3546 let codec = tonic::codec::ProstCodec::default();
3547 let path = http::uri::PathAndQuery::from_static(
3548 "/bilibili.main.community.reply.v1.Reply/DialogList",
3549 );
3550 let mut req = request.into_request();
3551 req.extensions_mut()
3552 .insert(
3553 GrpcMethod::new(
3554 "bilibili.main.community.reply.v1.Reply",
3555 "DialogList",
3556 ),
3557 );
3558 self.inner.unary(req, path, codec).await
3559 }
3560 pub async fn do_vote(
3562 &mut self,
3563 request: impl tonic::IntoRequest<super::DoVoteReq>,
3564 ) -> std::result::Result<tonic::Response<super::DoVoteResp>, tonic::Status> {
3565 self.inner
3566 .ready()
3567 .await
3568 .map_err(|e| {
3569 tonic::Status::unknown(
3570 format!("Service was not ready: {}", e.into()),
3571 )
3572 })?;
3573 let codec = tonic::codec::ProstCodec::default();
3574 let path = http::uri::PathAndQuery::from_static(
3575 "/bilibili.main.community.reply.v1.Reply/DoVote",
3576 );
3577 let mut req = request.into_request();
3578 req.extensions_mut()
3579 .insert(
3580 GrpcMethod::new("bilibili.main.community.reply.v1.Reply", "DoVote"),
3581 );
3582 self.inner.unary(req, path, codec).await
3583 }
3584 pub async fn main_list(
3586 &mut self,
3587 request: impl tonic::IntoRequest<super::MainListReq>,
3588 ) -> std::result::Result<tonic::Response<super::MainListReply>, tonic::Status> {
3589 self.inner
3590 .ready()
3591 .await
3592 .map_err(|e| {
3593 tonic::Status::unknown(
3594 format!("Service was not ready: {}", e.into()),
3595 )
3596 })?;
3597 let codec = tonic::codec::ProstCodec::default();
3598 let path = http::uri::PathAndQuery::from_static(
3599 "/bilibili.main.community.reply.v1.Reply/MainList",
3600 );
3601 let mut req = request.into_request();
3602 req.extensions_mut()
3603 .insert(
3604 GrpcMethod::new("bilibili.main.community.reply.v1.Reply", "MainList"),
3605 );
3606 self.inner.unary(req, path, codec).await
3607 }
3608 pub async fn preview_list(
3610 &mut self,
3611 request: impl tonic::IntoRequest<super::PreviewListReq>,
3612 ) -> std::result::Result<
3613 tonic::Response<super::PreviewListReply>,
3614 tonic::Status,
3615 > {
3616 self.inner
3617 .ready()
3618 .await
3619 .map_err(|e| {
3620 tonic::Status::unknown(
3621 format!("Service was not ready: {}", e.into()),
3622 )
3623 })?;
3624 let codec = tonic::codec::ProstCodec::default();
3625 let path = http::uri::PathAndQuery::from_static(
3626 "/bilibili.main.community.reply.v1.Reply/PreviewList",
3627 );
3628 let mut req = request.into_request();
3629 req.extensions_mut()
3630 .insert(
3631 GrpcMethod::new(
3632 "bilibili.main.community.reply.v1.Reply",
3633 "PreviewList",
3634 ),
3635 );
3636 self.inner.unary(req, path, codec).await
3637 }
3638 pub async fn reply_info(
3640 &mut self,
3641 request: impl tonic::IntoRequest<super::ReplyInfoReq>,
3642 ) -> std::result::Result<tonic::Response<super::ReplyInfoReply>, tonic::Status> {
3643 self.inner
3644 .ready()
3645 .await
3646 .map_err(|e| {
3647 tonic::Status::unknown(
3648 format!("Service was not ready: {}", e.into()),
3649 )
3650 })?;
3651 let codec = tonic::codec::ProstCodec::default();
3652 let path = http::uri::PathAndQuery::from_static(
3653 "/bilibili.main.community.reply.v1.Reply/ReplyInfo",
3654 );
3655 let mut req = request.into_request();
3656 req.extensions_mut()
3657 .insert(
3658 GrpcMethod::new(
3659 "bilibili.main.community.reply.v1.Reply",
3660 "ReplyInfo",
3661 ),
3662 );
3663 self.inner.unary(req, path, codec).await
3664 }
3665 pub async fn search_item(
3667 &mut self,
3668 request: impl tonic::IntoRequest<super::SearchItemReq>,
3669 ) -> std::result::Result<
3670 tonic::Response<super::SearchItemReply>,
3671 tonic::Status,
3672 > {
3673 self.inner
3674 .ready()
3675 .await
3676 .map_err(|e| {
3677 tonic::Status::unknown(
3678 format!("Service was not ready: {}", e.into()),
3679 )
3680 })?;
3681 let codec = tonic::codec::ProstCodec::default();
3682 let path = http::uri::PathAndQuery::from_static(
3683 "/bilibili.main.community.reply.v1.Reply/SearchItem",
3684 );
3685 let mut req = request.into_request();
3686 req.extensions_mut()
3687 .insert(
3688 GrpcMethod::new(
3689 "bilibili.main.community.reply.v1.Reply",
3690 "SearchItem",
3691 ),
3692 );
3693 self.inner.unary(req, path, codec).await
3694 }
3695 pub async fn search_item_pre_hook(
3697 &mut self,
3698 request: impl tonic::IntoRequest<super::SearchItemPreHookReq>,
3699 ) -> std::result::Result<
3700 tonic::Response<super::SearchItemPreHookReply>,
3701 tonic::Status,
3702 > {
3703 self.inner
3704 .ready()
3705 .await
3706 .map_err(|e| {
3707 tonic::Status::unknown(
3708 format!("Service was not ready: {}", e.into()),
3709 )
3710 })?;
3711 let codec = tonic::codec::ProstCodec::default();
3712 let path = http::uri::PathAndQuery::from_static(
3713 "/bilibili.main.community.reply.v1.Reply/SearchItemPreHook",
3714 );
3715 let mut req = request.into_request();
3716 req.extensions_mut()
3717 .insert(
3718 GrpcMethod::new(
3719 "bilibili.main.community.reply.v1.Reply",
3720 "SearchItemPreHook",
3721 ),
3722 );
3723 self.inner.unary(req, path, codec).await
3724 }
3725 pub async fn share_replies_info(
3727 &mut self,
3728 request: impl tonic::IntoRequest<super::ShareRepliesInfoReq>,
3729 ) -> std::result::Result<
3730 tonic::Response<super::ShareRepliesInfoResp>,
3731 tonic::Status,
3732 > {
3733 self.inner
3734 .ready()
3735 .await
3736 .map_err(|e| {
3737 tonic::Status::unknown(
3738 format!("Service was not ready: {}", e.into()),
3739 )
3740 })?;
3741 let codec = tonic::codec::ProstCodec::default();
3742 let path = http::uri::PathAndQuery::from_static(
3743 "/bilibili.main.community.reply.v1.Reply/ShareRepliesInfo",
3744 );
3745 let mut req = request.into_request();
3746 req.extensions_mut()
3747 .insert(
3748 GrpcMethod::new(
3749 "bilibili.main.community.reply.v1.Reply",
3750 "ShareRepliesInfo",
3751 ),
3752 );
3753 self.inner.unary(req, path, codec).await
3754 }
3755 pub async fn share_reply_material(
3757 &mut self,
3758 request: impl tonic::IntoRequest<super::ShareReplyMaterialReq>,
3759 ) -> std::result::Result<
3760 tonic::Response<super::ShareReplyMaterialResp>,
3761 tonic::Status,
3762 > {
3763 self.inner
3764 .ready()
3765 .await
3766 .map_err(|e| {
3767 tonic::Status::unknown(
3768 format!("Service was not ready: {}", e.into()),
3769 )
3770 })?;
3771 let codec = tonic::codec::ProstCodec::default();
3772 let path = http::uri::PathAndQuery::from_static(
3773 "/bilibili.main.community.reply.v1.Reply/ShareReplyMaterial",
3774 );
3775 let mut req = request.into_request();
3776 req.extensions_mut()
3777 .insert(
3778 GrpcMethod::new(
3779 "bilibili.main.community.reply.v1.Reply",
3780 "ShareReplyMaterial",
3781 ),
3782 );
3783 self.inner.unary(req, path, codec).await
3784 }
3785 pub async fn suggest_emotes(
3787 &mut self,
3788 request: impl tonic::IntoRequest<super::SuggestEmotesReq>,
3789 ) -> std::result::Result<
3790 tonic::Response<super::SuggestEmotesResp>,
3791 tonic::Status,
3792 > {
3793 self.inner
3794 .ready()
3795 .await
3796 .map_err(|e| {
3797 tonic::Status::unknown(
3798 format!("Service was not ready: {}", e.into()),
3799 )
3800 })?;
3801 let codec = tonic::codec::ProstCodec::default();
3802 let path = http::uri::PathAndQuery::from_static(
3803 "/bilibili.main.community.reply.v1.Reply/SuggestEmotes",
3804 );
3805 let mut req = request.into_request();
3806 req.extensions_mut()
3807 .insert(
3808 GrpcMethod::new(
3809 "bilibili.main.community.reply.v1.Reply",
3810 "SuggestEmotes",
3811 ),
3812 );
3813 self.inner.unary(req, path, codec).await
3814 }
3815 pub async fn user_callback(
3817 &mut self,
3818 request: impl tonic::IntoRequest<super::UserCallbackReq>,
3819 ) -> std::result::Result<
3820 tonic::Response<super::UserCallbackReply>,
3821 tonic::Status,
3822 > {
3823 self.inner
3824 .ready()
3825 .await
3826 .map_err(|e| {
3827 tonic::Status::unknown(
3828 format!("Service was not ready: {}", e.into()),
3829 )
3830 })?;
3831 let codec = tonic::codec::ProstCodec::default();
3832 let path = http::uri::PathAndQuery::from_static(
3833 "/bilibili.main.community.reply.v1.Reply/UserCallback",
3834 );
3835 let mut req = request.into_request();
3836 req.extensions_mut()
3837 .insert(
3838 GrpcMethod::new(
3839 "bilibili.main.community.reply.v1.Reply",
3840 "UserCallback",
3841 ),
3842 );
3843 self.inner.unary(req, path, codec).await
3844 }
3845 }
3846}
3847pub mod reply_server {
3849 #![allow(
3850 unused_variables,
3851 dead_code,
3852 missing_docs,
3853 clippy::wildcard_imports,
3854 clippy::let_unit_value,
3855 )]
3856 use tonic::codegen::*;
3857 #[async_trait]
3859 pub trait Reply: std::marker::Send + std::marker::Sync + 'static {
3860 async fn answer_question(
3862 &self,
3863 request: tonic::Request<super::AnswerQuestionReq>,
3864 ) -> std::result::Result<
3865 tonic::Response<super::AnswerQuestionResp>,
3866 tonic::Status,
3867 >;
3868 async fn at_search(
3870 &self,
3871 request: tonic::Request<super::AtSearchReq>,
3872 ) -> std::result::Result<tonic::Response<super::AtSearchReply>, tonic::Status>;
3873 async fn detail_list(
3875 &self,
3876 request: tonic::Request<super::DetailListReq>,
3877 ) -> std::result::Result<tonic::Response<super::DetailListReply>, tonic::Status>;
3878 async fn dialog_list(
3880 &self,
3881 request: tonic::Request<super::DialogListReq>,
3882 ) -> std::result::Result<tonic::Response<super::DialogListReply>, tonic::Status>;
3883 async fn do_vote(
3885 &self,
3886 request: tonic::Request<super::DoVoteReq>,
3887 ) -> std::result::Result<tonic::Response<super::DoVoteResp>, tonic::Status>;
3888 async fn main_list(
3890 &self,
3891 request: tonic::Request<super::MainListReq>,
3892 ) -> std::result::Result<tonic::Response<super::MainListReply>, tonic::Status>;
3893 async fn preview_list(
3895 &self,
3896 request: tonic::Request<super::PreviewListReq>,
3897 ) -> std::result::Result<
3898 tonic::Response<super::PreviewListReply>,
3899 tonic::Status,
3900 >;
3901 async fn reply_info(
3903 &self,
3904 request: tonic::Request<super::ReplyInfoReq>,
3905 ) -> std::result::Result<tonic::Response<super::ReplyInfoReply>, tonic::Status>;
3906 async fn search_item(
3908 &self,
3909 request: tonic::Request<super::SearchItemReq>,
3910 ) -> std::result::Result<tonic::Response<super::SearchItemReply>, tonic::Status>;
3911 async fn search_item_pre_hook(
3913 &self,
3914 request: tonic::Request<super::SearchItemPreHookReq>,
3915 ) -> std::result::Result<
3916 tonic::Response<super::SearchItemPreHookReply>,
3917 tonic::Status,
3918 >;
3919 async fn share_replies_info(
3921 &self,
3922 request: tonic::Request<super::ShareRepliesInfoReq>,
3923 ) -> std::result::Result<
3924 tonic::Response<super::ShareRepliesInfoResp>,
3925 tonic::Status,
3926 >;
3927 async fn share_reply_material(
3929 &self,
3930 request: tonic::Request<super::ShareReplyMaterialReq>,
3931 ) -> std::result::Result<
3932 tonic::Response<super::ShareReplyMaterialResp>,
3933 tonic::Status,
3934 >;
3935 async fn suggest_emotes(
3937 &self,
3938 request: tonic::Request<super::SuggestEmotesReq>,
3939 ) -> std::result::Result<
3940 tonic::Response<super::SuggestEmotesResp>,
3941 tonic::Status,
3942 >;
3943 async fn user_callback(
3945 &self,
3946 request: tonic::Request<super::UserCallbackReq>,
3947 ) -> std::result::Result<
3948 tonic::Response<super::UserCallbackReply>,
3949 tonic::Status,
3950 >;
3951 }
3952 #[derive(Debug)]
3954 pub struct ReplyServer<T> {
3955 inner: Arc<T>,
3956 accept_compression_encodings: EnabledCompressionEncodings,
3957 send_compression_encodings: EnabledCompressionEncodings,
3958 max_decoding_message_size: Option<usize>,
3959 max_encoding_message_size: Option<usize>,
3960 }
3961 impl<T> ReplyServer<T> {
3962 pub fn new(inner: T) -> Self {
3963 Self::from_arc(Arc::new(inner))
3964 }
3965 pub fn from_arc(inner: Arc<T>) -> Self {
3966 Self {
3967 inner,
3968 accept_compression_encodings: Default::default(),
3969 send_compression_encodings: Default::default(),
3970 max_decoding_message_size: None,
3971 max_encoding_message_size: None,
3972 }
3973 }
3974 pub fn with_interceptor<F>(
3975 inner: T,
3976 interceptor: F,
3977 ) -> InterceptedService<Self, F>
3978 where
3979 F: tonic::service::Interceptor,
3980 {
3981 InterceptedService::new(Self::new(inner), interceptor)
3982 }
3983 #[must_use]
3985 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3986 self.accept_compression_encodings.enable(encoding);
3987 self
3988 }
3989 #[must_use]
3991 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3992 self.send_compression_encodings.enable(encoding);
3993 self
3994 }
3995 #[must_use]
3999 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4000 self.max_decoding_message_size = Some(limit);
4001 self
4002 }
4003 #[must_use]
4007 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4008 self.max_encoding_message_size = Some(limit);
4009 self
4010 }
4011 }
4012 impl<T, B> tonic::codegen::Service<http::Request<B>> for ReplyServer<T>
4013 where
4014 T: Reply,
4015 B: Body + std::marker::Send + 'static,
4016 B::Error: Into<StdError> + std::marker::Send + 'static,
4017 {
4018 type Response = http::Response<tonic::body::BoxBody>;
4019 type Error = std::convert::Infallible;
4020 type Future = BoxFuture<Self::Response, Self::Error>;
4021 fn poll_ready(
4022 &mut self,
4023 _cx: &mut Context<'_>,
4024 ) -> Poll<std::result::Result<(), Self::Error>> {
4025 Poll::Ready(Ok(()))
4026 }
4027 fn call(&mut self, req: http::Request<B>) -> Self::Future {
4028 match req.uri().path() {
4029 "/bilibili.main.community.reply.v1.Reply/AnswerQuestion" => {
4030 #[allow(non_camel_case_types)]
4031 struct AnswerQuestionSvc<T: Reply>(pub Arc<T>);
4032 impl<T: Reply> tonic::server::UnaryService<super::AnswerQuestionReq>
4033 for AnswerQuestionSvc<T> {
4034 type Response = super::AnswerQuestionResp;
4035 type Future = BoxFuture<
4036 tonic::Response<Self::Response>,
4037 tonic::Status,
4038 >;
4039 fn call(
4040 &mut self,
4041 request: tonic::Request<super::AnswerQuestionReq>,
4042 ) -> Self::Future {
4043 let inner = Arc::clone(&self.0);
4044 let fut = async move {
4045 <T as Reply>::answer_question(&inner, request).await
4046 };
4047 Box::pin(fut)
4048 }
4049 }
4050 let accept_compression_encodings = self.accept_compression_encodings;
4051 let send_compression_encodings = self.send_compression_encodings;
4052 let max_decoding_message_size = self.max_decoding_message_size;
4053 let max_encoding_message_size = self.max_encoding_message_size;
4054 let inner = self.inner.clone();
4055 let fut = async move {
4056 let method = AnswerQuestionSvc(inner);
4057 let codec = tonic::codec::ProstCodec::default();
4058 let mut grpc = tonic::server::Grpc::new(codec)
4059 .apply_compression_config(
4060 accept_compression_encodings,
4061 send_compression_encodings,
4062 )
4063 .apply_max_message_size_config(
4064 max_decoding_message_size,
4065 max_encoding_message_size,
4066 );
4067 let res = grpc.unary(method, req).await;
4068 Ok(res)
4069 };
4070 Box::pin(fut)
4071 }
4072 "/bilibili.main.community.reply.v1.Reply/AtSearch" => {
4073 #[allow(non_camel_case_types)]
4074 struct AtSearchSvc<T: Reply>(pub Arc<T>);
4075 impl<T: Reply> tonic::server::UnaryService<super::AtSearchReq>
4076 for AtSearchSvc<T> {
4077 type Response = super::AtSearchReply;
4078 type Future = BoxFuture<
4079 tonic::Response<Self::Response>,
4080 tonic::Status,
4081 >;
4082 fn call(
4083 &mut self,
4084 request: tonic::Request<super::AtSearchReq>,
4085 ) -> Self::Future {
4086 let inner = Arc::clone(&self.0);
4087 let fut = async move {
4088 <T as Reply>::at_search(&inner, request).await
4089 };
4090 Box::pin(fut)
4091 }
4092 }
4093 let accept_compression_encodings = self.accept_compression_encodings;
4094 let send_compression_encodings = self.send_compression_encodings;
4095 let max_decoding_message_size = self.max_decoding_message_size;
4096 let max_encoding_message_size = self.max_encoding_message_size;
4097 let inner = self.inner.clone();
4098 let fut = async move {
4099 let method = AtSearchSvc(inner);
4100 let codec = tonic::codec::ProstCodec::default();
4101 let mut grpc = tonic::server::Grpc::new(codec)
4102 .apply_compression_config(
4103 accept_compression_encodings,
4104 send_compression_encodings,
4105 )
4106 .apply_max_message_size_config(
4107 max_decoding_message_size,
4108 max_encoding_message_size,
4109 );
4110 let res = grpc.unary(method, req).await;
4111 Ok(res)
4112 };
4113 Box::pin(fut)
4114 }
4115 "/bilibili.main.community.reply.v1.Reply/DetailList" => {
4116 #[allow(non_camel_case_types)]
4117 struct DetailListSvc<T: Reply>(pub Arc<T>);
4118 impl<T: Reply> tonic::server::UnaryService<super::DetailListReq>
4119 for DetailListSvc<T> {
4120 type Response = super::DetailListReply;
4121 type Future = BoxFuture<
4122 tonic::Response<Self::Response>,
4123 tonic::Status,
4124 >;
4125 fn call(
4126 &mut self,
4127 request: tonic::Request<super::DetailListReq>,
4128 ) -> Self::Future {
4129 let inner = Arc::clone(&self.0);
4130 let fut = async move {
4131 <T as Reply>::detail_list(&inner, request).await
4132 };
4133 Box::pin(fut)
4134 }
4135 }
4136 let accept_compression_encodings = self.accept_compression_encodings;
4137 let send_compression_encodings = self.send_compression_encodings;
4138 let max_decoding_message_size = self.max_decoding_message_size;
4139 let max_encoding_message_size = self.max_encoding_message_size;
4140 let inner = self.inner.clone();
4141 let fut = async move {
4142 let method = DetailListSvc(inner);
4143 let codec = tonic::codec::ProstCodec::default();
4144 let mut grpc = tonic::server::Grpc::new(codec)
4145 .apply_compression_config(
4146 accept_compression_encodings,
4147 send_compression_encodings,
4148 )
4149 .apply_max_message_size_config(
4150 max_decoding_message_size,
4151 max_encoding_message_size,
4152 );
4153 let res = grpc.unary(method, req).await;
4154 Ok(res)
4155 };
4156 Box::pin(fut)
4157 }
4158 "/bilibili.main.community.reply.v1.Reply/DialogList" => {
4159 #[allow(non_camel_case_types)]
4160 struct DialogListSvc<T: Reply>(pub Arc<T>);
4161 impl<T: Reply> tonic::server::UnaryService<super::DialogListReq>
4162 for DialogListSvc<T> {
4163 type Response = super::DialogListReply;
4164 type Future = BoxFuture<
4165 tonic::Response<Self::Response>,
4166 tonic::Status,
4167 >;
4168 fn call(
4169 &mut self,
4170 request: tonic::Request<super::DialogListReq>,
4171 ) -> Self::Future {
4172 let inner = Arc::clone(&self.0);
4173 let fut = async move {
4174 <T as Reply>::dialog_list(&inner, request).await
4175 };
4176 Box::pin(fut)
4177 }
4178 }
4179 let accept_compression_encodings = self.accept_compression_encodings;
4180 let send_compression_encodings = self.send_compression_encodings;
4181 let max_decoding_message_size = self.max_decoding_message_size;
4182 let max_encoding_message_size = self.max_encoding_message_size;
4183 let inner = self.inner.clone();
4184 let fut = async move {
4185 let method = DialogListSvc(inner);
4186 let codec = tonic::codec::ProstCodec::default();
4187 let mut grpc = tonic::server::Grpc::new(codec)
4188 .apply_compression_config(
4189 accept_compression_encodings,
4190 send_compression_encodings,
4191 )
4192 .apply_max_message_size_config(
4193 max_decoding_message_size,
4194 max_encoding_message_size,
4195 );
4196 let res = grpc.unary(method, req).await;
4197 Ok(res)
4198 };
4199 Box::pin(fut)
4200 }
4201 "/bilibili.main.community.reply.v1.Reply/DoVote" => {
4202 #[allow(non_camel_case_types)]
4203 struct DoVoteSvc<T: Reply>(pub Arc<T>);
4204 impl<T: Reply> tonic::server::UnaryService<super::DoVoteReq>
4205 for DoVoteSvc<T> {
4206 type Response = super::DoVoteResp;
4207 type Future = BoxFuture<
4208 tonic::Response<Self::Response>,
4209 tonic::Status,
4210 >;
4211 fn call(
4212 &mut self,
4213 request: tonic::Request<super::DoVoteReq>,
4214 ) -> Self::Future {
4215 let inner = Arc::clone(&self.0);
4216 let fut = async move {
4217 <T as Reply>::do_vote(&inner, request).await
4218 };
4219 Box::pin(fut)
4220 }
4221 }
4222 let accept_compression_encodings = self.accept_compression_encodings;
4223 let send_compression_encodings = self.send_compression_encodings;
4224 let max_decoding_message_size = self.max_decoding_message_size;
4225 let max_encoding_message_size = self.max_encoding_message_size;
4226 let inner = self.inner.clone();
4227 let fut = async move {
4228 let method = DoVoteSvc(inner);
4229 let codec = tonic::codec::ProstCodec::default();
4230 let mut grpc = tonic::server::Grpc::new(codec)
4231 .apply_compression_config(
4232 accept_compression_encodings,
4233 send_compression_encodings,
4234 )
4235 .apply_max_message_size_config(
4236 max_decoding_message_size,
4237 max_encoding_message_size,
4238 );
4239 let res = grpc.unary(method, req).await;
4240 Ok(res)
4241 };
4242 Box::pin(fut)
4243 }
4244 "/bilibili.main.community.reply.v1.Reply/MainList" => {
4245 #[allow(non_camel_case_types)]
4246 struct MainListSvc<T: Reply>(pub Arc<T>);
4247 impl<T: Reply> tonic::server::UnaryService<super::MainListReq>
4248 for MainListSvc<T> {
4249 type Response = super::MainListReply;
4250 type Future = BoxFuture<
4251 tonic::Response<Self::Response>,
4252 tonic::Status,
4253 >;
4254 fn call(
4255 &mut self,
4256 request: tonic::Request<super::MainListReq>,
4257 ) -> Self::Future {
4258 let inner = Arc::clone(&self.0);
4259 let fut = async move {
4260 <T as Reply>::main_list(&inner, request).await
4261 };
4262 Box::pin(fut)
4263 }
4264 }
4265 let accept_compression_encodings = self.accept_compression_encodings;
4266 let send_compression_encodings = self.send_compression_encodings;
4267 let max_decoding_message_size = self.max_decoding_message_size;
4268 let max_encoding_message_size = self.max_encoding_message_size;
4269 let inner = self.inner.clone();
4270 let fut = async move {
4271 let method = MainListSvc(inner);
4272 let codec = tonic::codec::ProstCodec::default();
4273 let mut grpc = tonic::server::Grpc::new(codec)
4274 .apply_compression_config(
4275 accept_compression_encodings,
4276 send_compression_encodings,
4277 )
4278 .apply_max_message_size_config(
4279 max_decoding_message_size,
4280 max_encoding_message_size,
4281 );
4282 let res = grpc.unary(method, req).await;
4283 Ok(res)
4284 };
4285 Box::pin(fut)
4286 }
4287 "/bilibili.main.community.reply.v1.Reply/PreviewList" => {
4288 #[allow(non_camel_case_types)]
4289 struct PreviewListSvc<T: Reply>(pub Arc<T>);
4290 impl<T: Reply> tonic::server::UnaryService<super::PreviewListReq>
4291 for PreviewListSvc<T> {
4292 type Response = super::PreviewListReply;
4293 type Future = BoxFuture<
4294 tonic::Response<Self::Response>,
4295 tonic::Status,
4296 >;
4297 fn call(
4298 &mut self,
4299 request: tonic::Request<super::PreviewListReq>,
4300 ) -> Self::Future {
4301 let inner = Arc::clone(&self.0);
4302 let fut = async move {
4303 <T as Reply>::preview_list(&inner, request).await
4304 };
4305 Box::pin(fut)
4306 }
4307 }
4308 let accept_compression_encodings = self.accept_compression_encodings;
4309 let send_compression_encodings = self.send_compression_encodings;
4310 let max_decoding_message_size = self.max_decoding_message_size;
4311 let max_encoding_message_size = self.max_encoding_message_size;
4312 let inner = self.inner.clone();
4313 let fut = async move {
4314 let method = PreviewListSvc(inner);
4315 let codec = tonic::codec::ProstCodec::default();
4316 let mut grpc = tonic::server::Grpc::new(codec)
4317 .apply_compression_config(
4318 accept_compression_encodings,
4319 send_compression_encodings,
4320 )
4321 .apply_max_message_size_config(
4322 max_decoding_message_size,
4323 max_encoding_message_size,
4324 );
4325 let res = grpc.unary(method, req).await;
4326 Ok(res)
4327 };
4328 Box::pin(fut)
4329 }
4330 "/bilibili.main.community.reply.v1.Reply/ReplyInfo" => {
4331 #[allow(non_camel_case_types)]
4332 struct ReplyInfoSvc<T: Reply>(pub Arc<T>);
4333 impl<T: Reply> tonic::server::UnaryService<super::ReplyInfoReq>
4334 for ReplyInfoSvc<T> {
4335 type Response = super::ReplyInfoReply;
4336 type Future = BoxFuture<
4337 tonic::Response<Self::Response>,
4338 tonic::Status,
4339 >;
4340 fn call(
4341 &mut self,
4342 request: tonic::Request<super::ReplyInfoReq>,
4343 ) -> Self::Future {
4344 let inner = Arc::clone(&self.0);
4345 let fut = async move {
4346 <T as Reply>::reply_info(&inner, request).await
4347 };
4348 Box::pin(fut)
4349 }
4350 }
4351 let accept_compression_encodings = self.accept_compression_encodings;
4352 let send_compression_encodings = self.send_compression_encodings;
4353 let max_decoding_message_size = self.max_decoding_message_size;
4354 let max_encoding_message_size = self.max_encoding_message_size;
4355 let inner = self.inner.clone();
4356 let fut = async move {
4357 let method = ReplyInfoSvc(inner);
4358 let codec = tonic::codec::ProstCodec::default();
4359 let mut grpc = tonic::server::Grpc::new(codec)
4360 .apply_compression_config(
4361 accept_compression_encodings,
4362 send_compression_encodings,
4363 )
4364 .apply_max_message_size_config(
4365 max_decoding_message_size,
4366 max_encoding_message_size,
4367 );
4368 let res = grpc.unary(method, req).await;
4369 Ok(res)
4370 };
4371 Box::pin(fut)
4372 }
4373 "/bilibili.main.community.reply.v1.Reply/SearchItem" => {
4374 #[allow(non_camel_case_types)]
4375 struct SearchItemSvc<T: Reply>(pub Arc<T>);
4376 impl<T: Reply> tonic::server::UnaryService<super::SearchItemReq>
4377 for SearchItemSvc<T> {
4378 type Response = super::SearchItemReply;
4379 type Future = BoxFuture<
4380 tonic::Response<Self::Response>,
4381 tonic::Status,
4382 >;
4383 fn call(
4384 &mut self,
4385 request: tonic::Request<super::SearchItemReq>,
4386 ) -> Self::Future {
4387 let inner = Arc::clone(&self.0);
4388 let fut = async move {
4389 <T as Reply>::search_item(&inner, request).await
4390 };
4391 Box::pin(fut)
4392 }
4393 }
4394 let accept_compression_encodings = self.accept_compression_encodings;
4395 let send_compression_encodings = self.send_compression_encodings;
4396 let max_decoding_message_size = self.max_decoding_message_size;
4397 let max_encoding_message_size = self.max_encoding_message_size;
4398 let inner = self.inner.clone();
4399 let fut = async move {
4400 let method = SearchItemSvc(inner);
4401 let codec = tonic::codec::ProstCodec::default();
4402 let mut grpc = tonic::server::Grpc::new(codec)
4403 .apply_compression_config(
4404 accept_compression_encodings,
4405 send_compression_encodings,
4406 )
4407 .apply_max_message_size_config(
4408 max_decoding_message_size,
4409 max_encoding_message_size,
4410 );
4411 let res = grpc.unary(method, req).await;
4412 Ok(res)
4413 };
4414 Box::pin(fut)
4415 }
4416 "/bilibili.main.community.reply.v1.Reply/SearchItemPreHook" => {
4417 #[allow(non_camel_case_types)]
4418 struct SearchItemPreHookSvc<T: Reply>(pub Arc<T>);
4419 impl<
4420 T: Reply,
4421 > tonic::server::UnaryService<super::SearchItemPreHookReq>
4422 for SearchItemPreHookSvc<T> {
4423 type Response = super::SearchItemPreHookReply;
4424 type Future = BoxFuture<
4425 tonic::Response<Self::Response>,
4426 tonic::Status,
4427 >;
4428 fn call(
4429 &mut self,
4430 request: tonic::Request<super::SearchItemPreHookReq>,
4431 ) -> Self::Future {
4432 let inner = Arc::clone(&self.0);
4433 let fut = async move {
4434 <T as Reply>::search_item_pre_hook(&inner, request).await
4435 };
4436 Box::pin(fut)
4437 }
4438 }
4439 let accept_compression_encodings = self.accept_compression_encodings;
4440 let send_compression_encodings = self.send_compression_encodings;
4441 let max_decoding_message_size = self.max_decoding_message_size;
4442 let max_encoding_message_size = self.max_encoding_message_size;
4443 let inner = self.inner.clone();
4444 let fut = async move {
4445 let method = SearchItemPreHookSvc(inner);
4446 let codec = tonic::codec::ProstCodec::default();
4447 let mut grpc = tonic::server::Grpc::new(codec)
4448 .apply_compression_config(
4449 accept_compression_encodings,
4450 send_compression_encodings,
4451 )
4452 .apply_max_message_size_config(
4453 max_decoding_message_size,
4454 max_encoding_message_size,
4455 );
4456 let res = grpc.unary(method, req).await;
4457 Ok(res)
4458 };
4459 Box::pin(fut)
4460 }
4461 "/bilibili.main.community.reply.v1.Reply/ShareRepliesInfo" => {
4462 #[allow(non_camel_case_types)]
4463 struct ShareRepliesInfoSvc<T: Reply>(pub Arc<T>);
4464 impl<
4465 T: Reply,
4466 > tonic::server::UnaryService<super::ShareRepliesInfoReq>
4467 for ShareRepliesInfoSvc<T> {
4468 type Response = super::ShareRepliesInfoResp;
4469 type Future = BoxFuture<
4470 tonic::Response<Self::Response>,
4471 tonic::Status,
4472 >;
4473 fn call(
4474 &mut self,
4475 request: tonic::Request<super::ShareRepliesInfoReq>,
4476 ) -> Self::Future {
4477 let inner = Arc::clone(&self.0);
4478 let fut = async move {
4479 <T as Reply>::share_replies_info(&inner, request).await
4480 };
4481 Box::pin(fut)
4482 }
4483 }
4484 let accept_compression_encodings = self.accept_compression_encodings;
4485 let send_compression_encodings = self.send_compression_encodings;
4486 let max_decoding_message_size = self.max_decoding_message_size;
4487 let max_encoding_message_size = self.max_encoding_message_size;
4488 let inner = self.inner.clone();
4489 let fut = async move {
4490 let method = ShareRepliesInfoSvc(inner);
4491 let codec = tonic::codec::ProstCodec::default();
4492 let mut grpc = tonic::server::Grpc::new(codec)
4493 .apply_compression_config(
4494 accept_compression_encodings,
4495 send_compression_encodings,
4496 )
4497 .apply_max_message_size_config(
4498 max_decoding_message_size,
4499 max_encoding_message_size,
4500 );
4501 let res = grpc.unary(method, req).await;
4502 Ok(res)
4503 };
4504 Box::pin(fut)
4505 }
4506 "/bilibili.main.community.reply.v1.Reply/ShareReplyMaterial" => {
4507 #[allow(non_camel_case_types)]
4508 struct ShareReplyMaterialSvc<T: Reply>(pub Arc<T>);
4509 impl<
4510 T: Reply,
4511 > tonic::server::UnaryService<super::ShareReplyMaterialReq>
4512 for ShareReplyMaterialSvc<T> {
4513 type Response = super::ShareReplyMaterialResp;
4514 type Future = BoxFuture<
4515 tonic::Response<Self::Response>,
4516 tonic::Status,
4517 >;
4518 fn call(
4519 &mut self,
4520 request: tonic::Request<super::ShareReplyMaterialReq>,
4521 ) -> Self::Future {
4522 let inner = Arc::clone(&self.0);
4523 let fut = async move {
4524 <T as Reply>::share_reply_material(&inner, request).await
4525 };
4526 Box::pin(fut)
4527 }
4528 }
4529 let accept_compression_encodings = self.accept_compression_encodings;
4530 let send_compression_encodings = self.send_compression_encodings;
4531 let max_decoding_message_size = self.max_decoding_message_size;
4532 let max_encoding_message_size = self.max_encoding_message_size;
4533 let inner = self.inner.clone();
4534 let fut = async move {
4535 let method = ShareReplyMaterialSvc(inner);
4536 let codec = tonic::codec::ProstCodec::default();
4537 let mut grpc = tonic::server::Grpc::new(codec)
4538 .apply_compression_config(
4539 accept_compression_encodings,
4540 send_compression_encodings,
4541 )
4542 .apply_max_message_size_config(
4543 max_decoding_message_size,
4544 max_encoding_message_size,
4545 );
4546 let res = grpc.unary(method, req).await;
4547 Ok(res)
4548 };
4549 Box::pin(fut)
4550 }
4551 "/bilibili.main.community.reply.v1.Reply/SuggestEmotes" => {
4552 #[allow(non_camel_case_types)]
4553 struct SuggestEmotesSvc<T: Reply>(pub Arc<T>);
4554 impl<T: Reply> tonic::server::UnaryService<super::SuggestEmotesReq>
4555 for SuggestEmotesSvc<T> {
4556 type Response = super::SuggestEmotesResp;
4557 type Future = BoxFuture<
4558 tonic::Response<Self::Response>,
4559 tonic::Status,
4560 >;
4561 fn call(
4562 &mut self,
4563 request: tonic::Request<super::SuggestEmotesReq>,
4564 ) -> Self::Future {
4565 let inner = Arc::clone(&self.0);
4566 let fut = async move {
4567 <T as Reply>::suggest_emotes(&inner, request).await
4568 };
4569 Box::pin(fut)
4570 }
4571 }
4572 let accept_compression_encodings = self.accept_compression_encodings;
4573 let send_compression_encodings = self.send_compression_encodings;
4574 let max_decoding_message_size = self.max_decoding_message_size;
4575 let max_encoding_message_size = self.max_encoding_message_size;
4576 let inner = self.inner.clone();
4577 let fut = async move {
4578 let method = SuggestEmotesSvc(inner);
4579 let codec = tonic::codec::ProstCodec::default();
4580 let mut grpc = tonic::server::Grpc::new(codec)
4581 .apply_compression_config(
4582 accept_compression_encodings,
4583 send_compression_encodings,
4584 )
4585 .apply_max_message_size_config(
4586 max_decoding_message_size,
4587 max_encoding_message_size,
4588 );
4589 let res = grpc.unary(method, req).await;
4590 Ok(res)
4591 };
4592 Box::pin(fut)
4593 }
4594 "/bilibili.main.community.reply.v1.Reply/UserCallback" => {
4595 #[allow(non_camel_case_types)]
4596 struct UserCallbackSvc<T: Reply>(pub Arc<T>);
4597 impl<T: Reply> tonic::server::UnaryService<super::UserCallbackReq>
4598 for UserCallbackSvc<T> {
4599 type Response = super::UserCallbackReply;
4600 type Future = BoxFuture<
4601 tonic::Response<Self::Response>,
4602 tonic::Status,
4603 >;
4604 fn call(
4605 &mut self,
4606 request: tonic::Request<super::UserCallbackReq>,
4607 ) -> Self::Future {
4608 let inner = Arc::clone(&self.0);
4609 let fut = async move {
4610 <T as Reply>::user_callback(&inner, request).await
4611 };
4612 Box::pin(fut)
4613 }
4614 }
4615 let accept_compression_encodings = self.accept_compression_encodings;
4616 let send_compression_encodings = self.send_compression_encodings;
4617 let max_decoding_message_size = self.max_decoding_message_size;
4618 let max_encoding_message_size = self.max_encoding_message_size;
4619 let inner = self.inner.clone();
4620 let fut = async move {
4621 let method = UserCallbackSvc(inner);
4622 let codec = tonic::codec::ProstCodec::default();
4623 let mut grpc = tonic::server::Grpc::new(codec)
4624 .apply_compression_config(
4625 accept_compression_encodings,
4626 send_compression_encodings,
4627 )
4628 .apply_max_message_size_config(
4629 max_decoding_message_size,
4630 max_encoding_message_size,
4631 );
4632 let res = grpc.unary(method, req).await;
4633 Ok(res)
4634 };
4635 Box::pin(fut)
4636 }
4637 _ => {
4638 Box::pin(async move {
4639 let mut response = http::Response::new(empty_body());
4640 let headers = response.headers_mut();
4641 headers
4642 .insert(
4643 tonic::Status::GRPC_STATUS,
4644 (tonic::Code::Unimplemented as i32).into(),
4645 );
4646 headers
4647 .insert(
4648 http::header::CONTENT_TYPE,
4649 tonic::metadata::GRPC_CONTENT_TYPE,
4650 );
4651 Ok(response)
4652 })
4653 }
4654 }
4655 }
4656 }
4657 impl<T> Clone for ReplyServer<T> {
4658 fn clone(&self) -> Self {
4659 let inner = self.inner.clone();
4660 Self {
4661 inner,
4662 accept_compression_encodings: self.accept_compression_encodings,
4663 send_compression_encodings: self.send_compression_encodings,
4664 max_decoding_message_size: self.max_decoding_message_size,
4665 max_encoding_message_size: self.max_encoding_message_size,
4666 }
4667 }
4668 }
4669 pub const SERVICE_NAME: &str = "bilibili.main.community.reply.v1.Reply";
4671 impl<T> tonic::server::NamedService for ReplyServer<T> {
4672 const NAME: &'static str = SERVICE_NAME;
4673 }
4674}