A better Rust ATProto crate
at lifetimes 2.3 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: com.atproto.repo.uploadBlob 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 UploadBlob { 21 pub body: bytes::Bytes, 22} 23 24#[jacquard_derive::lexicon] 25#[derive( 26 serde::Serialize, 27 serde::Deserialize, 28 Debug, 29 Clone, 30 PartialEq, 31 Eq, 32 jacquard_derive::IntoStatic 33)] 34#[serde(rename_all = "camelCase")] 35pub struct UploadBlobOutput<'a> { 36 #[serde(borrow)] 37 pub blob: jacquard_common::types::blob::Blob<'a>, 38} 39 40///Response type for 41///com.atproto.repo.uploadBlob 42pub struct UploadBlobResponse; 43impl jacquard_common::xrpc::XrpcResp for UploadBlobResponse { 44 const NSID: &'static str = "com.atproto.repo.uploadBlob"; 45 const ENCODING: &'static str = "application/json"; 46 type Output<'de> = UploadBlobOutput<'de>; 47 type Err<'de> = jacquard_common::xrpc::GenericError<'de>; 48} 49 50impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for UploadBlob { 51 const NSID: &'static str = "com.atproto.repo.uploadBlob"; 52 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 53 "*/*", 54 ); 55 type Response = UploadBlobResponse; 56 fn encode_body(&self) -> Result<Vec<u8>, jacquard_common::xrpc::EncodeError> { 57 Ok(self.body.to_vec()) 58 } 59 fn decode_body( 60 body: &'de [u8], 61 ) -> Result<Box<Self>, jacquard_common::error::DecodeError> { 62 Ok( 63 Box::new(Self { 64 body: bytes::Bytes::copy_from_slice(body), 65 }), 66 ) 67 } 68} 69 70///Endpoint type for 71///com.atproto.repo.uploadBlob 72pub struct UploadBlobRequest; 73impl jacquard_common::xrpc::XrpcEndpoint for UploadBlobRequest { 74 const PATH: &'static str = "/xrpc/com.atproto.repo.uploadBlob"; 75 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 76 "*/*", 77 ); 78 type Request<'de> = UploadBlob; 79 type Response = UploadBlobResponse; 80}