A better Rust ATProto crate
at main 6.8 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: net.anisota.beta.game.collection 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8/// Beta version: Record representing a collected specimen in a player's collection 9#[jacquard_derive::lexicon] 10#[derive( 11 serde::Serialize, 12 serde::Deserialize, 13 Debug, 14 Clone, 15 PartialEq, 16 Eq, 17 jacquard_derive::IntoStatic, 18 bon::Builder 19)] 20#[serde(rename_all = "camelCase")] 21pub struct Collection<'a> { 22 /// When the specimen was first acquired 23 pub acquired_at: jacquard_common::types::string::Datetime, 24 /// Common name of the specimen 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 #[builder(into)] 27 #[serde(borrow)] 28 pub common_name: Option<jacquard_common::CowStr<'a>>, 29 /// When the record was created 30 pub created_at: jacquard_common::types::string::Datetime, 31 /// Taxonomic family 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 #[builder(into)] 34 #[serde(borrow)] 35 pub family: Option<jacquard_common::CowStr<'a>>, 36 /// Taxonomic genus 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[builder(into)] 39 #[serde(borrow)] 40 pub genus: Option<jacquard_common::CowStr<'a>>, 41 /// When the record was last modified 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 #[builder(into)] 44 pub last_modified: Option<jacquard_common::types::string::Datetime>, 45 /// When the specimen was last encountered 46 #[serde(skip_serializing_if = "std::option::Option::is_none")] 47 #[builder(into)] 48 pub last_seen: Option<jacquard_common::types::string::Datetime>, 49 /// URI of the game.log record that documents the acquisition of this specimen 50 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 #[builder(into)] 52 #[serde(borrow)] 53 pub log_record_uri: Option<jacquard_common::CowStr<'a>>, 54 /// Number of specimens collected 55 pub quantity: i64, 56 /// Rarity level of the specimen 57 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 #[builder(into)] 59 #[serde(borrow)] 60 pub rarity: Option<jacquard_common::CowStr<'a>>, 61 /// Scientific name of the specimen 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 63 #[builder(into)] 64 #[serde(borrow)] 65 pub scientific_name: Option<jacquard_common::CowStr<'a>>, 66 /// How the specimen was acquired 67 #[serde(skip_serializing_if = "std::option::Option::is_none")] 68 #[builder(into)] 69 #[serde(borrow)] 70 pub source: Option<jacquard_common::CowStr<'a>>, 71 #[serde(skip_serializing_if = "std::option::Option::is_none")] 72 #[builder(into)] 73 #[serde(borrow)] 74 pub source_details: Option< 75 crate::net_anisota::beta::game::collection::SourceDetails<'a>, 76 >, 77 /// Taxonomic species 78 #[serde(skip_serializing_if = "std::option::Option::is_none")] 79 #[builder(into)] 80 #[serde(borrow)] 81 pub species: Option<jacquard_common::CowStr<'a>>, 82 #[serde(skip_serializing_if = "std::option::Option::is_none")] 83 #[builder(into)] 84 #[serde(borrow)] 85 pub specimen_data: Option< 86 crate::net_anisota::beta::game::collection::SpecimenData<'a>, 87 >, 88 /// Unique identifier for the specimen 89 #[serde(borrow)] 90 #[builder(into)] 91 pub specimen_id: jacquard_common::CowStr<'a>, 92 /// Collection status of this specimen 93 #[serde(skip_serializing_if = "std::option::Option::is_none")] 94 #[builder(into)] 95 #[serde(borrow)] 96 pub status: Option<jacquard_common::CowStr<'a>>, 97} 98 99/// Typed wrapper for GetRecord response with this collection's record type. 100#[derive( 101 serde::Serialize, 102 serde::Deserialize, 103 Debug, 104 Clone, 105 PartialEq, 106 Eq, 107 jacquard_derive::IntoStatic 108)] 109#[serde(rename_all = "camelCase")] 110pub struct CollectionGetRecordOutput<'a> { 111 #[serde(skip_serializing_if = "std::option::Option::is_none")] 112 #[serde(borrow)] 113 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 114 #[serde(borrow)] 115 pub uri: jacquard_common::types::string::AtUri<'a>, 116 #[serde(borrow)] 117 pub value: Collection<'a>, 118} 119 120/// Marker type for deserializing records from this collection. 121pub struct CollectionRecord; 122impl jacquard_common::xrpc::XrpcResp for CollectionRecord { 123 const NSID: &'static str = "net.anisota.beta.game.collection"; 124 const ENCODING: &'static str = "application/json"; 125 type Output<'de> = CollectionGetRecordOutput<'de>; 126 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 127} 128 129impl jacquard_common::types::collection::Collection for Collection<'_> { 130 const NSID: &'static str = "net.anisota.beta.game.collection"; 131 type Record = CollectionRecord; 132} 133 134impl From<CollectionGetRecordOutput<'_>> for Collection<'_> { 135 fn from(output: CollectionGetRecordOutput<'_>) -> Self { 136 use jacquard_common::IntoStatic; 137 output.value.into_static() 138 } 139} 140 141/// Additional details about how the specimen was acquired 142#[jacquard_derive::lexicon] 143#[derive( 144 serde::Serialize, 145 serde::Deserialize, 146 Debug, 147 Clone, 148 PartialEq, 149 Eq, 150 jacquard_derive::IntoStatic, 151 Default 152)] 153#[serde(rename_all = "camelCase")] 154pub struct SourceDetails<'a> { 155 /// Number of attempts before successful capture 156 #[serde(skip_serializing_if = "std::option::Option::is_none")] 157 pub attempts: std::option::Option<i64>, 158 /// Probability used when catching this specimen (decimal string, e.g. '0.75') 159 #[serde(skip_serializing_if = "std::option::Option::is_none")] 160 #[serde(borrow)] 161 pub catch_probability: std::option::Option<jacquard_common::CowStr<'a>>, 162 /// URI of the game card that provided this specimen 163 #[serde(skip_serializing_if = "std::option::Option::is_none")] 164 #[serde(borrow)] 165 pub game_card_uri: std::option::Option<jacquard_common::CowStr<'a>>, 166 /// Location where specimen was found or observed 167 #[serde(skip_serializing_if = "std::option::Option::is_none")] 168 #[serde(borrow)] 169 pub location: std::option::Option<jacquard_common::CowStr<'a>>, 170} 171 172/// Complete specimen information 173#[jacquard_derive::lexicon] 174#[derive( 175 serde::Serialize, 176 serde::Deserialize, 177 Debug, 178 Clone, 179 PartialEq, 180 Eq, 181 jacquard_derive::IntoStatic, 182 Default 183)] 184#[serde(rename_all = "camelCase")] 185pub struct SpecimenData<'a> { 186 /// Scientific authorship of the species 187 #[serde(skip_serializing_if = "std::option::Option::is_none")] 188 #[serde(borrow)] 189 pub authorship: std::option::Option<jacquard_common::CowStr<'a>>, 190 /// Detailed description of the specimen 191 #[serde(skip_serializing_if = "std::option::Option::is_none")] 192 #[serde(borrow)] 193 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 194}