mastodon_async_entities/
mention.rs1use std::fmt::Display;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
7pub struct Mention {
8 pub url: String,
10 pub username: String,
12 pub acct: String,
14 pub id: String,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
20#[serde(transparent)]
21pub struct MentionId(String);
22
23impl AsRef<str> for MentionId {
24 fn as_ref(&self) -> &str {
25 &self.0
26 }
27}
28
29impl MentionId {
30 pub fn new(value: impl Into<String>) -> Self {
31 Self(value.into())
32 }
33}
34
35impl Display for MentionId {
36 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
37 write!(f, "{}", self.0)
38 }
39}
40
41static_assertions::assert_not_impl_any!(
42 Mention: PartialEq<crate::account::AccountId>,
43 PartialEq<crate::attachment::AttachmentId>,
44 PartialEq<crate::filter::FilterId>,
45 PartialEq<crate::list::ListId>,
46 PartialEq<crate::notification::NotificationId>,
47 PartialEq<crate::relationship::RelationshipId>,
48 PartialEq<crate::push::SubscriptionId>,
49 PartialEq<crate::report::ReportId>,
50 PartialEq<crate::status::StatusId>,
51);