A better Rust ATProto crate
at lifetimes 4.6 kB view raw
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)] 87#[serde(tag = "error", content = "message")] 88#[serde(bound(deserialize = "'de: 'a"))] 89pub enum CreateAppPasswordError<'a> { 90 #[serde(rename = "AccountTakedown")] 91 AccountTakedown(std::option::Option<String>), 92} 93 94impl std::fmt::Display for CreateAppPasswordError<'_> { 95 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 96 match self { 97 Self::AccountTakedown(msg) => { 98 write!(f, "AccountTakedown")?; 99 if let Some(msg) = msg { 100 write!(f, ": {}", msg)?; 101 } 102 Ok(()) 103 } 104 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 105 } 106 } 107} 108 109impl jacquard_common::IntoStatic for CreateAppPasswordError<'_> { 110 type Output = CreateAppPasswordError<'static>; 111 fn into_static(self) -> Self::Output { 112 match self { 113 CreateAppPasswordError::AccountTakedown(v) => { 114 CreateAppPasswordError::AccountTakedown(v.into_static()) 115 } 116 CreateAppPasswordError::Unknown(v) => { 117 CreateAppPasswordError::Unknown(v.into_static()) 118 } 119 } 120 } 121} 122 123///Response type for 124///com.atproto.server.createAppPassword 125pub struct CreateAppPasswordResponse; 126impl jacquard_common::xrpc::XrpcResp for CreateAppPasswordResponse { 127 const NSID: &'static str = "com.atproto.server.createAppPassword"; 128 const ENCODING: &'static str = "application/json"; 129 type Output<'de> = CreateAppPasswordOutput<'de>; 130 type Err<'de> = CreateAppPasswordError<'de>; 131} 132 133impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for CreateAppPassword<'de> { 134 const NSID: &'static str = "com.atproto.server.createAppPassword"; 135 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 136 "application/json", 137 ); 138 type Response = CreateAppPasswordResponse; 139} 140 141///Endpoint type for 142///com.atproto.server.createAppPassword 143pub struct CreateAppPasswordRequest; 144impl jacquard_common::xrpc::XrpcEndpoint for CreateAppPasswordRequest { 145 const PATH: &'static str = "/xrpc/com.atproto.server.createAppPassword"; 146 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 147 "application/json", 148 ); 149 type Request<'de> = CreateAppPassword<'de>; 150 type Response = CreateAppPasswordResponse; 151}