Skip to content

Commit

Permalink
Merge pull request #102 from str4d/lexicon-integers
Browse files Browse the repository at this point in the history
Introduce types guaranteed to fit the range of each Lexicon integer
  • Loading branch information
sugyan authored Feb 18, 2024
2 parents 3d97dec + 527b9c8 commit 948c380
Show file tree
Hide file tree
Showing 57 changed files with 353 additions and 94 deletions.
11 changes: 11 additions & 0 deletions atrium-api/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added
- `atrium_api::types`:
- `LimitedU8`, `LimitedNonZeroU8`, `BoundedU8`
- `LimitedU16`, `LimitedNonZeroU16`, `BoundedU16`
- `LimitedU32`, `LimitedNonZeroU32`, `BoundedU32`
- `LimitedU64`, `LimitedNonZeroU64`, `BoundedU64`

### Changed
- All Lexicon integer fields now have a type that matches their minimum and maximum
accepted values, instead of `i32`.

## [0.16.0](https://github.com/sugyan/atrium/compare/atrium-api-v0.15.0...atrium-api-v0.16.0) - 2024-02-09

### Added
Expand Down
8 changes: 4 additions & 4 deletions atrium-api/src/app/bsky/actor/defs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ pub struct FeedViewPref {
pub hide_replies: Option<bool>,
///Hide replies in the feed if they do not have this number of likes.
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_replies_by_like_count: Option<i32>,
pub hide_replies_by_like_count: Option<i64>,
///Hide replies in the feed if they are not by followed users.
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_replies_by_unfollowed: Option<bool>,
Expand Down Expand Up @@ -92,16 +92,16 @@ pub struct ProfileViewDetailed {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub followers_count: Option<i32>,
pub followers_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub follows_count: Option<i32>,
pub follows_count: Option<i64>,
pub handle: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexed_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub posts_count: Option<i32>,
pub posts_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/actor/get_suggestions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/actor/search_actors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
///Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
#[serde(skip_serializing_if = "Option::is_none")]
pub q: Option<String>,
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/actor/search_actors_typeahead.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#[serde(rename_all = "camelCase")]
pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
///Search query prefix; not a full query string.
#[serde(skip_serializing_if = "Option::is_none")]
pub q: Option<String>,
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/embed/images.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ pub struct Main {
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AspectRatio {
pub height: i32,
pub width: i32,
pub height: core::num::NonZeroU64,
pub width: core::num::NonZeroU64,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
8 changes: 4 additions & 4 deletions atrium-api/src/app/bsky/feed/defs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub struct GeneratorView {
pub display_name: String,
pub indexed_at: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub like_count: Option<i32>,
pub like_count: Option<usize>,
pub uri: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<GeneratorViewerState>,
Expand Down Expand Up @@ -66,12 +66,12 @@ pub struct PostView {
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub like_count: Option<i32>,
pub like_count: Option<i64>,
pub record: crate::records::Record,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_count: Option<i32>,
pub reply_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub repost_count: Option<i32>,
pub repost_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threadgate: Option<ThreadgateView>,
pub uri: String,
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_actor_feeds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_actor_likes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_author_feed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_feed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
pub cursor: Option<String>,
pub feed: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_feed_skeleton.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
pub cursor: Option<String>,
pub feed: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_likes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
pub uri: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_list_feed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
pub list: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/feed/get_post_thread.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
#[serde(rename_all = "camelCase")]
pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub depth: Option<i32>,
pub depth: Option<crate::types::LimitedU16<1000u16>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent_height: Option<i32>,
pub parent_height: Option<crate::types::LimitedU16<1000u16>>,
pub uri: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_reposted_by.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
pub uri: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_suggested_feeds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/feed/get_timeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/feed/post.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ pub struct ReplyRef {
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct TextSlice {
pub end: i32,
pub start: i32,
pub end: usize,
pub start: usize,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/feed/search_posts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
pub q: String,
}
Expand All @@ -18,7 +18,7 @@ pub struct Output {
pub cursor: Option<String>,
///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.
#[serde(skip_serializing_if = "Option::is_none")]
pub hits_total: Option<i32>,
pub hits_total: Option<i64>,
pub posts: Vec<crate::app::bsky::feed::defs::PostView>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_blocks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_followers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_follows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
pub list: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_list_blocks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_list_mutes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_lists.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/graph/get_mutes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/notification/get_unread_count.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pub struct Parameters {
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Output {
pub count: i32,
pub count: i64,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "error", content = "message")]
Expand Down
2 changes: 1 addition & 1 deletion atrium-api/src/app/bsky/notification/list_notifications.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seen_at: Option<String>,
}
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/richtext/facet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ pub struct Main {
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ByteSlice {
pub byte_end: i32,
pub byte_start: i32,
pub byte_end: usize,
pub byte_start: usize,
}
///A facet feature for links.
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
}
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/unspecced/search_actors_skeleton.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax.
pub q: String,
///If true, acts as fast/simple 'typeahead' query.
Expand All @@ -22,7 +22,7 @@ pub struct Output {
pub cursor: Option<String>,
///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.
#[serde(skip_serializing_if = "Option::is_none")]
pub hits_total: Option<i32>,
pub hits_total: Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "error", content = "message")]
Expand Down
4 changes: 2 additions & 2 deletions atrium-api/src/app/bsky/unspecced/search_posts_skeleton.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Parameters {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
pub limit: Option<crate::types::LimitedNonZeroU8<100u8>>,
///Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
pub q: String,
}
Expand All @@ -18,7 +18,7 @@ pub struct Output {
pub cursor: Option<String>,
///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.
#[serde(skip_serializing_if = "Option::is_none")]
pub hits_total: Option<i32>,
pub hits_total: Option<i64>,
pub posts: Vec<crate::app::bsky::unspecced::defs::SkeletonSearchPost>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
Expand Down
Loading

0 comments on commit 948c380

Please sign in to comment.