summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorD. Scott Boggs <scott@tams.tech>2023-01-09 08:39:42 -0500
committerD. Scott Boggs <scott@tams.tech>2023-01-09 08:39:42 -0500
commit24df7ab8fbb96c7e227b92719f0d495a31f26208 (patch)
treebc0418cad8e6121ee5d6d4a855950169ce5f438b
parentabdd241cff0e7dfb9fda02dcf5dbcb5a6e348b89 (diff)
Add static assertionstyped-ids
-rw-r--r--entities/Cargo.toml1
-rw-r--r--entities/src/account.rs12
-rw-r--r--entities/src/attachment.rs12
-rw-r--r--entities/src/filter.rs12
-rw-r--r--entities/src/list.rs12
-rw-r--r--entities/src/mention.rs12
-rw-r--r--entities/src/notification.rs12
-rw-r--r--entities/src/push.rs11
-rw-r--r--entities/src/relationship.rs12
-rw-r--r--entities/src/report.rs12
-rw-r--r--entities/src/status.rs12
11 files changed, 120 insertions, 0 deletions
diff --git a/entities/Cargo.toml b/entities/Cargo.toml
index 9669eae..f64ab7f 100644
--- a/entities/Cargo.toml
+++ b/entities/Cargo.toml
@@ -14,3 +14,4 @@ log = { version = "0.4", features = ["kv_unstable", "serde", "std", "kv_unstable
serde = { version = "1", features = ["derive"] }
thiserror = "1"
time = { version = "0.3", features = ["parsing", "serde", "formatting"] }
+static_assertions = "1" \ No newline at end of file
diff --git a/entities/src/account.rs b/entities/src/account.rs
index 08ee5cb..f60aad5 100644
--- a/entities/src/account.rs
+++ b/entities/src/account.rs
@@ -71,6 +71,18 @@ impl AccountId {
}
}
+static_assertions::assert_not_impl_any!(
+ AccountId: PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
+
/// A single name: value pair from a user's profile
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
pub struct MetadataField {
diff --git a/entities/src/attachment.rs b/entities/src/attachment.rs
index b245053..671441c 100644
--- a/entities/src/attachment.rs
+++ b/entities/src/attachment.rs
@@ -41,6 +41,18 @@ impl AttachmentId {
}
}
+static_assertions::assert_not_impl_any!(
+ AttachmentId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::status::StatusId>,
+);
+
/// Information about the attachment itself.
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
pub struct Meta {
diff --git a/entities/src/filter.rs b/entities/src/filter.rs
index b6d88e8..b7cf727 100644
--- a/entities/src/filter.rs
+++ b/entities/src/filter.rs
@@ -68,6 +68,18 @@ impl FilterId {
}
}
+static_assertions::assert_not_impl_any!(
+ FilterId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
+
/// Represents the various types of Filter contexts
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
diff --git a/entities/src/list.rs b/entities/src/list.rs
index f5639f4..72a0aa2 100644
--- a/entities/src/list.rs
+++ b/entities/src/list.rs
@@ -23,3 +23,15 @@ impl ListId {
Self(value.into())
}
}
+
+static_assertions::assert_not_impl_any!(
+ ListId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
diff --git a/entities/src/mention.rs b/entities/src/mention.rs
index 9a36dab..6b38b22 100644
--- a/entities/src/mention.rs
+++ b/entities/src/mention.rs
@@ -29,3 +29,15 @@ impl MentionId {
Self(value.into())
}
}
+
+static_assertions::assert_not_impl_any!(
+ Mention: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
diff --git a/entities/src/notification.rs b/entities/src/notification.rs
index 45f46de..8aff456 100644
--- a/entities/src/notification.rs
+++ b/entities/src/notification.rs
@@ -39,6 +39,18 @@ impl NotificationId {
}
}
+static_assertions::assert_not_impl_any!(
+ NotificationId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
+
/// The type of notification.
#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
diff --git a/entities/src/push.rs b/entities/src/push.rs
index 148c40d..a51ce94 100644
--- a/entities/src/push.rs
+++ b/entities/src/push.rs
@@ -43,6 +43,17 @@ impl SubscriptionId {
}
}
+static_assertions::assert_not_impl_any!(
+ SubscriptionId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
+
pub mod add_subscription {
use serde::Serialize;
diff --git a/entities/src/relationship.rs b/entities/src/relationship.rs
index d9ff7c4..83cf063 100644
--- a/entities/src/relationship.rs
+++ b/entities/src/relationship.rs
@@ -48,3 +48,15 @@ impl RelationshipId {
Self(value.into())
}
}
+
+static_assertions::assert_not_impl_any!(
+ RelationshipId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::status::StatusId>,
+);
diff --git a/entities/src/report.rs b/entities/src/report.rs
index f94accc..d6450b4 100644
--- a/entities/src/report.rs
+++ b/entities/src/report.rs
@@ -27,3 +27,15 @@ impl ReportId {
Self(value.into())
}
}
+
+static_assertions::assert_not_impl_any!(
+ ReportId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::list::ListId>,
+ PartialEq<crate::status::StatusId>,
+);
diff --git a/entities/src/status.rs b/entities/src/status.rs
index 89cb1e6..b4133b0 100644
--- a/entities/src/status.rs
+++ b/entities/src/status.rs
@@ -82,6 +82,18 @@ impl StatusId {
}
}
+static_assertions::assert_not_impl_any!(
+ StatusId: PartialEq<crate::account::AccountId>,
+ PartialEq<crate::attachment::AttachmentId>,
+ PartialEq<crate::filter::FilterId>,
+ PartialEq<crate::push::SubscriptionId>,
+ PartialEq<crate::mention::MentionId>,
+ PartialEq<crate::notification::NotificationId>,
+ PartialEq<crate::relationship::RelationshipId>,
+ PartialEq<crate::report::ReportId>,
+ PartialEq<crate::list::ListId>,
+);
+
/// A mention of another user.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Mention {