1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.sync.getLatestCommit
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 GetLatestCommit<'a> {
21 #[serde(borrow)]
22 pub did: jacquard_common::types::string::Did<'a>,
23}
24
25#[jacquard_derive::lexicon]
26#[derive(
27 serde::Serialize,
28 serde::Deserialize,
29 Debug,
30 Clone,
31 PartialEq,
32 Eq,
33 jacquard_derive::IntoStatic
34)]
35#[serde(rename_all = "camelCase")]
36pub struct GetLatestCommitOutput<'a> {
37 #[serde(borrow)]
38 pub cid: jacquard_common::types::string::Cid<'a>,
39 pub rev: jacquard_common::types::string::Tid,
40}
41
42#[jacquard_derive::open_union]
43#[derive(
44 serde::Serialize,
45 serde::Deserialize,
46 Debug,
47 Clone,
48 PartialEq,
49 Eq,
50 thiserror::Error,
51 miette::Diagnostic,
52 jacquard_derive::IntoStatic
53)]
54#[serde(tag = "error", content = "message")]
55#[serde(bound(deserialize = "'de: 'a"))]
56pub enum GetLatestCommitError<'a> {
57 #[serde(rename = "RepoNotFound")]
58 RepoNotFound(std::option::Option<String>),
59 #[serde(rename = "RepoTakendown")]
60 RepoTakendown(std::option::Option<String>),
61 #[serde(rename = "RepoSuspended")]
62 RepoSuspended(std::option::Option<String>),
63 #[serde(rename = "RepoDeactivated")]
64 RepoDeactivated(std::option::Option<String>),
65}
66
67impl std::fmt::Display for GetLatestCommitError<'_> {
68 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
69 match self {
70 Self::RepoNotFound(msg) => {
71 write!(f, "RepoNotFound")?;
72 if let Some(msg) = msg {
73 write!(f, ": {}", msg)?;
74 }
75 Ok(())
76 }
77 Self::RepoTakendown(msg) => {
78 write!(f, "RepoTakendown")?;
79 if let Some(msg) = msg {
80 write!(f, ": {}", msg)?;
81 }
82 Ok(())
83 }
84 Self::RepoSuspended(msg) => {
85 write!(f, "RepoSuspended")?;
86 if let Some(msg) = msg {
87 write!(f, ": {}", msg)?;
88 }
89 Ok(())
90 }
91 Self::RepoDeactivated(msg) => {
92 write!(f, "RepoDeactivated")?;
93 if let Some(msg) = msg {
94 write!(f, ": {}", msg)?;
95 }
96 Ok(())
97 }
98 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
99 }
100 }
101}
102
103///Response type for
104///com.atproto.sync.getLatestCommit
105pub struct GetLatestCommitResponse;
106impl jacquard_common::xrpc::XrpcResp for GetLatestCommitResponse {
107 const NSID: &'static str = "com.atproto.sync.getLatestCommit";
108 const ENCODING: &'static str = "application/json";
109 type Output<'de> = GetLatestCommitOutput<'de>;
110 type Err<'de> = GetLatestCommitError<'de>;
111}
112
113impl<'a> jacquard_common::xrpc::XrpcRequest for GetLatestCommit<'a> {
114 const NSID: &'static str = "com.atproto.sync.getLatestCommit";
115 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
116 type Response = GetLatestCommitResponse;
117}
118
119///Endpoint type for
120///com.atproto.sync.getLatestCommit
121pub struct GetLatestCommitRequest;
122impl jacquard_common::xrpc::XrpcEndpoint for GetLatestCommitRequest {
123 const PATH: &'static str = "/xrpc/com.atproto.sync.getLatestCommit";
124 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
125 type Request<'de> = GetLatestCommit<'de>;
126 type Response = GetLatestCommitResponse;
127}