1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.feed.getFeedSkeleton
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[derive(
9 serde::Serialize,
10 serde::Deserialize,
11 Debug,
12 Clone,
13 PartialEq,
14 Eq,
15 bon::Builder,
16 jacquard_derive::IntoStatic
17)]
18#[builder(start_fn = new)]
19#[serde(rename_all = "camelCase")]
20pub struct GetFeedSkeleton<'a> {
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 #[serde(borrow)]
23 #[builder(into)]
24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
25 #[serde(borrow)]
26 pub feed: jacquard_common::types::string::AtUri<'a>,
27 ///(default: 50, min: 1, max: 100)
28 #[serde(skip_serializing_if = "std::option::Option::is_none")]
29 pub limit: std::option::Option<i64>,
30}
31
32#[jacquard_derive::lexicon]
33#[derive(
34 serde::Serialize,
35 serde::Deserialize,
36 Debug,
37 Clone,
38 PartialEq,
39 Eq,
40 jacquard_derive::IntoStatic
41)]
42#[serde(rename_all = "camelCase")]
43pub struct GetFeedSkeletonOutput<'a> {
44 #[serde(skip_serializing_if = "std::option::Option::is_none")]
45 #[serde(borrow)]
46 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
47 #[serde(borrow)]
48 pub feed: Vec<crate::app_bsky::feed::SkeletonFeedPost<'a>>,
49 /// Unique identifier per request that may be passed back alongside interactions.
50 #[serde(skip_serializing_if = "std::option::Option::is_none")]
51 #[serde(borrow)]
52 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>,
53}
54
55#[jacquard_derive::open_union]
56#[derive(
57 serde::Serialize,
58 serde::Deserialize,
59 Debug,
60 Clone,
61 PartialEq,
62 Eq,
63 thiserror::Error,
64 miette::Diagnostic,
65 jacquard_derive::IntoStatic
66)]
67#[serde(tag = "error", content = "message")]
68#[serde(bound(deserialize = "'de: 'a"))]
69pub enum GetFeedSkeletonError<'a> {
70 #[serde(rename = "UnknownFeed")]
71 UnknownFeed(std::option::Option<String>),
72}
73
74impl std::fmt::Display for GetFeedSkeletonError<'_> {
75 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
76 match self {
77 Self::UnknownFeed(msg) => {
78 write!(f, "UnknownFeed")?;
79 if let Some(msg) = msg {
80 write!(f, ": {}", msg)?;
81 }
82 Ok(())
83 }
84 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
85 }
86 }
87}
88
89///Response type for
90///app.bsky.feed.getFeedSkeleton
91pub struct GetFeedSkeletonResponse;
92impl jacquard_common::xrpc::XrpcResp for GetFeedSkeletonResponse {
93 const NSID: &'static str = "app.bsky.feed.getFeedSkeleton";
94 const ENCODING: &'static str = "application/json";
95 type Output<'de> = GetFeedSkeletonOutput<'de>;
96 type Err<'de> = GetFeedSkeletonError<'de>;
97}
98
99impl<'a> jacquard_common::xrpc::XrpcRequest for GetFeedSkeleton<'a> {
100 const NSID: &'static str = "app.bsky.feed.getFeedSkeleton";
101 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
102 type Response = GetFeedSkeletonResponse;
103}
104
105///Endpoint type for
106///app.bsky.feed.getFeedSkeleton
107pub struct GetFeedSkeletonRequest;
108impl jacquard_common::xrpc::XrpcEndpoint for GetFeedSkeletonRequest {
109 const PATH: &'static str = "/xrpc/app.bsky.feed.getFeedSkeleton";
110 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
111 type Request<'de> = GetFeedSkeleton<'de>;
112 type Response = GetFeedSkeletonResponse;
113}