#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ButtonMeta {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub icon: ::prost::alloc::string::String,
}
impl ::prost::Name for ButtonMeta {
const NAME: &'static str = "ButtonMeta";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ButtonMeta".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ButtonMeta".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClickPath {
#[prost(int32, tag = "1")]
pub r#type: i32,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub underlying: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub wx_pro_name: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub wx_pro_id: ::prost::alloc::string::String,
}
impl ::prost::Name for ClickPath {
const NAME: &'static str = "ClickPath";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ClickPath".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ClickPath".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetailsTopInfo {
#[prost(message, optional, tag = "1")]
pub topic_info: ::core::option::Option<TopicInfo>,
#[prost(message, optional, tag = "2")]
pub user: ::core::option::Option<User>,
#[prost(string, tag = "3")]
pub stats_desc: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub has_create_jurisdiction: bool,
#[prost(message, optional, tag = "5")]
pub operation_content: ::core::option::Option<OperationContent>,
#[prost(string, tag = "6")]
pub head_img_url: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub head_img_backcolor: ::prost::alloc::string::String,
#[prost(int32, tag = "8")]
pub word_color: i32,
#[prost(int32, tag = "9")]
pub mission_page_show_type: i32,
#[prost(string, tag = "10")]
pub mission_url: ::prost::alloc::string::String,
#[prost(string, tag = "11")]
pub mission_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub topic_set: ::core::option::Option<TopicSet>,
#[prost(string, tag = "13")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "14")]
pub icon: ::prost::alloc::string::String,
#[prost(string, tag = "15")]
pub head_bg_img_url: ::prost::alloc::string::String,
}
impl ::prost::Name for DetailsTopInfo {
const NAME: &'static str = "DetailsTopInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.DetailsTopInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.DetailsTopInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsportInfo {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(message, repeated, tag = "2")]
pub items: ::prost::alloc::vec::Vec<MatchInfo>,
#[prost(int64, tag = "3")]
pub start_time: i64,
#[prost(int64, tag = "4")]
pub end_time: i64,
#[prost(message, optional, tag = "5")]
pub player_rating: ::core::option::Option<PlayerRatingInMatch>,
}
impl ::prost::Name for EsportInfo {
const NAME: &'static str = "EsportInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.EsportInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.EsportInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeedCard {
#[prost(enumeration = "FeedCardType", tag = "1")]
pub r#type: i32,
#[prost(oneof = "feed_card::Detail", tags = "2, 3, 4, 5")]
pub detail: ::core::option::Option<feed_card::Detail>,
}
pub mod feed_card {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Detail {
#[prost(message, tag = "2")]
UserRating(super::FeedCardUserRating),
#[prost(message, tag = "3")]
LeadCollection(super::FeedCardLeadCollection),
#[prost(message, tag = "4")]
ItemCard(super::ItemCard),
#[prost(message, tag = "5")]
TaskCard(super::FeedCardTask),
}
}
impl ::prost::Name for FeedCard {
const NAME: &'static str = "FeedCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FeedCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FeedCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeedCardLeadCollection {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub button_text: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub icon: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub pressed_button_text: ::prost::alloc::string::String,
}
impl ::prost::Name for FeedCardLeadCollection {
const NAME: &'static str = "FeedCardLeadCollection";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FeedCardLeadCollection".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FeedCardLeadCollection".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeedCardTask {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub sub_title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub button_text: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub jump_url: ::prost::alloc::string::String,
}
impl ::prost::Name for FeedCardTask {
const NAME: &'static str = "FeedCardTask";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FeedCardTask".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FeedCardTask".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeedCardUserRating {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub options: ::prost::alloc::vec::Vec<feed_card_user_rating::UserRatingOption>,
}
pub mod feed_card_user_rating {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserRatingOption {
#[prost(string, tag = "1")]
pub icon: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub text: ::prost::alloc::string::String,
#[prost(enumeration = "super::FeedCardUserRatingOptionType", tag = "3")]
pub r#type: i32,
}
impl ::prost::Name for UserRatingOption {
const NAME: &'static str = "UserRatingOption";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FeedCardUserRating.UserRatingOption".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FeedCardUserRating.UserRatingOption".into()
}
}
}
impl ::prost::Name for FeedCardUserRating {
const NAME: &'static str = "FeedCardUserRating";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FeedCardUserRating".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FeedCardUserRating".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FoldCardItem {
#[prost(int32, tag = "1")]
pub is_show_fold: i32,
#[prost(int64, tag = "2")]
pub fold_count: i64,
#[prost(string, tag = "3")]
pub card_show_desc: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub fold_desc: ::prost::alloc::string::String,
}
impl ::prost::Name for FoldCardItem {
const NAME: &'static str = "FoldCardItem";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FoldCardItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FoldCardItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FunctionalCard {
#[prost(message, repeated, tag = "1")]
pub capsules: ::prost::alloc::vec::Vec<TopicCapsule>,
#[prost(message, optional, tag = "2")]
pub traffic_card: ::core::option::Option<TrafficCard>,
#[prost(message, optional, tag = "3")]
pub game_card: ::core::option::Option<GameCard>,
#[prost(int64, tag = "4")]
pub start_time: i64,
#[prost(int64, tag = "5")]
pub end_time: i64,
}
impl ::prost::Name for FunctionalCard {
const NAME: &'static str = "FunctionalCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.FunctionalCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.FunctionalCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GameCard {
#[prost(int64, tag = "1")]
pub game_id: i64,
#[prost(string, tag = "2")]
pub game_icon: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub game_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub score: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub game_tags: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub notice: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub game_link: ::prost::alloc::string::String,
}
impl ::prost::Name for GameCard {
const NAME: &'static str = "GameCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.GameCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.GameCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HeadClickAreaCard {
#[prost(message, repeated, tag = "1")]
pub click_rows: ::prost::alloc::vec::Vec<HeadClickAreaRow>,
#[prost(int64, tag = "2")]
pub start_time: i64,
#[prost(int64, tag = "3")]
pub end_time: i64,
}
impl ::prost::Name for HeadClickAreaCard {
const NAME: &'static str = "HeadClickAreaCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.HeadClickAreaCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.HeadClickAreaCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HeadClickAreaRow {
#[prost(message, repeated, tag = "1")]
pub rects: ::prost::alloc::vec::Vec<HeadClickRect>,
}
impl ::prost::Name for HeadClickAreaRow {
const NAME: &'static str = "HeadClickAreaRow";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.HeadClickAreaRow".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.HeadClickAreaRow".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HeadClickRect {
#[prost(int32, tag = "1")]
pub w: i32,
#[prost(int32, tag = "2")]
pub h: i32,
#[prost(string, tag = "3")]
pub pic: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub path: ::core::option::Option<ClickPath>,
}
impl ::prost::Name for HeadClickRect {
const NAME: &'static str = "HeadClickRect";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.HeadClickRect".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.HeadClickRect".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IpTopicCard {
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<IpTopicInfo>,
#[prost(int64, tag = "2")]
pub start_time: i64,
#[prost(int64, tag = "3")]
pub end_time: i64,
}
impl ::prost::Name for IpTopicCard {
const NAME: &'static str = "IPTopicCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.IPTopicCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.IPTopicCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IpTopicInfo {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub stats_desc: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub icon: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub id: i64,
}
impl ::prost::Name for IpTopicInfo {
const NAME: &'static str = "IPTopicInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.IPTopicInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.IPTopicInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InlineProgressBar {
#[prost(string, tag = "1")]
pub icon_drag: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub icon_drag_hash: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub icon_stop: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub icon_stop_hash: ::prost::alloc::string::String,
}
impl ::prost::Name for InlineProgressBar {
const NAME: &'static str = "InlineProgressBar";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.InlineProgressBar".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.InlineProgressBar".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ItemCard {
#[prost(int64, tag = "1")]
pub item_id: i64,
#[prost(string, tag = "2")]
pub biz_data: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub start_time: i64,
#[prost(int64, tag = "4")]
pub end_time: i64,
}
impl ::prost::Name for ItemCard {
const NAME: &'static str = "ItemCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ItemCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ItemCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LargeCoverInline {
#[prost(message, optional, tag = "1")]
pub base: ::core::option::Option<super::super::card::v1::Base>,
#[prost(string, tag = "2")]
pub cover_left_text1: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub cover_left_icon1: i32,
#[prost(string, tag = "4")]
pub cover_left_text2: ::prost::alloc::string::String,
#[prost(int32, tag = "5")]
pub cover_left_icon2: i32,
#[prost(message, optional, tag = "6")]
pub right_top_live_badge: ::core::option::Option<RightTopLiveBadge>,
#[prost(string, tag = "7")]
pub extra_uri: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub inline_progress_bar: ::core::option::Option<InlineProgressBar>,
#[prost(message, optional, tag = "9")]
pub topic_three_point: ::core::option::Option<TopicThreePoint>,
#[prost(string, tag = "10")]
pub cover_left_desc: ::prost::alloc::string::String,
#[prost(bool, tag = "11")]
pub hide_danmu_switch: bool,
#[prost(bool, tag = "12")]
pub disable_danmu: bool,
#[prost(int32, tag = "13")]
pub can_play: i32,
#[prost(string, tag = "14")]
pub duration_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "15")]
pub relation_data: ::core::option::Option<RelationData>,
}
impl ::prost::Name for LargeCoverInline {
const NAME: &'static str = "LargeCoverInline";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.LargeCoverInline".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.LargeCoverInline".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LiveBadgeResource {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub animation_url: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub animation_url_hash: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub background_color_light: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub background_color_night: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub alpha_light: i64,
#[prost(int64, tag = "7")]
pub alpha_night: i64,
#[prost(string, tag = "8")]
pub font_color: ::prost::alloc::string::String,
}
impl ::prost::Name for LiveBadgeResource {
const NAME: &'static str = "LiveBadgeResource";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.LiveBadgeResource".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.LiveBadgeResource".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchCardDisplay {
#[prost(string, tag = "1")]
pub text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub text_color: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub text_color_night: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub uri: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub live_link: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub texts: ::core::option::Option<Texts>,
#[prost(int32, tag = "7")]
pub state: i32,
}
impl ::prost::Name for MatchCardDisplay {
const NAME: &'static str = "MatchCardDisplay";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.MatchCardDisplay".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.MatchCardDisplay".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchInfo {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(int32, tag = "2")]
pub status: i32,
#[prost(string, tag = "3")]
pub match_stage: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub home: ::core::option::Option<MatchTeamInfo>,
#[prost(message, optional, tag = "5")]
pub away: ::core::option::Option<MatchTeamInfo>,
#[prost(message, optional, tag = "6")]
pub match_label: ::core::option::Option<MatchCardDisplay>,
#[prost(message, optional, tag = "7")]
pub match_time: ::core::option::Option<MatchCardDisplay>,
#[prost(message, optional, tag = "8")]
pub match_button: ::core::option::Option<MatchCardDisplay>,
}
impl ::prost::Name for MatchInfo {
const NAME: &'static str = "MatchInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.MatchInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.MatchInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchTeamInfo {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub cover: ::prost::alloc::string::String,
#[prost(int64, tag = "4")]
pub score: i64,
}
impl ::prost::Name for MatchTeamInfo {
const NAME: &'static str = "MatchTeamInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.MatchTeamInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.MatchTeamInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NoCardResultReply {
#[prost(string, tag = "1")]
pub default_guide_text: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub show_button: ::core::option::Option<ShowButton>,
}
impl ::prost::Name for NoCardResultReply {
const NAME: &'static str = "NoCardResultReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.NoCardResultReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.NoCardResultReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationCard {
#[prost(oneof = "operation_card::Card", tags = "1")]
pub card: ::core::option::Option<operation_card::Card>,
}
pub mod operation_card {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Card {
#[prost(message, tag = "1")]
LargeCoverInline(super::LargeCoverInline),
}
}
impl ::prost::Name for OperationCard {
const NAME: &'static str = "OperationCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.OperationCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.OperationCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationContent {
#[prost(message, optional, tag = "1")]
pub operation_card: ::core::option::Option<OperationCard>,
#[prost(int64, tag = "2")]
pub start_time: i64,
#[prost(int64, tag = "3")]
pub end_time: i64,
}
impl ::prost::Name for OperationContent {
const NAME: &'static str = "OperationContent";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.OperationContent".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.OperationContent".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlayerRatingInMatch {
#[prost(string, tag = "1")]
pub player_face: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub player_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub hot_remark: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub rating: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub jump_uri: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub player_id: i64,
#[prost(int64, tag = "7")]
pub match_id: i64,
}
impl ::prost::Name for PlayerRatingInMatch {
const NAME: &'static str = "PlayerRatingInMatch";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.PlayerRatingInMatch".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.PlayerRatingInMatch".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PubLayer {
#[prost(int32, tag = "1")]
pub show_type: i32,
#[prost(string, tag = "2")]
pub jump_link: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub button_meta: ::core::option::Option<ButtonMeta>,
#[prost(bool, tag = "4")]
pub close_pub_layer_entry: bool,
#[prost(string, tag = "5")]
pub user_avatar: ::prost::alloc::string::String,
#[prost(bool, tag = "6")]
pub is_half_screen: bool,
}
impl ::prost::Name for PubLayer {
const NAME: &'static str = "PubLayer";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.PubLayer".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.PubLayer".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RelationData {
#[prost(bool, tag = "1")]
pub is_fav: bool,
#[prost(bool, tag = "2")]
pub is_coin: bool,
#[prost(bool, tag = "3")]
pub is_follow: bool,
#[prost(bool, tag = "4")]
pub is_like: bool,
#[prost(int64, tag = "5")]
pub like_count: i64,
}
impl ::prost::Name for RelationData {
const NAME: &'static str = "RelationData";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.RelationData".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.RelationData".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportUserCloseFeedCardReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(enumeration = "FeedCardType", tag = "2")]
pub feed_card_type: i32,
}
impl ::prost::Name for ReportUserCloseFeedCardReq {
const NAME: &'static str = "ReportUserCloseFeedCardReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ReportUserCloseFeedCardReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ReportUserCloseFeedCardReq".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportUserRatingFeedCardChoiceReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(enumeration = "FeedCardUserRatingOptionType", tag = "2")]
pub option_type: i32,
}
impl ::prost::Name for ReportUserRatingFeedCardChoiceReq {
const NAME: &'static str = "ReportUserRatingFeedCardChoiceReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ReportUserRatingFeedCardChoiceReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ReportUserRatingFeedCardChoiceReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReserveCalendarInfo {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub start_ts: i64,
#[prost(int64, tag = "3")]
pub end_ts: i64,
#[prost(string, tag = "4")]
pub description: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub business_id: ::prost::alloc::string::String,
}
impl ::prost::Name for ReserveCalendarInfo {
const NAME: &'static str = "ReserveCalendarInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ReserveCalendarInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ReserveCalendarInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReserveRelationInfo {
#[prost(int64, tag = "1")]
pub sid: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub total: i64,
#[prost(int64, tag = "4")]
pub stime: i64,
#[prost(int64, tag = "5")]
pub etime: i64,
#[prost(int64, tag = "6")]
pub is_follow: i64,
#[prost(int32, tag = "7")]
pub state: i32,
#[prost(string, tag = "8")]
pub oid: ::prost::alloc::string::String,
#[prost(int32, tag = "9")]
pub r#type: i32,
#[prost(int64, tag = "10")]
pub upmid: i64,
#[prost(int64, tag = "11")]
pub reserve_record_ctime: i64,
#[prost(int64, tag = "12")]
pub live_plan_start_time: i64,
#[prost(string, tag = "13")]
pub time_desc_text: ::prost::alloc::string::String,
#[prost(string, tag = "14")]
pub number_desc_text: ::prost::alloc::string::String,
#[prost(int64, tag = "15")]
pub start_time: i64,
#[prost(int64, tag = "16")]
pub end_time: i64,
}
impl ::prost::Name for ReserveRelationInfo {
const NAME: &'static str = "ReserveRelationInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ReserveRelationInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ReserveRelationInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RightTopLiveBadge {
#[prost(int64, tag = "1")]
pub live_status: i64,
#[prost(message, optional, tag = "2")]
pub in_live: ::core::option::Option<LiveBadgeResource>,
#[prost(string, tag = "3")]
pub live_stats_desc: ::prost::alloc::string::String,
}
impl ::prost::Name for RightTopLiveBadge {
const NAME: &'static str = "RightTopLiveBadge";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.RightTopLiveBadge".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.RightTopLiveBadge".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SetTopTopicResReply {}
impl ::prost::Name for SetTopTopicResReply {
const NAME: &'static str = "SetTopTopicResReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.SetTopTopicResReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.SetTopTopicResReply".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SetTopTopicResReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(int64, tag = "2")]
pub dynamic_id: i64,
#[prost(enumeration = "ResSetTopOptType", tag = "3")]
pub opt_type: i32,
#[prost(enumeration = "TopicCardType", tag = "4")]
pub r#type: i32,
}
impl ::prost::Name for SetTopTopicResReq {
const NAME: &'static str = "SetTopTopicResReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.SetTopTopicResReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.SetTopTopicResReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShowButton {
#[prost(string, tag = "1")]
pub show_text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub jump_url: ::prost::alloc::string::String,
}
impl ::prost::Name for ShowButton {
const NAME: &'static str = "ShowButton";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ShowButton".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ShowButton".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SortContent {
#[prost(int64, tag = "1")]
pub sort_by: i64,
#[prost(string, tag = "2")]
pub sort_name: ::prost::alloc::string::String,
}
impl ::prost::Name for SortContent {
const NAME: &'static str = "SortContent";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.SortContent".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.SortContent".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Texts {
#[prost(string, tag = "1")]
pub booking_text: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub unbooking_text: ::prost::alloc::string::String,
}
impl ::prost::Name for Texts {
const NAME: &'static str = "Texts";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.Texts".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.Texts".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThreePointItem {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub jump_url: ::prost::alloc::string::String,
}
impl ::prost::Name for ThreePointItem {
const NAME: &'static str = "ThreePointItem";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.ThreePointItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.ThreePointItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeLineEvents {
#[prost(int64, tag = "1")]
pub event_id: i64,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub time_desc: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub jump_link: ::prost::alloc::string::String,
}
impl ::prost::Name for TimeLineEvents {
const NAME: &'static str = "TimeLineEvents";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TimeLineEvents".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TimeLineEvents".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeLineResource {
#[prost(int64, tag = "1")]
pub time_line_id: i64,
#[prost(string, tag = "2")]
pub time_line_title: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub time_line_events: ::prost::alloc::vec::Vec<TimeLineEvents>,
#[prost(bool, tag = "4")]
pub has_more: bool,
#[prost(int64, tag = "5")]
pub start_time: i64,
#[prost(int64, tag = "6")]
pub end_time: i64,
}
impl ::prost::Name for TimeLineResource {
const NAME: &'static str = "TimeLineResource";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TimeLineResource".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TimeLineResource".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicActivities {
#[prost(message, repeated, tag = "1")]
pub activity: ::prost::alloc::vec::Vec<TopicActivity>,
#[prost(string, tag = "2")]
pub act_list_title: ::prost::alloc::string::String,
}
impl ::prost::Name for TopicActivities {
const NAME: &'static str = "TopicActivities";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicActivities".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicActivities".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicActivity {
#[prost(int64, tag = "1")]
pub activity_id: i64,
#[prost(string, tag = "2")]
pub activity_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub icon_url: ::prost::alloc::string::String,
}
impl ::prost::Name for TopicActivity {
const NAME: &'static str = "TopicActivity";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicActivity".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicActivity".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicCapsule {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub icon_url: ::prost::alloc::string::String,
}
impl ::prost::Name for TopicCapsule {
const NAME: &'static str = "TopicCapsule";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicCapsule".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicCapsule".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicCapsuleInfo {
#[prost(message, repeated, tag = "1")]
pub capsules: ::prost::alloc::vec::Vec<TopicCapsule>,
}
impl ::prost::Name for TopicCapsuleInfo {
const NAME: &'static str = "TopicCapsuleInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicCapsuleInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicCapsuleInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicCardItem {
#[prost(enumeration = "TopicCardType", tag = "1")]
pub r#type: i32,
#[prost(message, optional, tag = "2")]
pub dynamic_item: ::core::option::Option<super::super::dynamic::v2::DynamicItem>,
#[prost(message, optional, tag = "3")]
pub ford_card_item: ::core::option::Option<FoldCardItem>,
#[prost(message, optional, tag = "4")]
pub video_small_card_item: ::core::option::Option<VideoSmallCardItem>,
#[prost(message, optional, tag = "5")]
pub feed_card: ::core::option::Option<FeedCard>,
}
impl ::prost::Name for TopicCardItem {
const NAME: &'static str = "TopicCardItem";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicCardItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicCardItem".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicCardList {
#[prost(message, repeated, tag = "1")]
pub topic_card_items: ::prost::alloc::vec::Vec<TopicCardItem>,
#[prost(string, tag = "2")]
pub offset: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub has_more: bool,
#[prost(message, optional, tag = "4")]
pub topic_sort_by_conf: ::core::option::Option<TopicSortByConf>,
#[prost(message, optional, tag = "5")]
pub no_card_result_reply: ::core::option::Option<NoCardResultReply>,
}
impl ::prost::Name for TopicCardList {
const NAME: &'static str = "TopicCardList";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicCardList".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicCardList".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicDetailsAllReply {
#[prost(message, optional, tag = "1")]
pub details_top_info: ::core::option::Option<DetailsTopInfo>,
#[prost(message, optional, tag = "2")]
pub topic_activities: ::core::option::Option<TopicActivities>,
#[prost(message, optional, tag = "3")]
pub topic_card_list: ::core::option::Option<TopicCardList>,
#[prost(message, optional, tag = "4")]
pub functional_card: ::core::option::Option<FunctionalCard>,
#[prost(message, optional, tag = "5")]
pub pub_layer: ::core::option::Option<PubLayer>,
#[prost(message, optional, tag = "6")]
pub time_line_resource: ::core::option::Option<TimeLineResource>,
#[prost(message, optional, tag = "7")]
pub topic_server_config: ::core::option::Option<TopicServerConfig>,
#[prost(message, optional, tag = "8")]
pub topic_online: ::core::option::Option<TopicOnline>,
#[prost(message, repeated, tag = "9")]
pub topic_top_cards: ::prost::alloc::vec::Vec<TopicTopCard>,
}
impl ::prost::Name for TopicDetailsAllReply {
const NAME: &'static str = "TopicDetailsAllReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicDetailsAllReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicDetailsAllReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicDetailsAllReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(int64, tag = "2")]
pub sort_by: i64,
#[prost(string, tag = "3")]
pub offset: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub page_size: i32,
#[prost(int32, tag = "5")]
pub local_time: i32,
#[prost(message, optional, tag = "6")]
pub player_args: ::core::option::Option<
super::super::archive::middleware::v1::PlayerArgs,
>,
#[prost(int32, tag = "7")]
pub need_refresh: i32,
#[prost(string, tag = "8")]
pub source: ::prost::alloc::string::String,
#[prost(enumeration = "TopicDetailsExtMode", tag = "9")]
pub topic_details_ext_mode: i32,
#[prost(string, tag = "10")]
pub from_spmid: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "11")]
pub extra: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(bool, tag = "12")]
pub is_top_dynamic: bool,
}
impl ::prost::Name for TopicDetailsAllReq {
const NAME: &'static str = "TopicDetailsAllReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicDetailsAllReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicDetailsAllReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicDetailsFoldReply {
#[prost(message, optional, tag = "1")]
pub topic_card_list: ::core::option::Option<TopicCardList>,
#[prost(int64, tag = "2")]
pub fold_count: i64,
}
impl ::prost::Name for TopicDetailsFoldReply {
const NAME: &'static str = "TopicDetailsFoldReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicDetailsFoldReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicDetailsFoldReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicDetailsFoldReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(string, tag = "2")]
pub offset: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub page_size: i32,
#[prost(int32, tag = "4")]
pub local_time: i32,
#[prost(message, optional, tag = "5")]
pub player_args: ::core::option::Option<
super::super::archive::middleware::v1::PlayerArgs,
>,
#[prost(int64, tag = "6")]
pub from_sort_by: i64,
}
impl ::prost::Name for TopicDetailsFoldReq {
const NAME: &'static str = "TopicDetailsFoldReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicDetailsFoldReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicDetailsFoldReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicInfo {
#[prost(int64, tag = "1")]
pub id: i64,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub uid: i64,
#[prost(int64, tag = "4")]
pub view: i64,
#[prost(int64, tag = "5")]
pub discuss: i64,
#[prost(int64, tag = "6")]
pub fav: i64,
#[prost(int64, tag = "7")]
pub dynamics: i64,
#[prost(int32, tag = "8")]
pub state: i32,
#[prost(string, tag = "9")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub backcolor: ::prost::alloc::string::String,
#[prost(bool, tag = "11")]
pub is_fav: bool,
#[prost(string, tag = "12")]
pub description: ::prost::alloc::string::String,
#[prost(int32, tag = "13")]
pub create_source: i32,
#[prost(string, tag = "14")]
pub share_pic: ::prost::alloc::string::String,
#[prost(int64, tag = "15")]
pub share: i64,
#[prost(int64, tag = "16")]
pub like: i64,
#[prost(string, tag = "17")]
pub share_url: ::prost::alloc::string::String,
#[prost(bool, tag = "18")]
pub is_like: bool,
#[prost(int32, tag = "19")]
pub r#type: i32,
#[prost(string, tag = "20")]
pub stats_desc: ::prost::alloc::string::String,
#[prost(string, tag = "21")]
pub fixed_topic_icon: ::prost::alloc::string::String,
#[prost(int64, tag = "22")]
pub categories: i64,
#[prost(map = "int32, bool", tag = "23")]
pub category_map: ::std::collections::HashMap<i32, bool>,
#[prost(string, repeated, tag = "24")]
pub topic_categories: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "25")]
pub is_business: bool,
#[prost(bool, tag = "26")]
pub show_interact_data: bool,
}
impl ::prost::Name for TopicInfo {
const NAME: &'static str = "TopicInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicMergedResourceReply {
#[prost(message, optional, tag = "1")]
pub topic_card_list: ::core::option::Option<TopicCardList>,
}
impl ::prost::Name for TopicMergedResourceReply {
const NAME: &'static str = "TopicMergedResourceReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicMergedResourceReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicMergedResourceReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicMergedResourceReq {
#[prost(int64, tag = "1")]
pub topic_id: i64,
#[prost(int32, tag = "2")]
pub r#type: i32,
#[prost(int64, tag = "3")]
pub rid: i64,
#[prost(int32, tag = "4")]
pub merge_type: i32,
#[prost(string, tag = "5")]
pub offset: ::prost::alloc::string::String,
#[prost(int32, tag = "6")]
pub local_time: i32,
#[prost(message, optional, tag = "7")]
pub player_args: ::core::option::Option<
super::super::archive::middleware::v1::PlayerArgs,
>,
#[prost(int64, tag = "8")]
pub from_sort_by: i64,
}
impl ::prost::Name for TopicMergedResourceReq {
const NAME: &'static str = "TopicMergedResourceReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicMergedResourceReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicMergedResourceReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicOnline {
#[prost(int64, tag = "1")]
pub online_num: i64,
#[prost(string, tag = "2")]
pub online_text: ::prost::alloc::string::String,
}
impl ::prost::Name for TopicOnline {
const NAME: &'static str = "TopicOnline";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicOnline".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicOnline".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicReserveButtonClickReply {
#[prost(enumeration = "ReserveButtonStatus", tag = "1")]
pub final_btn_status: i32,
#[prost(enumeration = "ReserveButtonMode", tag = "2")]
pub btn_mode: i32,
#[prost(int64, tag = "3")]
pub reserve_update: i64,
#[prost(string, tag = "4")]
pub desc_update: ::prost::alloc::string::String,
#[prost(bool, tag = "5")]
pub has_activity: bool,
#[prost(string, tag = "6")]
pub activity_url: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub toast: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub reserve_calendar_info: ::core::option::Option<ReserveCalendarInfo>,
}
impl ::prost::Name for TopicReserveButtonClickReply {
const NAME: &'static str = "TopicReserveButtonClickReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicReserveButtonClickReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicReserveButtonClickReply".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TopicReserveButtonClickReq {
#[prost(int64, tag = "1")]
pub uid: i64,
#[prost(int64, tag = "2")]
pub reserve_id: i64,
#[prost(int64, tag = "3")]
pub reserve_total: i64,
#[prost(enumeration = "ReserveButtonStatus", tag = "4")]
pub cur_btn_status: i32,
}
impl ::prost::Name for TopicReserveButtonClickReq {
const NAME: &'static str = "TopicReserveButtonClickReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicReserveButtonClickReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicReserveButtonClickReq".into()
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TopicServerConfig {
#[prost(int64, tag = "1")]
pub pub_events_increase_threshold: i64,
#[prost(int64, tag = "2")]
pub pub_events_hidden_timeout_threshold: i64,
#[prost(int64, tag = "3")]
pub vert_online_refresh_time: i64,
}
impl ::prost::Name for TopicServerConfig {
const NAME: &'static str = "TopicServerConfig";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicServerConfig".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicServerConfig".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSet {
#[prost(int64, tag = "1")]
pub set_id: i64,
#[prost(string, tag = "2")]
pub set_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub desc: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub set_type_text: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub set_type_color: ::prost::alloc::string::String,
#[prost(int32, tag = "7")]
pub set_type: i32,
}
impl ::prost::Name for TopicSet {
const NAME: &'static str = "TopicSet";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSet".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSet".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSetDetailsReply {
#[prost(message, optional, tag = "1")]
pub topic_set_head_info: ::core::option::Option<TopicSetHeadInfo>,
#[prost(message, repeated, tag = "2")]
pub topic_info: ::prost::alloc::vec::Vec<TopicInfo>,
#[prost(bool, tag = "3")]
pub has_more: bool,
#[prost(string, tag = "4")]
pub offset: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub sort_cfg: ::core::option::Option<TopicSetSortCfg>,
}
impl ::prost::Name for TopicSetDetailsReply {
const NAME: &'static str = "TopicSetDetailsReply";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSetDetailsReply".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSetDetailsReply".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSetDetailsReq {
#[prost(int64, tag = "1")]
pub set_id: i64,
#[prost(int64, tag = "2")]
pub sort_by: i64,
#[prost(string, tag = "3")]
pub offset: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub page_size: i32,
}
impl ::prost::Name for TopicSetDetailsReq {
const NAME: &'static str = "TopicSetDetailsReq";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSetDetailsReq".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSetDetailsReq".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSetHeadInfo {
#[prost(message, optional, tag = "1")]
pub topic_set: ::core::option::Option<TopicSet>,
#[prost(string, tag = "2")]
pub topic_cnt_text: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub head_img_url: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub mission_url: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub mission_text: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub icon_url: ::prost::alloc::string::String,
#[prost(bool, tag = "7")]
pub is_fav: bool,
#[prost(bool, tag = "8")]
pub is_first_time: bool,
#[prost(string, tag = "9")]
pub record_text: ::prost::alloc::string::String,
}
impl ::prost::Name for TopicSetHeadInfo {
const NAME: &'static str = "TopicSetHeadInfo";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSetHeadInfo".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSetHeadInfo".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSetSortCfg {
#[prost(int64, tag = "1")]
pub default_sort_by: i64,
#[prost(message, repeated, tag = "2")]
pub all_sort_by: ::prost::alloc::vec::Vec<SortContent>,
}
impl ::prost::Name for TopicSetSortCfg {
const NAME: &'static str = "TopicSetSortCfg";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSetSortCfg".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSetSortCfg".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicSortByConf {
#[prost(int64, tag = "1")]
pub default_sort_by: i64,
#[prost(message, repeated, tag = "2")]
pub all_sort_by: ::prost::alloc::vec::Vec<SortContent>,
#[prost(int64, tag = "3")]
pub show_sort_by: i64,
}
impl ::prost::Name for TopicSortByConf {
const NAME: &'static str = "TopicSortByConf";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicSortByConf".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicSortByConf".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicThreePoint {
#[prost(message, repeated, tag = "1")]
pub dyn_three_point_items: ::prost::alloc::vec::Vec<
super::super::dynamic::v2::ThreePointItem,
>,
}
impl ::prost::Name for TopicThreePoint {
const NAME: &'static str = "TopicThreePoint";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicThreePoint".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicThreePoint".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopicTopCard {
#[prost(enumeration = "TopicTopCardType", tag = "1")]
pub r#type: i32,
#[prost(int64, tag = "9")]
pub start_time: i64,
#[prost(int64, tag = "10")]
pub end_time: i64,
#[prost(
oneof = "topic_top_card::CardItem",
tags = "2, 3, 4, 5, 6, 7, 8, 11, 12, 13"
)]
pub card_item: ::core::option::Option<topic_top_card::CardItem>,
}
pub mod topic_top_card {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum CardItem {
#[prost(message, tag = "2")]
Capsules(::prost::alloc::boxed::Box<super::TopicCapsuleInfo>),
#[prost(message, tag = "3")]
TrafficCard(::prost::alloc::boxed::Box<super::TrafficCard>),
#[prost(message, tag = "4")]
GameCard(::prost::alloc::boxed::Box<super::GameCard>),
#[prost(message, tag = "5")]
TimeLineResource(::prost::alloc::boxed::Box<super::TimeLineResource>),
#[prost(message, tag = "6")]
LargeCoverInline(::prost::alloc::boxed::Box<super::LargeCoverInline>),
#[prost(message, tag = "7")]
ReservationCard(::prost::alloc::boxed::Box<super::ReserveRelationInfo>),
#[prost(message, tag = "8")]
EsportCard(::prost::alloc::boxed::Box<super::EsportInfo>),
#[prost(message, tag = "11")]
IpTopicCard(::prost::alloc::boxed::Box<super::IpTopicCard>),
#[prost(message, tag = "12")]
HeadClickAreaCard(::prost::alloc::boxed::Box<super::HeadClickAreaCard>),
#[prost(message, tag = "13")]
ItemCard(::prost::alloc::boxed::Box<super::ItemCard>),
}
}
impl ::prost::Name for TopicTopCard {
const NAME: &'static str = "TopicTopCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TopicTopCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TopicTopCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficCard {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub jump_url: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub icon_url: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub base_pic: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub benefit_point: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub card_desc: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub jump_title: ::prost::alloc::string::String,
}
impl ::prost::Name for TrafficCard {
const NAME: &'static str = "TrafficCard";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.TrafficCard".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.TrafficCard".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct User {
#[prost(int64, tag = "1")]
pub uid: i64,
#[prost(string, tag = "2")]
pub face: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub name_desc: ::prost::alloc::string::String,
}
impl ::prost::Name for User {
const NAME: &'static str = "User";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.User".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.User".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoCardBase {
#[prost(string, tag = "1")]
pub cover: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub up_name: ::prost::alloc::string::String,
#[prost(int64, tag = "4")]
pub play: i64,
#[prost(string, tag = "5")]
pub jump_link: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub aid: i64,
}
impl ::prost::Name for VideoCardBase {
const NAME: &'static str = "VideoCardBase";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.VideoCardBase".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.VideoCardBase".into()
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoSmallCardItem {
#[prost(message, optional, tag = "1")]
pub video_card_base: ::core::option::Option<VideoCardBase>,
#[prost(string, tag = "2")]
pub cover_left_badge_text: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub card_stat_icon1: i64,
#[prost(string, tag = "4")]
pub card_stat_text1: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub card_stat_icon2: i64,
#[prost(string, tag = "6")]
pub card_stat_text2: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub server_info: ::prost::alloc::string::String,
}
impl ::prost::Name for VideoSmallCardItem {
const NAME: &'static str = "VideoSmallCardItem";
const PACKAGE: &'static str = "bilibili.app.topic.v1";
fn full_name() -> ::prost::alloc::string::String {
"bilibili.app.topic.v1.VideoSmallCardItem".into()
}
fn type_url() -> ::prost::alloc::string::String {
"/bilibili.app.topic.v1.VideoSmallCardItem".into()
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FeedCardType {
Unknown = 0,
UserRating = 1,
LeadCollection = 2,
Item = 3,
Task = 4,
}
impl FeedCardType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unknown => "FEED_CARD_TYPE_UNKNOWN",
Self::UserRating => "FEED_CARD_TYPE_USER_RATING",
Self::LeadCollection => "FEED_CARD_TYPE_LEAD_COLLECTION",
Self::Item => "FEED_CARD_TYPE_ITEM",
Self::Task => "FEED_CARD_TYPE_TASK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FEED_CARD_TYPE_UNKNOWN" => Some(Self::Unknown),
"FEED_CARD_TYPE_USER_RATING" => Some(Self::UserRating),
"FEED_CARD_TYPE_LEAD_COLLECTION" => Some(Self::LeadCollection),
"FEED_CARD_TYPE_ITEM" => Some(Self::Item),
"FEED_CARD_TYPE_TASK" => Some(Self::Task),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FeedCardUserRatingOptionType {
Unknown = 0,
VeryDissatisfied = 1,
Dissatisfied = 2,
Average = 3,
Satisfied = 4,
VerySatisfied = 5,
}
impl FeedCardUserRatingOptionType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unknown => "FEED_CARD_USER_RATING_OPTION_TYPE_UNKNOWN",
Self::VeryDissatisfied => {
"FEED_CARD_USER_RATING_OPTION_TYPE_VERY_DISSATISFIED"
}
Self::Dissatisfied => "FEED_CARD_USER_RATING_OPTION_TYPE_DISSATISFIED",
Self::Average => "FEED_CARD_USER_RATING_OPTION_TYPE_AVERAGE",
Self::Satisfied => "FEED_CARD_USER_RATING_OPTION_TYPE_SATISFIED",
Self::VerySatisfied => "FEED_CARD_USER_RATING_OPTION_TYPE_VERY_SATISFIED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FEED_CARD_USER_RATING_OPTION_TYPE_UNKNOWN" => Some(Self::Unknown),
"FEED_CARD_USER_RATING_OPTION_TYPE_VERY_DISSATISFIED" => {
Some(Self::VeryDissatisfied)
}
"FEED_CARD_USER_RATING_OPTION_TYPE_DISSATISFIED" => Some(Self::Dissatisfied),
"FEED_CARD_USER_RATING_OPTION_TYPE_AVERAGE" => Some(Self::Average),
"FEED_CARD_USER_RATING_OPTION_TYPE_SATISFIED" => Some(Self::Satisfied),
"FEED_CARD_USER_RATING_OPTION_TYPE_VERY_SATISFIED" => {
Some(Self::VerySatisfied)
}
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ResSetTopOptType {
ResSetTopNone = 0,
ResSetTop = 1,
ResSetTopCancel = 2,
}
impl ResSetTopOptType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::ResSetTopNone => "ResSetTopNone",
Self::ResSetTop => "ResSetTop",
Self::ResSetTopCancel => "ResSetTopCancel",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ResSetTopNone" => Some(Self::ResSetTopNone),
"ResSetTop" => Some(Self::ResSetTop),
"ResSetTopCancel" => Some(Self::ResSetTopCancel),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ReserveButtonMode {
None = 0,
Reserve = 1,
UpCancel = 2,
}
impl ReserveButtonMode {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::None => "RESERVE_BUTTON_MODE_NONE",
Self::Reserve => "RESERVE_BUTTON_MODE_RESERVE",
Self::UpCancel => "RESERVE_BUTTON_MODE_UP_CANCEL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RESERVE_BUTTON_MODE_NONE" => Some(Self::None),
"RESERVE_BUTTON_MODE_RESERVE" => Some(Self::Reserve),
"RESERVE_BUTTON_MODE_UP_CANCEL" => Some(Self::UpCancel),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ReserveButtonStatus {
None = 0,
Uncheck = 1,
Check = 2,
}
impl ReserveButtonStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::None => "RESERVE_BUTTON_STATUS_NONE",
Self::Uncheck => "RESERVE_BUTTON_STATUS_UNCHECK",
Self::Check => "RESERVE_BUTTON_STATUS_CHECK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RESERVE_BUTTON_STATUS_NONE" => Some(Self::None),
"RESERVE_BUTTON_STATUS_UNCHECK" => Some(Self::Uncheck),
"RESERVE_BUTTON_STATUS_CHECK" => Some(Self::Check),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TopicCardType {
IllegalType = 0,
Dynamic = 1,
Fold = 2,
VideoSmallCard = 3,
FeedCard = 4,
}
impl TopicCardType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::IllegalType => "ILLEGAL_TYPE",
Self::Dynamic => "DYNAMIC",
Self::Fold => "FOLD",
Self::VideoSmallCard => "VIDEO_SMALL_CARD",
Self::FeedCard => "FEED_CARD",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ILLEGAL_TYPE" => Some(Self::IllegalType),
"DYNAMIC" => Some(Self::Dynamic),
"FOLD" => Some(Self::Fold),
"VIDEO_SMALL_CARD" => Some(Self::VideoSmallCard),
"FEED_CARD" => Some(Self::FeedCard),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TopicCategory {
Default = 0,
Questions = 1,
IpTopic = 2,
Commerce = 3,
}
impl TopicCategory {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Default => "Default",
Self::Questions => "Questions",
Self::IpTopic => "IPTopic",
Self::Commerce => "Commerce",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Default" => Some(Self::Default),
"Questions" => Some(Self::Questions),
"IPTopic" => Some(Self::IpTopic),
"Commerce" => Some(Self::Commerce),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TopicDetailsExtMode {
ModeIllegalType = 0,
Story = 1,
}
impl TopicDetailsExtMode {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::ModeIllegalType => "MODE_ILLEGAL_TYPE",
Self::Story => "STORY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODE_ILLEGAL_TYPE" => Some(Self::ModeIllegalType),
"STORY" => Some(Self::Story),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TopicTopCardType {
UnknownType = 0,
CapsulesType = 1,
TrafficCardType = 2,
GameCardType = 3,
TimeLineType = 4,
LargeCoverInlineType = 5,
ReservationCardType = 6,
EsportCardType = 7,
IpTopicCardType = 8,
HeadClickAreaCardType = 9,
ItemCardType = 10,
}
impl TopicTopCardType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownType => "Unknown_Type",
Self::CapsulesType => "Capsules_Type",
Self::TrafficCardType => "Traffic_Card_Type",
Self::GameCardType => "Game_Card_Type",
Self::TimeLineType => "Time_Line_Type",
Self::LargeCoverInlineType => "Large_Cover_Inline_Type",
Self::ReservationCardType => "Reservation_Card_Type",
Self::EsportCardType => "Esport_Card_Type",
Self::IpTopicCardType => "IPTopic_Card_Type",
Self::HeadClickAreaCardType => "Head_Click_Area_Card_Type",
Self::ItemCardType => "Item_Card_Type",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Unknown_Type" => Some(Self::UnknownType),
"Capsules_Type" => Some(Self::CapsulesType),
"Traffic_Card_Type" => Some(Self::TrafficCardType),
"Game_Card_Type" => Some(Self::GameCardType),
"Time_Line_Type" => Some(Self::TimeLineType),
"Large_Cover_Inline_Type" => Some(Self::LargeCoverInlineType),
"Reservation_Card_Type" => Some(Self::ReservationCardType),
"Esport_Card_Type" => Some(Self::EsportCardType),
"IPTopic_Card_Type" => Some(Self::IpTopicCardType),
"Head_Click_Area_Card_Type" => Some(Self::HeadClickAreaCardType),
"Item_Card_Type" => Some(Self::ItemCardType),
_ => None,
}
}
}
#[cfg(feature = "feat-enable-generated-client")]
pub mod topic_client {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct TopicClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> TopicClient<T>
where
T: tonic::client::GrpcService<tonic::body::Body>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> TopicClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::Body>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::Body>,
>>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
{
TopicClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_decoding_message_size(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_encoding_message_size(limit);
self
}
pub async fn report_user_close_feed_card(
&mut self,
request: impl tonic::IntoRequest<super::ReportUserCloseFeedCardReq>,
) -> std::result::Result<tonic::Response<()>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/ReportUserCloseFeedCard",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new(
"bilibili.app.topic.v1.Topic",
"ReportUserCloseFeedCard",
),
);
self.inner.unary(req, path, codec).await
}
pub async fn report_user_rating_feed_card_choice(
&mut self,
request: impl tonic::IntoRequest<super::ReportUserRatingFeedCardChoiceReq>,
) -> std::result::Result<tonic::Response<()>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/ReportUserRatingFeedCardChoice",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new(
"bilibili.app.topic.v1.Topic",
"ReportUserRatingFeedCardChoice",
),
);
self.inner.unary(req, path, codec).await
}
pub async fn set_top_topic_res(
&mut self,
request: impl tonic::IntoRequest<super::SetTopTopicResReq>,
) -> std::result::Result<
tonic::Response<super::SetTopTopicResReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/SetTopTopicRes",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.app.topic.v1.Topic", "SetTopTopicRes"),
);
self.inner.unary(req, path, codec).await
}
pub async fn topic_details_all(
&mut self,
request: impl tonic::IntoRequest<super::TopicDetailsAllReq>,
) -> std::result::Result<
tonic::Response<super::TopicDetailsAllReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/TopicDetailsAll",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.app.topic.v1.Topic", "TopicDetailsAll"),
);
self.inner.unary(req, path, codec).await
}
pub async fn topic_details_fold(
&mut self,
request: impl tonic::IntoRequest<super::TopicDetailsFoldReq>,
) -> std::result::Result<
tonic::Response<super::TopicDetailsFoldReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/TopicDetailsFold",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.app.topic.v1.Topic", "TopicDetailsFold"),
);
self.inner.unary(req, path, codec).await
}
pub async fn topic_merged_resource(
&mut self,
request: impl tonic::IntoRequest<super::TopicMergedResourceReq>,
) -> std::result::Result<
tonic::Response<super::TopicMergedResourceReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/TopicMergedResource",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.app.topic.v1.Topic", "TopicMergedResource"),
);
self.inner.unary(req, path, codec).await
}
pub async fn topic_reserve_button_click(
&mut self,
request: impl tonic::IntoRequest<super::TopicReserveButtonClickReq>,
) -> std::result::Result<
tonic::Response<super::TopicReserveButtonClickReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/TopicReserveButtonClick",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new(
"bilibili.app.topic.v1.Topic",
"TopicReserveButtonClick",
),
);
self.inner.unary(req, path, codec).await
}
pub async fn topic_set_details(
&mut self,
request: impl tonic::IntoRequest<super::TopicSetDetailsReq>,
) -> std::result::Result<
tonic::Response<super::TopicSetDetailsReply>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/bilibili.app.topic.v1.Topic/TopicSetDetails",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("bilibili.app.topic.v1.Topic", "TopicSetDetails"),
);
self.inner.unary(req, path, codec).await
}
}
}
#[cfg(feature = "feat-enable-generated-server")]
pub mod topic_server {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
#[async_trait]
pub trait Topic: std::marker::Send + std::marker::Sync + 'static {
async fn report_user_close_feed_card(
&self,
request: tonic::Request<super::ReportUserCloseFeedCardReq>,
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
async fn report_user_rating_feed_card_choice(
&self,
request: tonic::Request<super::ReportUserRatingFeedCardChoiceReq>,
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
async fn set_top_topic_res(
&self,
request: tonic::Request<super::SetTopTopicResReq>,
) -> std::result::Result<
tonic::Response<super::SetTopTopicResReply>,
tonic::Status,
>;
async fn topic_details_all(
&self,
request: tonic::Request<super::TopicDetailsAllReq>,
) -> std::result::Result<
tonic::Response<super::TopicDetailsAllReply>,
tonic::Status,
>;
async fn topic_details_fold(
&self,
request: tonic::Request<super::TopicDetailsFoldReq>,
) -> std::result::Result<
tonic::Response<super::TopicDetailsFoldReply>,
tonic::Status,
>;
async fn topic_merged_resource(
&self,
request: tonic::Request<super::TopicMergedResourceReq>,
) -> std::result::Result<
tonic::Response<super::TopicMergedResourceReply>,
tonic::Status,
>;
async fn topic_reserve_button_click(
&self,
request: tonic::Request<super::TopicReserveButtonClickReq>,
) -> std::result::Result<
tonic::Response<super::TopicReserveButtonClickReply>,
tonic::Status,
>;
async fn topic_set_details(
&self,
request: tonic::Request<super::TopicSetDetailsReq>,
) -> std::result::Result<
tonic::Response<super::TopicSetDetailsReply>,
tonic::Status,
>;
}
#[derive(Debug)]
pub struct TopicServer<T> {
inner: Arc<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
max_decoding_message_size: Option<usize>,
max_encoding_message_size: Option<usize>,
}
impl<T> TopicServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
max_decoding_message_size: None,
max_encoding_message_size: None,
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.max_decoding_message_size = Some(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.max_encoding_message_size = Some(limit);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for TopicServer<T>
where
T: Topic,
B: Body + std::marker::Send + 'static,
B::Error: Into<StdError> + std::marker::Send + 'static,
{
type Response = http::Response<tonic::body::Body>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<std::result::Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
match req.uri().path() {
"/bilibili.app.topic.v1.Topic/ReportUserCloseFeedCard" => {
#[allow(non_camel_case_types)]
struct ReportUserCloseFeedCardSvc<T: Topic>(pub Arc<T>);
impl<
T: Topic,
> tonic::server::UnaryService<super::ReportUserCloseFeedCardReq>
for ReportUserCloseFeedCardSvc<T> {
type Response = ();
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ReportUserCloseFeedCardReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::report_user_close_feed_card(&inner, request)
.await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = ReportUserCloseFeedCardSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/ReportUserRatingFeedCardChoice" => {
#[allow(non_camel_case_types)]
struct ReportUserRatingFeedCardChoiceSvc<T: Topic>(pub Arc<T>);
impl<
T: Topic,
> tonic::server::UnaryService<
super::ReportUserRatingFeedCardChoiceReq,
> for ReportUserRatingFeedCardChoiceSvc<T> {
type Response = ();
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<
super::ReportUserRatingFeedCardChoiceReq,
>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::report_user_rating_feed_card_choice(
&inner,
request,
)
.await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = ReportUserRatingFeedCardChoiceSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/SetTopTopicRes" => {
#[allow(non_camel_case_types)]
struct SetTopTopicResSvc<T: Topic>(pub Arc<T>);
impl<T: Topic> tonic::server::UnaryService<super::SetTopTopicResReq>
for SetTopTopicResSvc<T> {
type Response = super::SetTopTopicResReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::SetTopTopicResReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::set_top_topic_res(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = SetTopTopicResSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/TopicDetailsAll" => {
#[allow(non_camel_case_types)]
struct TopicDetailsAllSvc<T: Topic>(pub Arc<T>);
impl<T: Topic> tonic::server::UnaryService<super::TopicDetailsAllReq>
for TopicDetailsAllSvc<T> {
type Response = super::TopicDetailsAllReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TopicDetailsAllReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::topic_details_all(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TopicDetailsAllSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/TopicDetailsFold" => {
#[allow(non_camel_case_types)]
struct TopicDetailsFoldSvc<T: Topic>(pub Arc<T>);
impl<
T: Topic,
> tonic::server::UnaryService<super::TopicDetailsFoldReq>
for TopicDetailsFoldSvc<T> {
type Response = super::TopicDetailsFoldReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TopicDetailsFoldReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::topic_details_fold(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TopicDetailsFoldSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/TopicMergedResource" => {
#[allow(non_camel_case_types)]
struct TopicMergedResourceSvc<T: Topic>(pub Arc<T>);
impl<
T: Topic,
> tonic::server::UnaryService<super::TopicMergedResourceReq>
for TopicMergedResourceSvc<T> {
type Response = super::TopicMergedResourceReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TopicMergedResourceReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::topic_merged_resource(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TopicMergedResourceSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/TopicReserveButtonClick" => {
#[allow(non_camel_case_types)]
struct TopicReserveButtonClickSvc<T: Topic>(pub Arc<T>);
impl<
T: Topic,
> tonic::server::UnaryService<super::TopicReserveButtonClickReq>
for TopicReserveButtonClickSvc<T> {
type Response = super::TopicReserveButtonClickReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TopicReserveButtonClickReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::topic_reserve_button_click(&inner, request)
.await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TopicReserveButtonClickSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/bilibili.app.topic.v1.Topic/TopicSetDetails" => {
#[allow(non_camel_case_types)]
struct TopicSetDetailsSvc<T: Topic>(pub Arc<T>);
impl<T: Topic> tonic::server::UnaryService<super::TopicSetDetailsReq>
for TopicSetDetailsSvc<T> {
type Response = super::TopicSetDetailsReply;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TopicSetDetailsReq>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as Topic>::topic_set_details(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TopicSetDetailsSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
let mut response = http::Response::new(
tonic::body::Body::default(),
);
let headers = response.headers_mut();
headers
.insert(
tonic::Status::GRPC_STATUS,
(tonic::Code::Unimplemented as i32).into(),
);
headers
.insert(
http::header::CONTENT_TYPE,
tonic::metadata::GRPC_CONTENT_TYPE,
);
Ok(response)
})
}
}
}
}
impl<T> Clone for TopicServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
max_decoding_message_size: self.max_decoding_message_size,
max_encoding_message_size: self.max_encoding_message_size,
}
}
}
pub const SERVICE_NAME: &str = "bilibili.app.topic.v1.Topic";
impl<T> tonic::server::NamedService for TopicServer<T> {
const NAME: &'static str = SERVICE_NAME;
}
}