rust_anilist/models/
notification.rs1use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Default, Clone, PartialEq, Deserialize, Serialize)]
10pub struct Notification {}
11
12#[derive(Debug, Default, Clone, PartialEq, Deserialize, Serialize)]
14#[serde(rename_all(deserialize = "camelCase"))]
15pub struct NotificationOption {
16 notification_type: NotificationType,
18 enabled: bool,
20}
21
22#[derive(Debug, Default, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
24#[serde(rename_all(deserialize = "SCREAMING_SNAKE_CASE"))]
25pub enum NotificationType {
26 #[default]
28 ActivityMessage,
29 ActivityReply,
31 Following,
33 ActivityMention,
35 ThreadCommentMention,
37 Airing,
39 ActivityLike,
41 ActivityReplyLike,
43 ThreadLike,
45 ActivityReplySubscribed,
47 RelatedMediaAddition,
49 MediaDataChange,
51 MediaMerge,
53 MediaDeletion,
55}
56
57impl std::fmt::Display for NotificationType {
58 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
59 match self {
60 NotificationType::ActivityMessage => write!(f, "Activity Message"),
61 NotificationType::ActivityReply => write!(f, "Activity Reply"),
62 NotificationType::Following => write!(f, "Following"),
63 NotificationType::ActivityMention => write!(f, "Activity Mention"),
64 NotificationType::ThreadCommentMention => write!(f, "Thread Comment Mention"),
65 NotificationType::Airing => write!(f, "Airing"),
66 NotificationType::ActivityLike => write!(f, "Activity Like"),
67 NotificationType::ActivityReplyLike => write!(f, "Activity Reply Like"),
68 NotificationType::ThreadLike => write!(f, "Thread Like"),
69 NotificationType::ActivityReplySubscribed => write!(f, "Activity Reply Subscribed"),
70 NotificationType::RelatedMediaAddition => write!(f, "Related Media Addition"),
71 NotificationType::MediaDataChange => write!(f, "Media Data Change"),
72 NotificationType::MediaMerge => write!(f, "Media Merge"),
73 NotificationType::MediaDeletion => write!(f, "Media Deletion"),
74 }
75 }
76}