From 3b5491a4389e8323d0ce98d7de29301e88e70053 Mon Sep 17 00:00:00 2001 From: Zomatree Date: Sat, 21 Mar 2026 02:57:59 +0000 Subject: [PATCH] fix: switch to hashset Signed-off-by: Zomatree --- crates/core/models/src/v0/search.rs | 15 ++++++++------- crates/core/search/src/types.rs | 20 +++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/crates/core/models/src/v0/search.rs b/crates/core/models/src/v0/search.rs index 569c99e6..2ea944fb 100644 --- a/crates/core/models/src/v0/search.rs +++ b/crates/core/models/src/v0/search.rs @@ -1,4 +1,5 @@ use iso8601_timestamp::Timestamp; +use std::collections::HashSet; auto_derived!( pub struct DataChannelMessagesSearch { @@ -13,24 +14,24 @@ auto_derived!( pub struct DataChannelMessagesSearchFilters { pub content: Option, - pub author: Option>, - pub mentions: Option>, - pub role_mentions: Option>, + pub author: Option>, + pub mentions: Option>, + pub role_mentions: Option>, pub before_date: Option, pub after_date: Option, - pub author_type: Option>, + pub author_type: Option>, pub pinned: Option, - pub components: Option>, + pub components: Option>, } - #[derive(Copy)] + #[derive(Copy, Hash)] pub enum AuthorType { User, // Bot, Webhook, } - #[derive(Copy)] + #[derive(Copy, Hash)] pub enum MessageComponent { Image, Video, diff --git a/crates/core/search/src/types.rs b/crates/core/search/src/types.rs index 2d9b8336..9665319c 100644 --- a/crates/core/search/src/types.rs +++ b/crates/core/search/src/types.rs @@ -1,16 +1,18 @@ +use std::collections::HashSet; + use iso8601_timestamp::Timestamp; +use revolt_database::{File, Metadata}; use revolt_models::v0; use serde::{Deserialize, Serialize}; -use revolt_database::{File, Metadata}; -#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Hash)] pub enum AuthorType { User, // Bot, Webhook, } -#[derive(Debug, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum MessageComponent { Image, Video, @@ -22,14 +24,14 @@ pub enum MessageComponent { #[derive(Debug, Clone, Default, PartialEq)] pub struct SearchFilters { pub content: Option, - pub author: Option>, - pub mentions: Option>, - pub role_mentions: Option>, + pub author: Option>, + pub mentions: Option>, + pub role_mentions: Option>, pub before_date: Option, pub after_date: Option, - pub author_type: Option>, + pub author_type: Option>, pub pinned: Option, - pub components: Option>, + pub components: Option>, } #[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] @@ -51,7 +53,7 @@ pub struct SearchTerms { #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct MetadataFile { pub file: File, - pub metadata: Metadata + pub metadata: Metadata, } impl From for AuthorType {