Split client, endpoint, and WebSocket implementations into domain-focused modules while preserving the public API.\n\nImprove crate and API documentation to describe responsibilities, authentication boundaries, and response compatibility.
120 lines
3.7 KiB
Rust
120 lines
3.7 KiB
Rust
//! 点赞相关直播命令的数据模型.
|
|
|
|
use serde_json::Value;
|
|
use std::collections::HashMap;
|
|
|
|
/// 用户点赞消息。
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct LikeClickMessage {
|
|
/// 服务端原始命令名。
|
|
pub cmd: String,
|
|
/// 点赞业务数据。
|
|
pub data: LikeClickData,
|
|
/// 未被当前版本建模的顶层字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// [`LikeClickMessage`] 的点赞业务数据。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeClickData {
|
|
/// 点赞用户 UID。
|
|
pub uid: Option<u64>,
|
|
/// 点赞用户昵称。
|
|
pub uname: Option<String>,
|
|
/// 点赞文案。
|
|
pub like_text: Option<String>,
|
|
/// 当前点赞计数。
|
|
pub like_count: Option<u64>,
|
|
/// 是否为点赞操作。
|
|
pub is_like: Option<bool>,
|
|
/// 点赞图标 URL。
|
|
pub icon: Option<String>,
|
|
/// 粉丝勋章信息。
|
|
pub fans_medal: Option<LikeFansMedalInfo>,
|
|
/// 用户贡献信息。
|
|
pub contribution_info: Option<LikeContributionInfo>,
|
|
/// 用户身份标识。
|
|
pub identities: Vec<Value>,
|
|
/// 弹幕评分。
|
|
pub dmscore: Option<u64>,
|
|
/// 未被当前版本建模的 `data` 字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// 点赞消息中的粉丝勋章信息。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeFansMedalInfo {
|
|
/// 勋章等级。
|
|
pub level: Option<u8>,
|
|
/// 勋章名称。
|
|
pub name: Option<String>,
|
|
/// 勋章颜色。
|
|
pub color: Option<u32>,
|
|
/// 渐变起始颜色。
|
|
pub color_start: Option<u32>,
|
|
/// 渐变结束颜色。
|
|
pub color_end: Option<u32>,
|
|
/// 边框颜色。
|
|
pub color_border: Option<u32>,
|
|
/// 勋章所属直播间 ID。
|
|
pub anchor_room_id: Option<u64>,
|
|
/// 勋章所属主播昵称。
|
|
pub anchor_name: Option<String>,
|
|
/// 大航海等级。
|
|
pub guard_level: Option<u8>,
|
|
/// 未被当前版本建模的字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// 点赞消息中的用户贡献信息。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeContributionInfo {
|
|
/// 贡献等级。
|
|
pub grade: Option<u64>,
|
|
/// 未被当前版本建模的字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// 直播间点赞计数变化消息。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeUpdateMessage {
|
|
/// 服务端原始命令名。
|
|
pub cmd: String,
|
|
/// 直播间当前点赞计数。
|
|
pub click_count: Option<u64>,
|
|
/// 未被当前版本建模或类型不符合预期的 `data` 字段。
|
|
pub data_extra: HashMap<String, Value>,
|
|
/// 未被当前版本建模的顶层字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// 直播间点赞提示消息。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeNoticeMessage {
|
|
/// 服务端原始命令名。
|
|
pub cmd: String,
|
|
/// 直播间当前点赞计数。
|
|
pub like_count: Option<u64>,
|
|
/// 服务端定义的提示消息类型。
|
|
pub message_type: Option<u8>,
|
|
/// 组成提示文案的片段。
|
|
pub content_segments: Vec<LikeNoticeContentSegment>,
|
|
/// `content_segments` 中不是对象的原始条目。
|
|
pub unknown_content_segments: HashMap<usize, Value>,
|
|
/// 未被当前版本建模或类型不符合预期的 `data` 字段。
|
|
pub data_extra: HashMap<String, Value>,
|
|
/// 未被当前版本建模的顶层字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|
|
|
|
/// [`LikeNoticeMessage`] 提示文案中的一个片段。
|
|
#[derive(Debug, Clone, Default, PartialEq)]
|
|
pub struct LikeNoticeContentSegment {
|
|
/// 服务端定义的片段类型。
|
|
pub kind: Option<u8>,
|
|
/// 片段文本。
|
|
pub text: Option<String>,
|
|
/// 未被当前版本建模的字段。
|
|
pub extra: HashMap<String, Value>,
|
|
}
|