From e0465a182421597cb8f8c12a6964ddc094ff356d Mon Sep 17 00:00:00 2001 From: Timothy Quilling Date: Thu, 20 Nov 2025 13:39:23 -0500 Subject: [PATCH] fix: use lexica --- lexica/src/app_bsky/unspecced.rs | 8 ++-- .../app_bsky/unspecced/thread_v2/models.rs | 44 +------------------ 2 files changed, 6 insertions(+), 46 deletions(-) diff --git a/lexica/src/app_bsky/unspecced.rs b/lexica/src/app_bsky/unspecced.rs index af8b902d..6c3f2a72 100644 --- a/lexica/src/app_bsky/unspecced.rs +++ b/lexica/src/app_bsky/unspecced.rs @@ -1,14 +1,14 @@ use crate::app_bsky::feed::{BlockedAuthor, PostView}; -use serde::Serialize; +use serde::{Deserialize, Serialize}; -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] pub struct ThreadV2Item { pub uri: String, pub depth: i32, pub value: ThreadV2ItemType, } -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] #[serde(tag = "$type")] pub enum ThreadV2ItemType { #[serde(rename = "app.bsky.unspecced.defs#threadItemPost")] @@ -21,7 +21,7 @@ pub enum ThreadV2ItemType { Blocked { author: Box }, } -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ThreadItemPost { pub post: PostView, diff --git a/parakeet/src/xrpc/app_bsky/unspecced/thread_v2/models.rs b/parakeet/src/xrpc/app_bsky/unspecced/thread_v2/models.rs index 124d2d63..c8fdc66e 100644 --- a/parakeet/src/xrpc/app_bsky/unspecced/thread_v2/models.rs +++ b/parakeet/src/xrpc/app_bsky/unspecced/thread_v2/models.rs @@ -1,48 +1,8 @@ use lexica::app_bsky::feed::{PostView, ThreadgateView}; use serde::{Deserialize, Serialize}; -/// Thread item post type for the thread v2 API -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ThreadItemPost { - pub post: PostView, - pub more_parents: bool, - pub more_replies: i64, - #[serde(rename = "opThread")] - pub op_thread: bool, - #[serde(rename = "hiddenByThreadgate")] - pub hidden_by_threadgate: bool, - #[serde(rename = "mutedByViewer")] - pub muted_by_viewer: bool, -} - -/// Thread item types for the thread v2 API -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(tag = "$type")] -pub enum ThreadV2ItemType { - #[serde(rename = "app.bsky.unspecced.defs#threadItemPost")] - Post(Box), - #[serde(rename = "app.bsky.unspecced.defs#threadItemNotFound")] - NotFound, - #[serde(rename = "app.bsky.unspecced.defs#blocked")] - Blocked { - #[serde(skip_serializing_if = "Option::is_none")] - uri: Option, - #[serde(skip_serializing_if = "Option::is_none")] - author: Option, - }, - #[serde(rename = "app.bsky.unspecced.defs#tombstone")] - Tombstone, -} - -/// Thread item for the thread v2 API -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ThreadV2Item { - pub uri: String, - pub depth: i32, - pub value: ThreadV2ItemType, -} +// Re-export the correct types from lexica +pub use lexica::app_bsky::unspecced::{ThreadItemPost, ThreadV2Item, ThreadV2ItemType}; /// Post thread sorting options #[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Default)] -- 2.51.2