A better Rust ATProto crate
at main 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 jacquard_common::xrpc::XrpcRequest 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<'de>( 60 body: &'de [u8], 61 ) -> Result<Box<Self>, jacquard_common::error::DecodeError> 62 where 63 Self: serde::Deserialize<'de>, 64 { 65 Ok( 66 Box::new(Self { 67 body: bytes::Bytes::copy_from_slice(body), 68 }), 69 ) 70 } 71} 72 73///Endpoint type for 74///com.atproto.repo.uploadBlob 75pub struct UploadBlobRequest; 76impl jacquard_common::xrpc::XrpcEndpoint for UploadBlobRequest { 77 const PATH: &'static str = "/xrpc/com.atproto.repo.uploadBlob"; 78 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 79 "*/*", 80 ); 81 type Request<'de> = UploadBlob; 82 type Response = UploadBlobResponse; 83}