A better Rust ATProto crate
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: com.atproto.server.createAppPassword 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8#[jacquard_derive::lexicon] 9#[derive( 10 serde::Serialize, 11 serde::Deserialize, 12 Debug, 13 Clone, 14 PartialEq, 15 Eq, 16 jacquard_derive::IntoStatic 17)] 18#[serde(rename_all = "camelCase")] 19pub struct AppPassword<'a> { 20 pub created_at: jacquard_common::types::string::Datetime, 21 #[serde(borrow)] 22 pub name: jacquard_common::CowStr<'a>, 23 #[serde(borrow)] 24 pub password: jacquard_common::CowStr<'a>, 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 pub privileged: std::option::Option<bool>, 27} 28 29#[jacquard_derive::lexicon] 30#[derive( 31 serde::Serialize, 32 serde::Deserialize, 33 Debug, 34 Clone, 35 PartialEq, 36 Eq, 37 bon::Builder, 38 jacquard_derive::IntoStatic 39)] 40#[serde(rename_all = "camelCase")] 41#[builder(start_fn = new)] 42pub struct CreateAppPassword<'a> { 43 ///A short name for the App Password, to help distinguish them. 44 #[serde(borrow)] 45 #[builder(into)] 46 pub name: jacquard_common::CowStr<'a>, 47 ///If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients. 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 49 pub privileged: std::option::Option<bool>, 50 #[serde(flatten)] 51 #[serde(borrow)] 52 #[builder(default)] 53 pub extra_data: ::std::collections::BTreeMap< 54 ::jacquard_common::smol_str::SmolStr, 55 ::jacquard_common::types::value::Data<'a>, 56 >, 57} 58 59#[jacquard_derive::lexicon] 60#[derive( 61 serde::Serialize, 62 serde::Deserialize, 63 Debug, 64 Clone, 65 PartialEq, 66 Eq, 67 jacquard_derive::IntoStatic 68)] 69#[serde(rename_all = "camelCase")] 70pub struct CreateAppPasswordOutput<'a> { 71 #[serde(flatten)] 72 #[serde(borrow)] 73 pub value: jacquard_common::types::value::Data<'a>, 74} 75 76#[jacquard_derive::open_union] 77#[derive( 78 serde::Serialize, 79 serde::Deserialize, 80 Debug, 81 Clone, 82 PartialEq, 83 Eq, 84 thiserror::Error, 85 miette::Diagnostic, 86 jacquard_derive::IntoStatic 87)] 88#[serde(tag = "error", content = "message")] 89#[serde(bound(deserialize = "'de: 'a"))] 90pub enum CreateAppPasswordError<'a> { 91 #[serde(rename = "AccountTakedown")] 92 AccountTakedown(std::option::Option<String>), 93} 94 95impl std::fmt::Display for CreateAppPasswordError<'_> { 96 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 97 match self { 98 Self::AccountTakedown(msg) => { 99 write!(f, "AccountTakedown")?; 100 if let Some(msg) = msg { 101 write!(f, ": {}", msg)?; 102 } 103 Ok(()) 104 } 105 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 106 } 107 } 108} 109 110///Response type for 111///com.atproto.server.createAppPassword 112pub struct CreateAppPasswordResponse; 113impl jacquard_common::xrpc::XrpcResp for CreateAppPasswordResponse { 114 const NSID: &'static str = "com.atproto.server.createAppPassword"; 115 const ENCODING: &'static str = "application/json"; 116 type Output<'de> = CreateAppPasswordOutput<'de>; 117 type Err<'de> = CreateAppPasswordError<'de>; 118} 119 120impl<'a> jacquard_common::xrpc::XrpcRequest for CreateAppPassword<'a> { 121 const NSID: &'static str = "com.atproto.server.createAppPassword"; 122 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 123 "application/json", 124 ); 125 type Response = CreateAppPasswordResponse; 126} 127 128///Endpoint type for 129///com.atproto.server.createAppPassword 130pub struct CreateAppPasswordRequest; 131impl jacquard_common::xrpc::XrpcEndpoint for CreateAppPasswordRequest { 132 const PATH: &'static str = "/xrpc/com.atproto.server.createAppPassword"; 133 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 134 "application/json", 135 ); 136 type Request<'de> = CreateAppPassword<'de>; 137 type Response = CreateAppPasswordResponse; 138}