A better Rust ATProto crate

codegen works, generates reasonable looking source

Orual 7daab148 85ef9905

Changed files
+3407 -725
crates
jacquard-api
src
app_bsky
actor
bookmark
embed
feed
graph
labeler
notification
richtext
unspecced
video
chat_bsky
com_atproto
admin
identity
label
lexicon
moderation
repo
server
sync
temp
tools_ozone
jacquard-lexicon
+1
Cargo.lock
··· 820 820 name = "jacquard-lexicon" 821 821 version = "0.1.0" 822 822 dependencies = [ 823 + "clap", 823 824 "heck 0.5.0", 824 825 "itertools", 825 826 "jacquard-common",
+6 -1
crates/jacquard-api/src/app_bsky.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod actor; 2 7 pub mod bookmark; 3 8 pub mod embed; ··· 7 12 pub mod notification; 8 13 pub mod richtext; 9 14 pub mod unspecced; 10 - pub mod video; 15 + pub mod video;
+109 -29
crates/jacquard-api/src/app_bsky/actor.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_preferences; 7 + pub mod get_profile; 8 + pub mod get_profiles; 9 + pub mod get_suggestions; 10 + pub mod profile; 11 + pub mod put_preferences; 12 + pub mod search_actors; 13 + pub mod search_actors_typeahead; 14 + pub mod status; 15 + 1 16 #[jacquard_derive::lexicon] 2 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 18 #[serde(rename_all = "camelCase")] 4 19 pub struct AdultContentPref<'a> { 5 20 pub enabled: bool, 6 21 } 22 + 7 23 ///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress. 8 24 #[jacquard_derive::lexicon] 9 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 12 28 #[serde(borrow)] 13 29 pub guide: jacquard_common::CowStr<'a>, 14 30 } 31 + 15 32 ///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this. 16 33 #[jacquard_derive::lexicon] 17 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 20 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 21 38 #[serde(borrow)] 22 39 pub active_progress_guide: std::option::Option< 23 - jacquard_common::types::value::Data<'a>, 40 + crate::app_bsky::actor::BskyAppProgressGuide<'a>, 24 41 >, 42 + ///Storage for NUXs the user has encountered. 25 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 44 #[serde(borrow)] 27 45 pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>, 46 + ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. 28 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 48 #[serde(borrow)] 30 49 pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 31 50 } 51 + 32 52 #[jacquard_derive::lexicon] 33 53 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 54 #[serde(rename_all = "camelCase")] 35 55 pub struct ContentLabelPref<'a> { 36 56 #[serde(borrow)] 37 57 pub label: jacquard_common::CowStr<'a>, 58 + ///Which labeler does this preference apply to? If undefined, applies globally. 38 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 39 60 #[serde(borrow)] 40 61 pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>, 41 62 #[serde(borrow)] 42 63 pub visibility: jacquard_common::CowStr<'a>, 43 64 } 65 + 44 66 #[jacquard_derive::lexicon] 45 67 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 46 68 #[serde(rename_all = "camelCase")] 47 69 pub struct FeedViewPref<'a> { 70 + ///The URI of the feed, or an identifier which describes the feed. 48 71 #[serde(borrow)] 49 72 pub feed: jacquard_common::CowStr<'a>, 73 + ///Hide quote posts in the feed. 50 74 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 75 pub hide_quote_posts: std::option::Option<bool>, 76 + ///Hide replies in the feed. 52 77 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 78 pub hide_replies: std::option::Option<bool>, 79 + ///Hide replies in the feed if they do not have this number of likes. 54 80 #[serde(skip_serializing_if = "std::option::Option::is_none")] 55 81 pub hide_replies_by_like_count: std::option::Option<i64>, 82 + ///Hide replies in the feed if they are not by followed users. 56 83 #[serde(skip_serializing_if = "std::option::Option::is_none")] 57 84 pub hide_replies_by_unfollowed: std::option::Option<bool>, 85 + ///Hide reposts in the feed. 58 86 #[serde(skip_serializing_if = "std::option::Option::is_none")] 59 87 pub hide_reposts: std::option::Option<bool>, 60 88 } 89 + 61 90 #[jacquard_derive::lexicon] 62 91 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 63 92 #[serde(rename_all = "camelCase")] 64 93 pub struct HiddenPostsPref<'a> { 94 + ///A list of URIs of posts the account owner has hidden. 65 95 #[serde(borrow)] 66 96 pub items: Vec<jacquard_common::types::string::AtUri<'a>>, 67 97 } 98 + 68 99 #[jacquard_derive::lexicon] 69 100 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 70 101 #[serde(rename_all = "camelCase")] 71 102 pub struct InterestsPref<'a> { 103 + ///A list of tags which describe the account owner's interests gathered during onboarding. 72 104 #[serde(borrow)] 73 105 pub tags: Vec<jacquard_common::CowStr<'a>>, 74 106 } 107 + 75 108 ///The subject's followers whom you also follow 76 109 #[jacquard_derive::lexicon] 77 110 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 79 112 pub struct KnownFollowers<'a> { 80 113 pub count: i64, 81 114 #[serde(borrow)] 82 - pub followers: Vec<jacquard_common::types::value::Data<'a>>, 115 + pub followers: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>, 83 116 } 117 + 84 118 #[jacquard_derive::lexicon] 85 119 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 86 120 #[serde(rename_all = "camelCase")] ··· 88 122 #[serde(borrow)] 89 123 pub did: jacquard_common::types::string::Did<'a>, 90 124 } 125 + 91 126 #[jacquard_derive::lexicon] 92 127 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 93 128 #[serde(rename_all = "camelCase")] 94 129 pub struct LabelersPref<'a> { 95 130 #[serde(borrow)] 96 - pub labelers: Vec<jacquard_common::types::value::Data<'a>>, 131 + pub labelers: Vec<crate::app_bsky::actor::LabelerPrefItem<'a>>, 97 132 } 133 + 98 134 ///A word that the account owner has muted. 99 135 #[jacquard_derive::lexicon] 100 136 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 101 137 #[serde(rename_all = "camelCase")] 102 138 pub struct MutedWord<'a> { 139 + ///Groups of users to apply the muted word to. If undefined, applies to all users. 103 140 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 141 #[serde(borrow)] 105 142 pub actor_target: std::option::Option<jacquard_common::CowStr<'a>>, 143 + ///The date and time at which the muted word will expire and no longer be applied. 106 144 #[serde(skip_serializing_if = "std::option::Option::is_none")] 107 145 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 108 146 #[serde(skip_serializing_if = "std::option::Option::is_none")] 109 147 #[serde(borrow)] 110 148 pub id: std::option::Option<jacquard_common::CowStr<'a>>, 149 + ///The intended targets of the muted word. 111 150 #[serde(borrow)] 112 151 pub targets: Vec<crate::app_bsky::actor::MutedWordTarget<'a>>, 152 + ///The muted word itself. 113 153 #[serde(borrow)] 114 154 pub value: jacquard_common::CowStr<'a>, 115 155 } 156 + 116 157 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 117 158 pub enum MutedWordTarget<'a> { 118 159 Content, 119 160 Tag, 120 161 Other(jacquard_common::CowStr<'a>), 121 162 } 163 + 122 164 impl<'a> MutedWordTarget<'a> { 123 165 pub fn as_str(&self) -> &str { 124 166 match self { ··· 128 170 } 129 171 } 130 172 } 173 + 131 174 impl<'a> From<&'a str> for MutedWordTarget<'a> { 132 175 fn from(s: &'a str) -> Self { 133 176 match s { ··· 137 180 } 138 181 } 139 182 } 183 + 140 184 impl<'a> From<String> for MutedWordTarget<'a> { 141 185 fn from(s: String) -> Self { 142 186 match s.as_str() { ··· 146 190 } 147 191 } 148 192 } 193 + 149 194 impl<'a> AsRef<str> for MutedWordTarget<'a> { 150 195 fn as_ref(&self) -> &str { 151 196 self.as_str() 152 197 } 153 198 } 199 + 154 200 impl<'a> serde::Serialize for MutedWordTarget<'a> { 155 201 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 156 202 where ··· 159 205 serializer.serialize_str(self.as_str()) 160 206 } 161 207 } 208 + 162 209 impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a> 163 210 where 164 211 'de: 'a, ··· 171 218 Ok(Self::from(s)) 172 219 } 173 220 } 221 + 174 222 #[jacquard_derive::lexicon] 175 223 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 176 224 #[serde(rename_all = "camelCase")] 177 225 pub struct MutedWordsPref<'a> { 226 + ///A list of words the account owner has muted. 178 227 #[serde(borrow)] 179 228 pub items: Vec<crate::app_bsky::actor::MutedWord<'a>>, 180 229 } 230 + 181 231 ///A new user experiences (NUX) storage object 182 232 #[jacquard_derive::lexicon] 183 233 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 184 234 #[serde(rename_all = "camelCase")] 185 235 pub struct Nux<'a> { 186 236 pub completed: bool, 237 + ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. 187 238 #[serde(skip_serializing_if = "std::option::Option::is_none")] 188 239 #[serde(borrow)] 189 240 pub data: std::option::Option<jacquard_common::CowStr<'a>>, 241 + ///The date and time at which the NUX will expire and should be considered completed. 190 242 #[serde(skip_serializing_if = "std::option::Option::is_none")] 191 243 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 192 244 #[serde(borrow)] 193 245 pub id: jacquard_common::CowStr<'a>, 194 246 } 247 + 195 248 #[jacquard_derive::lexicon] 196 249 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 197 250 #[serde(rename_all = "camelCase")] 198 251 pub struct PersonalDetailsPref<'a> { 252 + ///The birth date of account owner. 199 253 #[serde(skip_serializing_if = "std::option::Option::is_none")] 200 254 pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>, 201 255 } 256 + 202 257 ///Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly. 203 258 #[jacquard_derive::lexicon] 204 259 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 205 260 #[serde(rename_all = "camelCase")] 206 261 pub struct PostInteractionSettingsPref<'a> { 262 + ///Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed. 207 263 #[serde(skip_serializing_if = "std::option::Option::is_none")] 208 264 #[serde(borrow)] 209 265 pub postgate_embedding_rules: std::option::Option< 210 266 Vec<jacquard_common::types::value::Data<'a>>, 211 267 >, 268 + ///Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply. 212 269 #[serde(skip_serializing_if = "std::option::Option::is_none")] 213 270 #[serde(borrow)] 214 271 pub threadgate_allow_rules: std::option::Option< 215 272 Vec<jacquard_common::types::value::Data<'a>>, 216 273 >, 217 274 } 275 + 218 276 pub type Preferences<'a> = Vec<jacquard_common::types::value::Data<'a>>; 219 277 #[jacquard_derive::lexicon] 220 278 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 223 281 #[serde(skip_serializing_if = "std::option::Option::is_none")] 224 282 #[serde(borrow)] 225 283 pub activity_subscription: std::option::Option< 226 - jacquard_common::types::value::Data<'a>, 284 + crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>, 227 285 >, 228 286 #[serde(skip_serializing_if = "std::option::Option::is_none")] 229 287 #[serde(borrow)] 230 - pub chat: std::option::Option<jacquard_common::types::value::Data<'a>>, 288 + pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>, 231 289 #[serde(skip_serializing_if = "std::option::Option::is_none")] 232 290 pub feedgens: std::option::Option<i64>, 233 291 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 237 295 #[serde(skip_serializing_if = "std::option::Option::is_none")] 238 296 pub starter_packs: std::option::Option<i64>, 239 297 } 298 + 240 299 #[jacquard_derive::lexicon] 241 300 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 242 301 #[serde(rename_all = "camelCase")] ··· 244 303 #[serde(borrow)] 245 304 pub allow_subscriptions: jacquard_common::CowStr<'a>, 246 305 } 306 + 247 307 #[jacquard_derive::lexicon] 248 308 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 249 309 #[serde(rename_all = "camelCase")] ··· 251 311 #[serde(borrow)] 252 312 pub allow_incoming: jacquard_common::CowStr<'a>, 253 313 } 314 + 254 315 #[jacquard_derive::lexicon] 255 316 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 256 317 #[serde(rename_all = "camelCase")] 257 318 pub struct ProfileView<'a> { 258 319 #[serde(skip_serializing_if = "std::option::Option::is_none")] 259 320 #[serde(borrow)] 260 - pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>, 321 + pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 261 322 #[serde(skip_serializing_if = "std::option::Option::is_none")] 262 323 #[serde(borrow)] 263 324 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, ··· 283 344 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 284 345 #[serde(skip_serializing_if = "std::option::Option::is_none")] 285 346 #[serde(borrow)] 286 - pub status: std::option::Option<jacquard_common::types::value::Data<'a>>, 347 + pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 287 348 #[serde(skip_serializing_if = "std::option::Option::is_none")] 288 349 #[serde(borrow)] 289 - pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>, 350 + pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 290 351 #[serde(skip_serializing_if = "std::option::Option::is_none")] 291 352 #[serde(borrow)] 292 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 353 + pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 293 354 } 355 + 294 356 #[jacquard_derive::lexicon] 295 357 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 296 358 #[serde(rename_all = "camelCase")] 297 359 pub struct ProfileViewBasic<'a> { 298 360 #[serde(skip_serializing_if = "std::option::Option::is_none")] 299 361 #[serde(borrow)] 300 - pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>, 362 + pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 301 363 #[serde(skip_serializing_if = "std::option::Option::is_none")] 302 364 #[serde(borrow)] 303 365 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, ··· 318 380 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 319 381 #[serde(skip_serializing_if = "std::option::Option::is_none")] 320 382 #[serde(borrow)] 321 - pub status: std::option::Option<jacquard_common::types::value::Data<'a>>, 383 + pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 322 384 #[serde(skip_serializing_if = "std::option::Option::is_none")] 323 385 #[serde(borrow)] 324 - pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>, 386 + pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 325 387 #[serde(skip_serializing_if = "std::option::Option::is_none")] 326 388 #[serde(borrow)] 327 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 389 + pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 328 390 } 391 + 329 392 #[jacquard_derive::lexicon] 330 393 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 331 394 #[serde(rename_all = "camelCase")] 332 395 pub struct ProfileViewDetailed<'a> { 333 396 #[serde(skip_serializing_if = "std::option::Option::is_none")] 334 397 #[serde(borrow)] 335 - pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>, 398 + pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 336 399 #[serde(skip_serializing_if = "std::option::Option::is_none")] 337 400 #[serde(borrow)] 338 401 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, ··· 377 440 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 378 441 #[serde(skip_serializing_if = "std::option::Option::is_none")] 379 442 #[serde(borrow)] 380 - pub status: std::option::Option<jacquard_common::types::value::Data<'a>>, 443 + pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 381 444 #[serde(skip_serializing_if = "std::option::Option::is_none")] 382 445 #[serde(borrow)] 383 - pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>, 446 + pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 384 447 #[serde(skip_serializing_if = "std::option::Option::is_none")] 385 448 #[serde(borrow)] 386 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 449 + pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 387 450 #[serde(skip_serializing_if = "std::option::Option::is_none")] 388 451 #[serde(borrow)] 389 452 pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>, 390 453 } 454 + 391 455 #[jacquard_derive::lexicon] 392 456 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 393 457 #[serde(rename_all = "camelCase")] ··· 400 464 #[serde(borrow)] 401 465 pub value: jacquard_common::CowStr<'a>, 402 466 } 467 + 403 468 #[jacquard_derive::lexicon] 404 469 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 405 470 #[serde(rename_all = "camelCase")] ··· 411 476 #[serde(skip_serializing_if = "std::option::Option::is_none")] 412 477 pub timeline_index: std::option::Option<i64>, 413 478 } 479 + 414 480 #[jacquard_derive::lexicon] 415 481 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 416 482 #[serde(rename_all = "camelCase")] ··· 418 484 #[serde(borrow)] 419 485 pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>, 420 486 } 487 + 421 488 #[jacquard_derive::lexicon] 422 489 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 423 490 #[serde(rename_all = "camelCase")] 424 491 pub struct StatusView<'a> { 492 + ///An optional embed associated with the status. 425 493 #[serde(skip_serializing_if = "std::option::Option::is_none")] 426 494 #[serde(borrow)] 427 495 pub embed: std::option::Option<StatusViewRecordEmbed<'a>>, 496 + ///The date when this status will expire. The application might choose to no longer return the status after expiration. 428 497 #[serde(skip_serializing_if = "std::option::Option::is_none")] 429 498 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 499 + ///True if the status is not expired, false if it is expired. Only present if expiration was set. 430 500 #[serde(skip_serializing_if = "std::option::Option::is_none")] 431 501 pub is_active: std::option::Option<bool>, 432 502 #[serde(borrow)] 433 503 pub record: jacquard_common::types::value::Data<'a>, 504 + ///The status for the account. 434 505 #[serde(borrow)] 435 506 pub status: jacquard_common::CowStr<'a>, 436 507 } 508 + 437 509 #[jacquard_derive::open_union] 438 510 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 439 511 #[serde(tag = "$type")] ··· 442 514 #[serde(rename = "app.bsky.embed.external#view")] 443 515 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>), 444 516 } 517 + 445 518 #[jacquard_derive::lexicon] 446 519 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 447 520 #[serde(rename_all = "camelCase")] 448 521 pub struct ThreadViewPref<'a> { 522 + ///Show followed users at the top of all replies. 449 523 #[serde(skip_serializing_if = "std::option::Option::is_none")] 450 524 pub prioritize_followed_users: std::option::Option<bool>, 525 + ///Sorting mode for threads. 451 526 #[serde(skip_serializing_if = "std::option::Option::is_none")] 452 527 #[serde(borrow)] 453 528 pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 454 529 } 530 + 455 531 ///Preferences for how verified accounts appear in the app. 456 532 #[jacquard_derive::lexicon] 457 533 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 458 534 #[serde(rename_all = "camelCase")] 459 535 pub struct VerificationPrefs<'a> { 536 + ///Hide the blue check badges for verified accounts and trusted verifiers. 460 537 #[serde(skip_serializing_if = "std::option::Option::is_none")] 461 538 pub hide_badges: std::option::Option<bool>, 462 539 } 540 + 463 541 ///Represents the verification information about the user this object is attached to. 464 542 #[jacquard_derive::lexicon] 465 543 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 466 544 #[serde(rename_all = "camelCase")] 467 545 pub struct VerificationState<'a> { 546 + ///The user's status as a trusted verifier. 468 547 #[serde(borrow)] 469 548 pub trusted_verifier_status: jacquard_common::CowStr<'a>, 549 + ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included. 470 550 #[serde(borrow)] 471 - pub verifications: Vec<jacquard_common::types::value::Data<'a>>, 551 + pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>, 552 + ///The user's status as a verified account. 472 553 #[serde(borrow)] 473 554 pub verified_status: jacquard_common::CowStr<'a>, 474 555 } 556 + 475 557 ///An individual verification for an associated subject. 476 558 #[jacquard_derive::lexicon] 477 559 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 478 560 #[serde(rename_all = "camelCase")] 479 561 pub struct VerificationView<'a> { 562 + ///Timestamp when the verification was created. 480 563 pub created_at: jacquard_common::types::string::Datetime, 564 + ///True if the verification passes validation, otherwise false. 481 565 pub is_valid: bool, 566 + ///The user who issued this verification. 482 567 #[serde(borrow)] 483 568 pub issuer: jacquard_common::types::string::Did<'a>, 569 + ///The AT-URI of the verification record. 484 570 #[serde(borrow)] 485 571 pub uri: jacquard_common::types::string::AtUri<'a>, 486 572 } 573 + 487 574 ///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. 488 575 #[jacquard_derive::lexicon] 489 576 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 490 577 #[serde(rename_all = "camelCase")] 491 578 pub struct ViewerState<'a> { 579 + ///This property is present only in selected cases, as an optimization. 492 580 #[serde(skip_serializing_if = "std::option::Option::is_none")] 493 581 #[serde(borrow)] 494 582 pub activity_subscription: std::option::Option< ··· 508 596 #[serde(skip_serializing_if = "std::option::Option::is_none")] 509 597 #[serde(borrow)] 510 598 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 599 + ///This property is present only in selected cases, as an optimization. 511 600 #[serde(skip_serializing_if = "std::option::Option::is_none")] 512 601 #[serde(borrow)] 513 - pub known_followers: std::option::Option<jacquard_common::types::value::Data<'a>>, 602 + pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>, 514 603 #[serde(skip_serializing_if = "std::option::Option::is_none")] 515 604 pub muted: std::option::Option<bool>, 516 605 #[serde(skip_serializing_if = "std::option::Option::is_none")] 517 606 #[serde(borrow)] 518 607 pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 519 - } 520 - pub mod get_preferences; 521 - pub mod get_profile; 522 - pub mod get_profiles; 523 - pub mod get_suggestions; 524 - pub mod profile; 525 - pub mod put_preferences; 526 - pub mod search_actors; 527 - pub mod search_actors_typeahead; 528 - pub mod status; 608 + }
+6 -1
crates/jacquard-api/src/app_bsky/actor/get_preferences.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPreferencesParams {} ··· 7 12 pub struct GetPreferencesOutput<'a> { 8 13 #[serde(borrow)] 9 14 pub preferences: crate::app_bsky::actor::Preferences<'a>, 10 - } 15 + }
+7 -1
crates/jacquard-api/src/app_bsky/actor/get_profile.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetProfileParams<'a> { 4 9 #[serde(borrow)] 5 10 pub actor: jacquard_common::types::ident::AtIdentifier<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 #[serde(flatten)] 12 18 #[serde(borrow)] 13 19 pub value: crate::app_bsky::actor::ProfileViewDetailed<'a>, 14 - } 20 + }
+7 -1
crates/jacquard-api/src/app_bsky/actor/get_profiles.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetProfilesParams<'a> { 4 9 #[serde(borrow)] 5 10 pub actors: Vec<jacquard_common::types::ident::AtIdentifier<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetProfilesOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub profiles: Vec<crate::app_bsky::actor::ProfileViewDetailed<'a>>, 13 - } 19 + }
+8 -1
crates/jacquard-api/src/app_bsky/actor/get_suggestions.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestionsParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 23 #[serde(borrow)] 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 25 + ///Snowflake for this recommendation, use when submitting recommendation events. 19 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 27 pub rec_id: std::option::Option<i64>, 21 - } 28 + }
+12 -1
crates/jacquard-api/src/app_bsky/actor/profile.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A declaration of a Bluesky account profile. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Profile<'a> { 11 + ///Small image to be displayed next to posts from account. AKA, 'profile picture' 6 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 13 #[serde(borrow)] 8 14 pub avatar: std::option::Option<jacquard_common::types::blob::Blob<'a>>, 15 + ///Larger horizontal image to display behind profile view. 9 16 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 17 #[serde(borrow)] 11 18 pub banner: std::option::Option<jacquard_common::types::blob::Blob<'a>>, 12 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 20 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 21 + ///Free-form profile description text. 14 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 23 #[serde(borrow)] 16 24 pub description: std::option::Option<jacquard_common::CowStr<'a>>, ··· 22 30 pub joined_via_starter_pack: std::option::Option< 23 31 crate::com_atproto::repo::strong_ref::StrongRef<'a>, 24 32 >, 33 + ///Self-label values, specific to the Bluesky application, on the overall account. 25 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 35 #[serde(borrow)] 27 36 pub labels: std::option::Option<ProfileRecordLabels<'a>>, ··· 30 39 pub pinned_post: std::option::Option< 31 40 crate::com_atproto::repo::strong_ref::StrongRef<'a>, 32 41 >, 42 + ///Free-form pronouns text. 33 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 44 #[serde(borrow)] 35 45 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, ··· 37 47 #[serde(borrow)] 38 48 pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>, 39 49 } 50 + 40 51 #[jacquard_derive::open_union] 41 52 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 53 #[serde(tag = "$type")] ··· 44 55 pub enum ProfileRecordLabels<'a> { 45 56 #[serde(rename = "com.atproto.label.defs#selfLabels")] 46 57 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>), 47 - } 58 + }
+6 -1
crates/jacquard-api/src/app_bsky/actor/put_preferences.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct PutPreferencesInput<'a> { 5 10 #[serde(borrow)] 6 11 pub preferences: crate::app_bsky::actor::Preferences<'a>, 7 - } 12 + }
+7 -1
crates/jacquard-api/src/app_bsky/actor/search_actors.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchActorsParams<'a> { ··· 13 18 #[serde(borrow)] 14 19 pub term: std::option::Option<jacquard_common::CowStr<'a>>, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 22 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 29 #[serde(borrow)] 24 30 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 25 - } 31 + }
+7 -1
crates/jacquard-api/src/app_bsky/actor/search_actors_typeahead.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchActorsTypeaheadParams<'a> { ··· 10 15 #[serde(borrow)] 11 16 pub term: std::option::Option<jacquard_common::CowStr<'a>>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] 16 22 pub struct SearchActorsTypeaheadOutput<'a> { 17 23 #[serde(borrow)] 18 24 pub actors: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>, 19 - } 25 + }
+10 -1
crates/jacquard-api/src/app_bsky/actor/status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A declaration of a Bluesky account status. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Status<'a> { 6 11 pub created_at: jacquard_common::types::string::Datetime, 12 + ///The duration of the status in minutes. Applications can choose to impose minimum and maximum limits. 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 pub duration_minutes: std::option::Option<i64>, 15 + ///An optional embed associated with the status. 9 16 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 17 #[serde(borrow)] 11 18 pub embed: std::option::Option<StatusRecordEmbed<'a>>, 19 + ///The status for the account. 12 20 #[serde(borrow)] 13 21 pub status: jacquard_common::CowStr<'a>, 14 22 } 23 + 15 24 #[jacquard_derive::open_union] 16 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 26 #[serde(tag = "$type")] ··· 19 28 pub enum StatusRecordEmbed<'a> { 20 29 #[serde(rename = "app.bsky.embed.external")] 21 30 External(Box<crate::app_bsky::embed::external::ExternalRecord<'a>>), 22 - } 31 + }
+14 -4
crates/jacquard-api/src/app_bsky/bookmark.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod create_bookmark; 7 + pub mod delete_bookmark; 8 + pub mod get_bookmarks; 9 + 1 10 ///Object used to store bookmark data in stash. 2 11 #[jacquard_derive::lexicon] 3 12 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 13 #[serde(rename_all = "camelCase")] 5 14 pub struct Bookmark<'a> { 15 + ///A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported. 6 16 #[serde(borrow)] 7 17 pub subject: crate::com_atproto::repo::strong_ref::StrongRef<'a>, 8 18 } 19 + 9 20 #[jacquard_derive::lexicon] 10 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 22 #[serde(rename_all = "camelCase")] ··· 14 25 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 15 26 #[serde(borrow)] 16 27 pub item: BookmarkViewRecordItem<'a>, 28 + ///A strong ref to the bookmarked record. 17 29 #[serde(borrow)] 18 30 pub subject: crate::com_atproto::repo::strong_ref::StrongRef<'a>, 19 31 } 32 + 20 33 #[jacquard_derive::open_union] 21 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 35 #[serde(tag = "$type")] ··· 28 41 DefsNotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 29 42 #[serde(rename = "app.bsky.feed.defs#postView")] 30 43 DefsPostView(Box<crate::app_bsky::feed::PostView<'a>>), 31 - } 32 - pub mod create_bookmark; 33 - pub mod delete_bookmark; 34 - pub mod get_bookmarks; 44 + }
+9 -2
crates/jacquard-api/src/app_bsky/bookmark/create_bookmark.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub uri: jacquard_common::types::string::AtUri<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::open_union] 11 17 #[derive( 12 18 serde::Serialize, ··· 25 31 #[serde(rename = "UnsupportedCollection")] 26 32 UnsupportedCollection(std::option::Option<String>), 27 33 } 34 + 28 35 impl std::fmt::Display for CreateBookmarkError<'_> { 29 36 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 30 37 match self { ··· 35 42 } 36 43 Ok(()) 37 44 } 38 - Self::Unknown(_) => write!(f, "Unknown error"), 45 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 39 46 } 40 47 } 41 - } 48 + }
+9 -2
crates/jacquard-api/src/app_bsky/bookmark/delete_bookmark.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub uri: jacquard_common::types::string::AtUri<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::open_union] 9 15 #[derive( 10 16 serde::Serialize, ··· 23 29 #[serde(rename = "UnsupportedCollection")] 24 30 UnsupportedCollection(std::option::Option<String>), 25 31 } 32 + 26 33 impl std::fmt::Display for DeleteBookmarkError<'_> { 27 34 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 28 35 match self { ··· 33 40 } 34 41 Ok(()) 35 42 } 36 - Self::Unknown(_) => write!(f, "Unknown error"), 43 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 37 44 } 38 45 } 39 - } 46 + }
+7 -1
crates/jacquard-api/src/app_bsky/bookmark/get_bookmarks.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetBookmarksParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 23 #[serde(borrow)] 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 - } 25 + }
+12 -6
crates/jacquard-api/src/app_bsky/embed.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod external; 7 + pub mod images; 8 + pub mod record; 9 + pub mod record_with_media; 10 + pub mod video; 11 + 1 12 ///width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. 2 13 #[jacquard_derive::lexicon] 3 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 5 16 pub struct AspectRatio<'a> { 6 17 pub height: i64, 7 18 pub width: i64, 8 - } 9 - pub mod external; 10 - pub mod images; 11 - pub mod record; 12 - pub mod record_with_media; 13 - pub mod video; 19 + }
+11 -3
crates/jacquard-api/src/app_bsky/embed/external.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 12 17 #[serde(borrow)] 13 18 pub uri: jacquard_common::types::string::Uri<'a>, 14 19 } 20 + 15 21 ///A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post). 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] 19 25 pub struct ExternalRecord<'a> { 20 26 #[serde(borrow)] 21 - pub external: jacquard_common::types::value::Data<'a>, 27 + pub external: crate::app_bsky::embed::external::External<'a>, 22 28 } 29 + 23 30 #[jacquard_derive::lexicon] 24 31 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 32 #[serde(rename_all = "camelCase")] 26 33 pub struct View<'a> { 27 34 #[serde(borrow)] 28 - pub external: jacquard_common::types::value::Data<'a>, 35 + pub external: crate::app_bsky::embed::external::ViewExternal<'a>, 29 36 } 37 + 30 38 #[jacquard_derive::lexicon] 31 39 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 32 40 #[serde(rename_all = "camelCase")] ··· 40 48 pub title: jacquard_common::CowStr<'a>, 41 49 #[serde(borrow)] 42 50 pub uri: jacquard_common::types::string::Uri<'a>, 43 - } 51 + }
+15 -3
crates/jacquard-api/src/app_bsky/embed/images.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct Image<'a> { 10 + ///Alt text description of the image, for accessibility. 5 11 #[serde(borrow)] 6 12 pub alt: jacquard_common::CowStr<'a>, 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 10 16 #[serde(borrow)] 11 17 pub image: jacquard_common::types::blob::Blob<'a>, 12 18 } 19 + 13 20 #[jacquard_derive::lexicon] 14 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 22 #[serde(rename_all = "camelCase")] 16 23 pub struct Images<'a> { 17 24 #[serde(borrow)] 18 - pub images: Vec<jacquard_common::types::value::Data<'a>>, 25 + pub images: Vec<crate::app_bsky::embed::images::Image<'a>>, 19 26 } 27 + 20 28 #[jacquard_derive::lexicon] 21 29 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 30 #[serde(rename_all = "camelCase")] 23 31 pub struct View<'a> { 24 32 #[serde(borrow)] 25 - pub images: Vec<jacquard_common::types::value::Data<'a>>, 33 + pub images: Vec<crate::app_bsky::embed::images::ViewImage<'a>>, 26 34 } 35 + 27 36 #[jacquard_derive::lexicon] 28 37 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 38 #[serde(rename_all = "camelCase")] 30 39 pub struct ViewImage<'a> { 40 + ///Alt text description of the image, for accessibility. 31 41 #[serde(borrow)] 32 42 pub alt: jacquard_common::CowStr<'a>, 33 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 44 #[serde(borrow)] 35 45 pub aspect_ratio: std::option::Option<crate::app_bsky::embed::AspectRatio<'a>>, 46 + ///Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View. 36 47 #[serde(borrow)] 37 48 pub fullsize: jacquard_common::types::string::Uri<'a>, 49 + ///Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View. 38 50 #[serde(borrow)] 39 51 pub thumb: jacquard_common::types::string::Uri<'a>, 40 - } 52 + }
+13 -1
crates/jacquard-api/src/app_bsky/embed/record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub record: crate::com_atproto::repo::strong_ref::StrongRef<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] ··· 12 18 #[serde(borrow)] 13 19 pub record: ViewRecordRecord<'a>, 14 20 } 21 + 15 22 #[jacquard_derive::open_union] 16 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 24 #[serde(tag = "$type")] ··· 26 33 #[serde(rename = "app.bsky.graph.defs#starterPackViewBasic")] 27 34 DefsStarterPackViewBasic(Box<crate::app_bsky::graph::StarterPackViewBasic<'a>>), 28 35 } 36 + 29 37 #[jacquard_derive::lexicon] 30 38 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 39 #[serde(rename_all = "camelCase")] ··· 36 44 #[serde(borrow)] 37 45 pub uri: jacquard_common::types::string::AtUri<'a>, 38 46 } 47 + 39 48 #[jacquard_derive::lexicon] 40 49 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 50 #[serde(rename_all = "camelCase")] ··· 44 53 #[serde(borrow)] 45 54 pub uri: jacquard_common::types::string::AtUri<'a>, 46 55 } 56 + 47 57 #[jacquard_derive::lexicon] 48 58 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 49 59 #[serde(rename_all = "camelCase")] ··· 52 62 #[serde(borrow)] 53 63 pub uri: jacquard_common::types::string::AtUri<'a>, 54 64 } 65 + 55 66 #[jacquard_derive::lexicon] 56 67 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 57 68 #[serde(rename_all = "camelCase")] ··· 77 88 pub repost_count: std::option::Option<i64>, 78 89 #[serde(borrow)] 79 90 pub uri: jacquard_common::types::string::AtUri<'a>, 91 + ///The record data itself. 80 92 #[serde(borrow)] 81 93 pub value: jacquard_common::types::value::Data<'a>, 82 - } 94 + }
+9 -1
crates/jacquard-api/src/app_bsky/embed/record_with_media.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub record: crate::app_bsky::embed::record::Record<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::open_union] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(tag = "$type")] ··· 19 25 #[serde(rename = "app.bsky.embed.external")] 20 26 External(Box<crate::app_bsky::embed::external::ExternalRecord<'a>>), 21 27 } 28 + 22 29 #[jacquard_derive::lexicon] 23 30 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 31 #[serde(rename_all = "camelCase")] ··· 28 35 #[serde(borrow)] 29 36 pub record: crate::app_bsky::embed::record::View<'a>, 30 37 } 38 + 31 39 #[jacquard_derive::open_union] 32 40 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 41 #[serde(tag = "$type")] ··· 39 47 VideoView(Box<crate::app_bsky::embed::video::View<'a>>), 40 48 #[serde(rename = "app.bsky.embed.external#view")] 41 49 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>), 42 - } 50 + }
+11 -2
crates/jacquard-api/src/app_bsky/embed/video.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub file: jacquard_common::types::blob::Blob<'a>, 7 12 pub lang: jacquard_common::types::string::Language, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct Video<'a> { 19 + ///Alt text description of the video, for accessibility. 13 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 21 #[serde(borrow)] 15 22 pub alt: std::option::Option<jacquard_common::CowStr<'a>>, ··· 18 25 pub aspect_ratio: std::option::Option<crate::app_bsky::embed::AspectRatio<'a>>, 19 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 27 #[serde(borrow)] 21 - pub captions: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 28 + pub captions: std::option::Option<Vec<crate::app_bsky::embed::video::Caption<'a>>>, 29 + ///The mp4 video file. May be up to 100mb, formerly limited to 50mb. 22 30 #[serde(borrow)] 23 31 pub video: jacquard_common::types::blob::Blob<'a>, 24 32 } 33 + 25 34 #[jacquard_derive::lexicon] 26 35 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 36 #[serde(rename_all = "camelCase")] ··· 39 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 49 #[serde(borrow)] 41 50 pub thumbnail: std::option::Option<jacquard_common::types::string::Uri<'a>>, 42 - } 51 + }
+61 -33
crates/jacquard-api/src/app_bsky/feed.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod describe_feed_generator; 7 + pub mod generator; 8 + pub mod get_actor_feeds; 9 + pub mod get_actor_likes; 10 + pub mod get_author_feed; 11 + pub mod get_feed; 12 + pub mod get_feed_generator; 13 + pub mod get_feed_generators; 14 + pub mod get_feed_skeleton; 15 + pub mod get_likes; 16 + pub mod get_list_feed; 17 + pub mod get_post_thread; 18 + pub mod get_posts; 19 + pub mod get_quotes; 20 + pub mod get_reposted_by; 21 + pub mod get_suggested_feeds; 22 + pub mod get_timeline; 23 + pub mod like; 24 + pub mod post; 25 + pub mod postgate; 26 + pub mod repost; 27 + pub mod search_posts; 28 + pub mod send_interactions; 29 + pub mod threadgate; 30 + 1 31 #[jacquard_derive::lexicon] 2 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 33 #[serde(rename_all = "camelCase")] ··· 8 38 #[serde(borrow)] 9 39 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 10 40 } 41 + 11 42 #[jacquard_derive::lexicon] 12 43 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 44 #[serde(rename_all = "camelCase")] 14 45 pub struct BlockedPost<'a> { 15 46 #[serde(borrow)] 16 - pub author: jacquard_common::types::value::Data<'a>, 47 + pub author: crate::app_bsky::feed::BlockedAuthor<'a>, 17 48 pub blocked: bool, 18 49 #[serde(borrow)] 19 50 pub uri: jacquard_common::types::string::AtUri<'a>, 20 51 } 52 + 21 53 #[jacquard_derive::lexicon] 22 54 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 55 #[serde(rename_all = "camelCase")] 24 56 pub struct FeedViewPost<'a> { 57 + ///Context provided by feed generator that may be passed back alongside interactions. 25 58 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 59 #[serde(borrow)] 27 60 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 28 61 #[serde(borrow)] 29 - pub post: jacquard_common::types::value::Data<'a>, 62 + pub post: crate::app_bsky::feed::PostView<'a>, 30 63 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 64 #[serde(borrow)] 32 65 pub reason: std::option::Option<FeedViewPostRecordReason<'a>>, 33 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 67 #[serde(borrow)] 35 - pub reply: std::option::Option<jacquard_common::types::value::Data<'a>>, 68 + pub reply: std::option::Option<crate::app_bsky::feed::ReplyRef<'a>>, 69 + ///Unique identifier per request that may be passed back alongside interactions. 36 70 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 71 #[serde(borrow)] 38 72 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 39 73 } 74 + 40 75 #[jacquard_derive::open_union] 41 76 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 42 77 #[serde(tag = "$type")] ··· 80 115 pub uri: jacquard_common::types::string::AtUri<'a>, 81 116 #[serde(skip_serializing_if = "std::option::Option::is_none")] 82 117 #[serde(borrow)] 83 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 118 + pub viewer: std::option::Option<crate::app_bsky::feed::GeneratorViewerState<'a>>, 84 119 } 120 + 85 121 #[jacquard_derive::lexicon] 86 122 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 87 123 #[serde(rename_all = "camelCase")] ··· 90 126 #[serde(borrow)] 91 127 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 92 128 } 129 + 93 130 #[jacquard_derive::lexicon] 94 131 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 95 132 #[serde(rename_all = "camelCase")] ··· 97 134 #[serde(skip_serializing_if = "std::option::Option::is_none")] 98 135 #[serde(borrow)] 99 136 pub event: std::option::Option<jacquard_common::CowStr<'a>>, 137 + ///Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. 100 138 #[serde(skip_serializing_if = "std::option::Option::is_none")] 101 139 #[serde(borrow)] 102 140 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 103 141 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 142 #[serde(borrow)] 105 143 pub item: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 144 + ///Unique identifier per request that may be passed back alongside interactions. 106 145 #[serde(skip_serializing_if = "std::option::Option::is_none")] 107 146 #[serde(borrow)] 108 147 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 109 148 } 149 + 110 150 #[jacquard_derive::lexicon] 111 151 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 112 152 #[serde(rename_all = "camelCase")] ··· 115 155 #[serde(borrow)] 116 156 pub uri: jacquard_common::types::string::AtUri<'a>, 117 157 } 158 + 118 159 #[jacquard_derive::lexicon] 119 160 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 120 161 #[serde(rename_all = "camelCase")] ··· 144 185 pub repost_count: std::option::Option<i64>, 145 186 #[serde(skip_serializing_if = "std::option::Option::is_none")] 146 187 #[serde(borrow)] 147 - pub threadgate: std::option::Option<jacquard_common::types::value::Data<'a>>, 188 + pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>, 148 189 #[serde(borrow)] 149 190 pub uri: jacquard_common::types::string::AtUri<'a>, 150 191 #[serde(skip_serializing_if = "std::option::Option::is_none")] 151 192 #[serde(borrow)] 152 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 193 + pub viewer: std::option::Option<crate::app_bsky::feed::ViewerState<'a>>, 153 194 } 195 + 154 196 #[jacquard_derive::open_union] 155 197 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 156 198 #[serde(tag = "$type")] ··· 167 209 #[serde(rename = "app.bsky.embed.recordWithMedia#view")] 168 210 RecordWithMediaView(Box<crate::app_bsky::embed::record_with_media::View<'a>>), 169 211 } 212 + 170 213 #[jacquard_derive::lexicon] 171 214 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 172 215 #[serde(rename_all = "camelCase")] ··· 185 228 #[serde(borrow)] 186 229 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 187 230 } 231 + 188 232 #[jacquard_derive::lexicon] 189 233 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 190 234 #[serde(rename_all = "camelCase")] 191 235 pub struct ReplyRef<'a> { 236 + ///When parent is a reply to another post, this is the author of that post. 192 237 #[serde(skip_serializing_if = "std::option::Option::is_none")] 193 238 #[serde(borrow)] 194 239 pub grandparent_author: std::option::Option< ··· 199 244 #[serde(borrow)] 200 245 pub root: ReplyRefRecordRoot<'a>, 201 246 } 247 + 202 248 #[jacquard_derive::open_union] 203 249 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 204 250 #[serde(tag = "$type")] ··· 213 259 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 214 260 #[serde(rename_all = "camelCase")] 215 261 pub struct SkeletonFeedPost<'a> { 262 + ///Context that will be passed through to client and may be passed to feed generator back alongside interactions. 216 263 #[serde(skip_serializing_if = "std::option::Option::is_none")] 217 264 #[serde(borrow)] 218 265 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, ··· 222 269 #[serde(borrow)] 223 270 pub reason: std::option::Option<SkeletonFeedPostRecordReason<'a>>, 224 271 } 272 + 225 273 #[jacquard_derive::open_union] 226 274 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 227 275 #[serde(tag = "$type")] ··· 238 286 #[serde(borrow)] 239 287 pub repost: jacquard_common::types::string::AtUri<'a>, 240 288 } 289 + 241 290 ///Metadata about this post within the context of the thread it is in. 242 291 #[jacquard_derive::lexicon] 243 292 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 247 296 #[serde(borrow)] 248 297 pub root_author_like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 249 298 } 299 + 250 300 #[jacquard_derive::lexicon] 251 301 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 252 302 #[serde(rename_all = "camelCase")] ··· 255 305 #[serde(borrow)] 256 306 pub parent: std::option::Option<ThreadViewPostRecordParent<'a>>, 257 307 #[serde(borrow)] 258 - pub post: jacquard_common::types::value::Data<'a>, 308 + pub post: crate::app_bsky::feed::PostView<'a>, 259 309 #[serde(skip_serializing_if = "std::option::Option::is_none")] 260 310 #[serde(borrow)] 261 311 pub replies: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 262 312 #[serde(skip_serializing_if = "std::option::Option::is_none")] 263 313 #[serde(borrow)] 264 - pub thread_context: std::option::Option<jacquard_common::types::value::Data<'a>>, 314 + pub thread_context: std::option::Option<crate::app_bsky::feed::ThreadContext<'a>>, 265 315 } 316 + 266 317 #[jacquard_derive::open_union] 267 318 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 268 319 #[serde(tag = "$type")] ··· 285 336 #[serde(borrow)] 286 337 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 287 338 } 339 + 288 340 ///Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. 289 341 #[jacquard_derive::lexicon] 290 342 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 306 358 pub repost: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 307 359 #[serde(skip_serializing_if = "std::option::Option::is_none")] 308 360 pub thread_muted: std::option::Option<bool>, 309 - } 310 - pub mod describe_feed_generator; 311 - pub mod generator; 312 - pub mod get_actor_feeds; 313 - pub mod get_actor_likes; 314 - pub mod get_author_feed; 315 - pub mod get_feed; 316 - pub mod get_feed_generator; 317 - pub mod get_feed_generators; 318 - pub mod get_feed_skeleton; 319 - pub mod get_likes; 320 - pub mod get_list_feed; 321 - pub mod get_post_thread; 322 - pub mod get_posts; 323 - pub mod get_quotes; 324 - pub mod get_reposted_by; 325 - pub mod get_suggested_feeds; 326 - pub mod get_timeline; 327 - pub mod like; 328 - pub mod post; 329 - pub mod postgate; 330 - pub mod repost; 331 - pub mod search_posts; 332 - pub mod send_interactions; 333 - pub mod threadgate; 361 + }
+8 -1
crates/jacquard-api/src/app_bsky/feed/describe_feed_generator.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub uri: jacquard_common::types::string::AtUri<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(borrow)] 17 23 pub terms_of_service: std::option::Option<jacquard_common::CowStr<'a>>, 18 24 } 25 + 19 26 #[jacquard_derive::lexicon] 20 27 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 28 #[serde(rename_all = "camelCase")] ··· 27 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 35 #[serde(borrow)] 29 36 pub links: std::option::Option<jacquard_common::types::value::Data<'a>>, 30 - } 37 + }
+9 -1
crates/jacquard-api/src/app_bsky/feed/generator.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Generator<'a> { 11 + ///Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions 6 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 13 pub accepts_interactions: std::option::Option<bool>, 8 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 24 30 pub did: jacquard_common::types::string::Did<'a>, 25 31 #[serde(borrow)] 26 32 pub display_name: jacquard_common::CowStr<'a>, 33 + ///Self-label values 27 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 35 #[serde(borrow)] 29 36 pub labels: std::option::Option<GeneratorRecordLabels<'a>>, 30 37 } 38 + 31 39 #[jacquard_derive::open_union] 32 40 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 41 #[serde(tag = "$type")] ··· 35 43 pub enum GeneratorRecordLabels<'a> { 36 44 #[serde(rename = "com.atproto.label.defs#selfLabels")] 37 45 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>), 38 - } 46 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_actor_feeds.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetActorFeedsParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 #[serde(borrow)] 20 26 pub feeds: Vec<crate::app_bsky::feed::GeneratorView<'a>>, 21 - } 27 + }
+10 -2
crates/jacquard-api/src/app_bsky/feed/get_actor_likes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetActorLikesParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::open_union] 23 30 #[derive( 24 31 serde::Serialize, ··· 38 45 #[serde(rename = "BlockedByActor")] 39 46 BlockedByActor(std::option::Option<String>), 40 47 } 48 + 41 49 impl std::fmt::Display for GetActorLikesError<'_> { 42 50 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 43 51 match self { ··· 55 63 } 56 64 Ok(()) 57 65 } 58 - Self::Unknown(_) => write!(f, "Unknown error"), 66 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 59 67 } 60 68 } 61 - } 69 + }
+10 -2
crates/jacquard-api/src/app_bsky/feed/get_author_feed.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetAuthorFeedParams<'a> { ··· 14 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 20 pub limit: std::option::Option<i64>, 16 21 } 22 + 17 23 #[jacquard_derive::lexicon] 18 24 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 25 #[serde(rename_all = "camelCase")] ··· 24 30 #[serde(borrow)] 25 31 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>, 26 32 } 33 + 27 34 #[jacquard_derive::open_union] 28 35 #[derive( 29 36 serde::Serialize, ··· 43 50 #[serde(rename = "BlockedByActor")] 44 51 BlockedByActor(std::option::Option<String>), 45 52 } 53 + 46 54 impl std::fmt::Display for GetAuthorFeedError<'_> { 47 55 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 48 56 match self { ··· 60 68 } 61 69 Ok(()) 62 70 } 63 - Self::Unknown(_) => write!(f, "Unknown error"), 71 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 64 72 } 65 73 } 66 - } 74 + }
+10 -2
crates/jacquard-api/src/app_bsky/feed/get_feed.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFeedParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::open_union] 23 30 #[derive( 24 31 serde::Serialize, ··· 36 43 #[serde(rename = "UnknownFeed")] 37 44 UnknownFeed(std::option::Option<String>), 38 45 } 46 + 39 47 impl std::fmt::Display for GetFeedError<'_> { 40 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 41 49 match self { ··· 46 54 } 47 55 Ok(()) 48 56 } 49 - Self::Unknown(_) => write!(f, "Unknown error"), 57 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 50 58 } 51 59 } 52 - } 60 + }
+9 -1
crates/jacquard-api/src/app_bsky/feed/get_feed_generator.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFeedGeneratorParams<'a> { 4 9 #[serde(borrow)] 5 10 pub feed: jacquard_common::types::string::AtUri<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetFeedGeneratorOutput<'a> { 17 + ///Indicates whether the feed generator service has been online recently, or else seems to be inactive. 11 18 pub is_online: bool, 19 + ///Indicates whether the feed generator service is compatible with the record declaration. 12 20 pub is_valid: bool, 13 21 #[serde(borrow)] 14 22 pub view: crate::app_bsky::feed::GeneratorView<'a>, 15 - } 23 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_feed_generators.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFeedGeneratorsParams<'a> { 4 9 #[serde(borrow)] 5 10 pub feeds: Vec<jacquard_common::types::string::AtUri<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetFeedGeneratorsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub feeds: Vec<crate::app_bsky::feed::GeneratorView<'a>>, 13 - } 19 + }
+11 -2
crates/jacquard-api/src/app_bsky/feed/get_feed_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFeedSkeletonParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 #[serde(borrow)] 20 26 pub feed: Vec<crate::app_bsky::feed::SkeletonFeedPost<'a>>, 27 + ///Unique identifier per request that may be passed back alongside interactions. 21 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 29 #[serde(borrow)] 23 30 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 24 31 } 32 + 25 33 #[jacquard_derive::open_union] 26 34 #[derive( 27 35 serde::Serialize, ··· 39 47 #[serde(rename = "UnknownFeed")] 40 48 UnknownFeed(std::option::Option<String>), 41 49 } 50 + 42 51 impl std::fmt::Display for GetFeedSkeletonError<'_> { 43 52 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 44 53 match self { ··· 49 58 } 50 59 Ok(()) 51 60 } 52 - Self::Unknown(_) => write!(f, "Unknown error"), 61 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 53 62 } 54 63 } 55 - } 64 + }
+8 -1
crates/jacquard-api/src/app_bsky/feed/get_likes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 pub created_at: jacquard_common::types::string::Datetime, 8 13 pub indexed_at: jacquard_common::types::string::Datetime, 9 14 } 15 + 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct GetLikesParams<'a> { ··· 21 27 #[serde(borrow)] 22 28 pub uri: jacquard_common::types::string::AtUri<'a>, 23 29 } 30 + 24 31 #[jacquard_derive::lexicon] 25 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 33 #[serde(rename_all = "camelCase")] ··· 35 42 pub likes: Vec<jacquard_common::types::value::Data<'a>>, 36 43 #[serde(borrow)] 37 44 pub uri: jacquard_common::types::string::AtUri<'a>, 38 - } 45 + }
+10 -2
crates/jacquard-api/src/app_bsky/feed/get_list_feed.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetListFeedParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub list: jacquard_common::types::string::AtUri<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::open_union] 23 30 #[derive( 24 31 serde::Serialize, ··· 36 43 #[serde(rename = "UnknownList")] 37 44 UnknownList(std::option::Option<String>), 38 45 } 46 + 39 47 impl std::fmt::Display for GetListFeedError<'_> { 40 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 41 49 match self { ··· 46 54 } 47 55 Ok(()) 48 56 } 49 - Self::Unknown(_) => write!(f, "Unknown error"), 57 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 50 58 } 51 59 } 52 - } 60 + }
+11 -2
crates/jacquard-api/src/app_bsky/feed/get_post_thread.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPostThreadParams<'a> { ··· 8 13 #[serde(borrow)] 9 14 pub uri: jacquard_common::types::string::AtUri<'a>, 10 15 } 16 + 11 17 #[jacquard_derive::lexicon] 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] ··· 18 24 #[serde(borrow)] 19 25 pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>, 20 26 } 27 + 21 28 #[jacquard_derive::open_union] 22 29 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 30 #[serde(tag = "$type")] ··· 30 37 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 31 38 DefsBlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 32 39 } 40 + 33 41 #[jacquard_derive::open_union] 34 42 #[derive( 35 43 serde::Serialize, ··· 47 55 #[serde(rename = "NotFound")] 48 56 NotFound(std::option::Option<String>), 49 57 } 58 + 50 59 impl std::fmt::Display for GetPostThreadError<'_> { 51 60 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 52 61 match self { ··· 57 66 } 58 67 Ok(()) 59 68 } 60 - Self::Unknown(_) => write!(f, "Unknown error"), 69 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 61 70 } 62 71 } 63 - } 72 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_posts.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPostsParams<'a> { 4 9 #[serde(borrow)] 5 10 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetPostsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub posts: Vec<crate::app_bsky::feed::PostView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_quotes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetQuotesParams<'a> { ··· 12 17 #[serde(borrow)] 13 18 pub uri: jacquard_common::types::string::AtUri<'a>, 14 19 } 20 + 15 21 #[jacquard_derive::lexicon] 16 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 23 #[serde(rename_all = "camelCase")] ··· 26 32 pub posts: Vec<crate::app_bsky::feed::PostView<'a>>, 27 33 #[serde(borrow)] 28 34 pub uri: jacquard_common::types::string::AtUri<'a>, 29 - } 35 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_reposted_by.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRepostedByParams<'a> { ··· 12 17 #[serde(borrow)] 13 18 pub uri: jacquard_common::types::string::AtUri<'a>, 14 19 } 20 + 15 21 #[jacquard_derive::lexicon] 16 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 23 #[serde(rename_all = "camelCase")] ··· 26 32 pub reposted_by: Vec<crate::app_bsky::actor::ProfileView<'a>>, 27 33 #[serde(borrow)] 28 34 pub uri: jacquard_common::types::string::AtUri<'a>, 29 - } 35 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_suggested_feeds.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedFeedsParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 #[serde(borrow)] 18 24 pub feeds: Vec<crate::app_bsky::feed::GeneratorView<'a>>, 19 - } 25 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/get_timeline.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetTimelineParams<'a> { ··· 10 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 16 pub limit: std::option::Option<i64>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] ··· 19 25 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 20 26 #[serde(borrow)] 21 27 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>, 22 - } 28 + }
+6 -1
crates/jacquard-api/src/app_bsky/feed/like.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record declaring a 'like' of a piece of subject content. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 #[serde(borrow)] 11 16 pub via: std::option::Option<crate::com_atproto::repo::strong_ref::StrongRef<'a>>, 12 - } 17 + }
+22 -4
crates/jacquard-api/src/app_bsky/feed/post.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Deprecated: use facets instead. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Entity<'a> { 6 11 #[serde(borrow)] 7 - pub index: jacquard_common::types::value::Data<'a>, 12 + pub index: crate::app_bsky::feed::post::TextSlice<'a>, 13 + ///Expected values are 'mention' and 'link'. 8 14 #[serde(borrow)] 9 15 pub r#type: jacquard_common::CowStr<'a>, 10 16 #[serde(borrow)] 11 17 pub value: jacquard_common::CowStr<'a>, 12 18 } 19 + 13 20 ///Record containing a Bluesky post. 14 21 #[jacquard_derive::lexicon] 15 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 23 #[serde(rename_all = "camelCase")] 17 24 pub struct Post<'a> { 25 + ///Client-declared timestamp when this post was originally created. 18 26 pub created_at: jacquard_common::types::string::Datetime, 19 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 28 #[serde(borrow)] 21 29 pub embed: std::option::Option<PostRecordEmbed<'a>>, 30 + ///DEPRECATED: replaced by app.bsky.richtext.facet. 22 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 32 #[serde(borrow)] 24 - pub entities: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 33 + pub entities: std::option::Option<Vec<crate::app_bsky::feed::post::Entity<'a>>>, 34 + ///Annotations of text (mentions, URLs, hashtags, etc) 25 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 36 #[serde(borrow)] 27 37 pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 38 + ///Self-label values for this post. Effectively content warnings. 28 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 40 #[serde(borrow)] 30 41 pub labels: std::option::Option<PostRecordLabels<'a>>, 42 + ///Indicates human language of post primary text content. 31 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 44 pub langs: std::option::Option<Vec<jacquard_common::types::string::Language>>, 33 45 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 46 #[serde(borrow)] 35 - pub reply: std::option::Option<jacquard_common::types::value::Data<'a>>, 47 + pub reply: std::option::Option<crate::app_bsky::feed::post::ReplyRef<'a>>, 48 + ///Additional hashtags, in addition to any included in post text and facets. 36 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 50 #[serde(borrow)] 38 51 pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 52 + ///The primary post content. May be an empty string, if there are embeds. 39 53 #[serde(borrow)] 40 54 pub text: jacquard_common::CowStr<'a>, 41 55 } 56 + 42 57 #[jacquard_derive::open_union] 43 58 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 59 #[serde(tag = "$type")] ··· 55 70 #[serde(rename = "app.bsky.embed.recordWithMedia")] 56 71 RecordWithMedia(Box<crate::app_bsky::embed::record_with_media::RecordWithMedia<'a>>), 57 72 } 73 + 58 74 #[jacquard_derive::open_union] 59 75 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 60 76 #[serde(tag = "$type")] ··· 63 79 #[serde(rename = "com.atproto.label.defs#selfLabels")] 64 80 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>), 65 81 } 82 + 66 83 #[jacquard_derive::lexicon] 67 84 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 68 85 #[serde(rename_all = "camelCase")] ··· 72 89 #[serde(borrow)] 73 90 pub root: crate::com_atproto::repo::strong_ref::StrongRef<'a>, 74 91 } 92 + 75 93 ///Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. 76 94 #[jacquard_derive::lexicon] 77 95 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 79 97 pub struct TextSlice<'a> { 80 98 pub end: i64, 81 99 pub start: i64, 82 - } 100 + }
+9 -1
crates/jacquard-api/src/app_bsky/feed/postgate.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Disables embedding of this post. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 9 14 #[serde(rename_all = "camelCase")] 10 15 pub struct Postgate<'a> { 11 16 pub created_at: jacquard_common::types::string::Datetime, 17 + ///List of AT-URIs embedding this post that the author has detached from. 12 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 19 #[serde(borrow)] 14 20 pub detached_embedding_uris: std::option::Option< 15 21 Vec<jacquard_common::types::string::AtUri<'a>>, 16 22 >, 23 + ///List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. 17 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 25 #[serde(borrow)] 19 26 pub embedding_rules: std::option::Option< 20 27 Vec<jacquard_common::types::value::Data<'a>>, 21 28 >, 29 + ///Reference (AT-URI) to the post record. 22 30 #[serde(borrow)] 23 31 pub post: jacquard_common::types::string::AtUri<'a>, 24 - } 32 + }
+6 -1
crates/jacquard-api/src/app_bsky/feed/repost.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record representing a 'repost' of an existing Bluesky post. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 #[serde(borrow)] 11 16 pub via: std::option::Option<crate::com_atproto::repo::strong_ref::StrongRef<'a>>, 12 - } 17 + }
+11 -2
crates/jacquard-api/src/app_bsky/feed/search_posts.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchPostsParams<'a> { ··· 35 40 #[serde(borrow)] 36 41 pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>, 37 42 } 43 + 38 44 #[jacquard_derive::lexicon] 39 45 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 46 #[serde(rename_all = "camelCase")] ··· 42 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 49 #[serde(borrow)] 44 50 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 51 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 45 52 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 53 pub hits_total: std::option::Option<i64>, 47 54 #[serde(borrow)] 48 55 pub posts: Vec<crate::app_bsky::feed::PostView<'a>>, 49 56 } 57 + 50 58 #[jacquard_derive::open_union] 51 59 #[derive( 52 60 serde::Serialize, ··· 64 72 #[serde(rename = "BadQueryString")] 65 73 BadQueryString(std::option::Option<String>), 66 74 } 75 + 67 76 impl std::fmt::Display for SearchPostsError<'_> { 68 77 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 69 78 match self { ··· 74 83 } 75 84 Ok(()) 76 85 } 77 - Self::Unknown(_) => write!(f, "Unknown error"), 86 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 78 87 } 79 88 } 80 - } 89 + }
+7 -1
crates/jacquard-api/src/app_bsky/feed/send_interactions.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub interactions: Vec<crate::app_bsky::feed::Interaction<'a>>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] 11 - pub struct SendInteractionsOutput<'a> {} 17 + pub struct SendInteractionsOutput<'a> {}
+11 -1
crates/jacquard-api/src/app_bsky/feed/threadgate.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Allow replies from actors who follow you. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 16 21 #[serde(borrow)] 17 22 pub list: jacquard_common::types::string::AtUri<'a>, 18 23 } 24 + 19 25 ///Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository. 20 26 #[jacquard_derive::lexicon] 21 27 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 28 #[serde(rename_all = "camelCase")] 23 29 pub struct Threadgate<'a> { 30 + ///List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply. 24 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 32 #[serde(borrow)] 26 33 pub allow: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 27 34 pub created_at: jacquard_common::types::string::Datetime, 35 + ///List of hidden reply URIs. 28 36 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 37 #[serde(borrow)] 30 38 pub hidden_replies: std::option::Option< 31 39 Vec<jacquard_common::types::string::AtUri<'a>>, 32 40 >, 41 + ///Reference (AT-URI) to the post record. 33 42 #[serde(borrow)] 34 43 pub post: jacquard_common::types::string::AtUri<'a>, 35 44 } 45 + 36 46 ///Allow replies from actors mentioned in your post. 37 47 #[jacquard_derive::lexicon] 38 48 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 49 #[serde(rename_all = "camelCase")] 40 - pub struct MentionRule<'a> {} 50 + pub struct MentionRule<'a> {}
+59 -37
crates/jacquard-api/src/app_bsky/graph.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod block; 7 + pub mod follow; 8 + pub mod get_actor_starter_packs; 9 + pub mod get_blocks; 10 + pub mod get_followers; 11 + pub mod get_follows; 12 + pub mod get_known_followers; 13 + pub mod get_list; 14 + pub mod get_list_blocks; 15 + pub mod get_list_mutes; 16 + pub mod get_lists; 17 + pub mod get_lists_with_membership; 18 + pub mod get_mutes; 19 + pub mod get_relationships; 20 + pub mod get_starter_pack; 21 + pub mod get_starter_packs; 22 + pub mod get_starter_packs_with_membership; 23 + pub mod get_suggested_follows_by_actor; 24 + pub mod list; 25 + pub mod listblock; 26 + pub mod listitem; 27 + pub mod mute_actor; 28 + pub mod mute_actor_list; 29 + pub mod mute_thread; 30 + pub mod search_starter_packs; 31 + pub mod starterpack; 32 + pub mod unmute_actor; 33 + pub mod unmute_actor_list; 34 + pub mod unmute_thread; 35 + pub mod verification; 36 + 1 37 #[jacquard_derive::lexicon] 2 38 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 39 #[serde(rename_all = "camelCase")] ··· 7 43 #[serde(borrow)] 8 44 pub uri: jacquard_common::types::string::AtUri<'a>, 9 45 } 46 + 10 47 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 11 48 pub enum ListPurpose<'a> { 12 49 AppBskyGraphDefsModlist, ··· 14 51 AppBskyGraphDefsReferencelist, 15 52 Other(jacquard_common::CowStr<'a>), 16 53 } 54 + 17 55 impl<'a> ListPurpose<'a> { 18 56 pub fn as_str(&self) -> &str { 19 57 match self { ··· 24 62 } 25 63 } 26 64 } 65 + 27 66 impl<'a> From<&'a str> for ListPurpose<'a> { 28 67 fn from(s: &'a str) -> Self { 29 68 match s { ··· 34 73 } 35 74 } 36 75 } 76 + 37 77 impl<'a> From<String> for ListPurpose<'a> { 38 78 fn from(s: String) -> Self { 39 79 match s.as_str() { ··· 44 84 } 45 85 } 46 86 } 87 + 47 88 impl<'a> AsRef<str> for ListPurpose<'a> { 48 89 fn as_ref(&self) -> &str { 49 90 self.as_str() 50 91 } 51 92 } 93 + 52 94 impl<'a> serde::Serialize for ListPurpose<'a> { 53 95 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 54 96 where ··· 57 99 serializer.serialize_str(self.as_str()) 58 100 } 59 101 } 102 + 60 103 impl<'de, 'a> serde::Deserialize<'de> for ListPurpose<'a> 61 104 where 62 105 'de: 'a, ··· 69 112 Ok(Self::from(s)) 70 113 } 71 114 } 115 + 72 116 #[jacquard_derive::lexicon] 73 117 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 74 118 #[serde(rename_all = "camelCase")] ··· 97 141 #[serde(borrow)] 98 142 pub name: jacquard_common::CowStr<'a>, 99 143 #[serde(borrow)] 100 - pub purpose: jacquard_common::types::value::Data<'a>, 144 + pub purpose: crate::app_bsky::graph::ListPurpose<'a>, 101 145 #[serde(borrow)] 102 146 pub uri: jacquard_common::types::string::AtUri<'a>, 103 147 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 148 #[serde(borrow)] 105 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 149 + pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>, 106 150 } 151 + 107 152 #[jacquard_derive::lexicon] 108 153 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 109 154 #[serde(rename_all = "camelCase")] ··· 123 168 #[serde(borrow)] 124 169 pub name: jacquard_common::CowStr<'a>, 125 170 #[serde(borrow)] 126 - pub purpose: jacquard_common::types::value::Data<'a>, 171 + pub purpose: crate::app_bsky::graph::ListPurpose<'a>, 127 172 #[serde(borrow)] 128 173 pub uri: jacquard_common::types::string::AtUri<'a>, 129 174 #[serde(skip_serializing_if = "std::option::Option::is_none")] 130 175 #[serde(borrow)] 131 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 176 + pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>, 132 177 } 178 + 133 179 #[jacquard_derive::lexicon] 134 180 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 135 181 #[serde(rename_all = "camelCase")] ··· 140 186 #[serde(skip_serializing_if = "std::option::Option::is_none")] 141 187 pub muted: std::option::Option<bool>, 142 188 } 189 + 143 190 ///indicates that a handle or DID could not be resolved 144 191 #[jacquard_derive::lexicon] 145 192 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 149 196 pub actor: jacquard_common::types::ident::AtIdentifier<'a>, 150 197 pub not_found: bool, 151 198 } 199 + 152 200 ///lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object) 153 201 #[jacquard_derive::lexicon] 154 202 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 156 204 pub struct Relationship<'a> { 157 205 #[serde(borrow)] 158 206 pub did: jacquard_common::types::string::Did<'a>, 207 + ///if the actor is followed by this DID, contains the AT-URI of the follow record 159 208 #[serde(skip_serializing_if = "std::option::Option::is_none")] 160 209 #[serde(borrow)] 161 210 pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 211 + ///if the actor follows this DID, this is the AT-URI of the follow record 162 212 #[serde(skip_serializing_if = "std::option::Option::is_none")] 163 213 #[serde(borrow)] 164 214 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 165 215 } 216 + 166 217 #[jacquard_derive::lexicon] 167 218 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 168 219 #[serde(rename_all = "camelCase")] ··· 184 235 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 185 236 #[serde(skip_serializing_if = "std::option::Option::is_none")] 186 237 #[serde(borrow)] 187 - pub list: std::option::Option<jacquard_common::types::value::Data<'a>>, 238 + pub list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 188 239 #[serde(skip_serializing_if = "std::option::Option::is_none")] 189 240 #[serde(borrow)] 190 241 pub list_items_sample: std::option::Option< 191 - Vec<jacquard_common::types::value::Data<'a>>, 242 + Vec<crate::app_bsky::graph::ListItemView<'a>>, 192 243 >, 193 244 #[serde(borrow)] 194 245 pub record: jacquard_common::types::value::Data<'a>, 195 246 #[serde(borrow)] 196 247 pub uri: jacquard_common::types::string::AtUri<'a>, 197 248 } 249 + 198 250 #[jacquard_derive::lexicon] 199 251 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 200 252 #[serde(rename_all = "camelCase")] ··· 217 269 pub record: jacquard_common::types::value::Data<'a>, 218 270 #[serde(borrow)] 219 271 pub uri: jacquard_common::types::string::AtUri<'a>, 220 - } 221 - pub mod block; 222 - pub mod follow; 223 - pub mod get_actor_starter_packs; 224 - pub mod get_blocks; 225 - pub mod get_followers; 226 - pub mod get_follows; 227 - pub mod get_known_followers; 228 - pub mod get_list; 229 - pub mod get_list_blocks; 230 - pub mod get_list_mutes; 231 - pub mod get_lists; 232 - pub mod get_lists_with_membership; 233 - pub mod get_mutes; 234 - pub mod get_relationships; 235 - pub mod get_starter_pack; 236 - pub mod get_starter_packs; 237 - pub mod get_starter_packs_with_membership; 238 - pub mod get_suggested_follows_by_actor; 239 - pub mod list; 240 - pub mod listblock; 241 - pub mod listitem; 242 - pub mod mute_actor; 243 - pub mod mute_actor_list; 244 - pub mod mute_thread; 245 - pub mod search_starter_packs; 246 - pub mod starterpack; 247 - pub mod unmute_actor; 248 - pub mod unmute_actor_list; 249 - pub mod unmute_thread; 250 - pub mod verification; 272 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/block.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Block<'a> { 6 11 pub created_at: jacquard_common::types::string::Datetime, 12 + ///DID of the account to be blocked. 7 13 #[serde(borrow)] 8 14 pub subject: jacquard_common::types::string::Did<'a>, 9 - } 15 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/follow.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 6 11 pub created_at: jacquard_common::types::string::Datetime, 7 12 #[serde(borrow)] 8 13 pub subject: jacquard_common::types::string::Did<'a>, 9 - } 14 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_actor_starter_packs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetActorStarterPacksParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 #[serde(borrow)] 20 26 pub starter_packs: Vec<crate::app_bsky::graph::StarterPackViewBasic<'a>>, 21 - } 27 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_blocks.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetBlocksParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 23 #[serde(borrow)] 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 - } 25 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_followers.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFollowersParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 20 26 pub followers: Vec<crate::app_bsky::actor::ProfileView<'a>>, 21 27 #[serde(borrow)] 22 28 pub subject: crate::app_bsky::actor::ProfileView<'a>, 23 - } 29 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_follows.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetFollowsParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 20 26 pub follows: Vec<crate::app_bsky::actor::ProfileView<'a>>, 21 27 #[serde(borrow)] 22 28 pub subject: crate::app_bsky::actor::ProfileView<'a>, 23 - } 29 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_known_followers.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetKnownFollowersParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 20 26 pub followers: Vec<crate::app_bsky::actor::ProfileView<'a>>, 21 27 #[serde(borrow)] 22 28 pub subject: crate::app_bsky::actor::ProfileView<'a>, 23 - } 29 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_list.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetListParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub list: jacquard_common::types::string::AtUri<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 20 26 pub items: Vec<crate::app_bsky::graph::ListItemView<'a>>, 21 27 #[serde(borrow)] 22 28 pub list: crate::app_bsky::graph::ListView<'a>, 23 - } 29 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_list_blocks.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetListBlocksParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 #[serde(borrow)] 18 24 pub lists: Vec<crate::app_bsky::graph::ListView<'a>>, 19 - } 25 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_list_mutes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetListMutesParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 #[serde(borrow)] 18 24 pub lists: Vec<crate::app_bsky::graph::ListView<'a>>, 19 - } 25 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_lists.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetListsParams<'a> { ··· 12 17 #[serde(borrow)] 13 18 pub purposes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 14 19 } 20 + 15 21 #[jacquard_derive::lexicon] 16 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 23 #[serde(rename_all = "camelCase")] ··· 21 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 22 28 #[serde(borrow)] 23 29 pub lists: Vec<crate::app_bsky::graph::ListView<'a>>, 24 - } 30 + }
+8 -1
crates/jacquard-api/src/app_bsky/graph/get_lists_with_membership.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A list and an optional list item indicating membership of a target user to that list. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 9 14 #[serde(borrow)] 10 15 pub list_item: std::option::Option<crate::app_bsky::graph::ListItemView<'a>>, 11 16 } 17 + 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] 14 20 pub struct GetListsWithMembershipParams<'a> { ··· 23 29 #[serde(borrow)] 24 30 pub purposes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 25 31 } 32 + 26 33 #[jacquard_derive::lexicon] 27 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 35 #[serde(rename_all = "camelCase")] ··· 32 39 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 33 40 #[serde(borrow)] 34 41 pub lists_with_membership: Vec<jacquard_common::types::value::Data<'a>>, 35 - } 42 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_mutes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetMutesParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 #[serde(borrow)] 18 24 pub mutes: Vec<crate::app_bsky::actor::ProfileView<'a>>, 19 - } 25 + }
+10 -2
crates/jacquard-api/src/app_bsky/graph/get_relationships.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRelationshipsParams<'a> { ··· 9 14 Vec<jacquard_common::types::ident::AtIdentifier<'a>>, 10 15 >, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub relationships: Vec<jacquard_common::types::value::Data<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::open_union] 23 30 #[derive( 24 31 serde::Serialize, ··· 37 44 #[serde(rename = "ActorNotFound")] 38 45 ActorNotFound(std::option::Option<String>), 39 46 } 47 + 40 48 impl std::fmt::Display for GetRelationshipsError<'_> { 41 49 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 42 50 match self { ··· 47 55 } 48 56 Ok(()) 49 57 } 50 - Self::Unknown(_) => write!(f, "Unknown error"), 58 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 51 59 } 52 60 } 53 - } 61 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_starter_pack.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetStarterPackParams<'a> { 4 9 #[serde(borrow)] 5 10 pub starter_pack: jacquard_common::types::string::AtUri<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetStarterPackOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub starter_pack: crate::app_bsky::graph::StarterPackView<'a>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/get_starter_packs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetStarterPacksParams<'a> { 4 9 #[serde(borrow)] 5 10 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetStarterPacksOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub starter_packs: Vec<crate::app_bsky::graph::StarterPackViewBasic<'a>>, 13 - } 19 + }
+8 -1
crates/jacquard-api/src/app_bsky/graph/get_starter_packs_with_membership.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetStarterPacksWithMembershipParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub starter_packs_with_membership: Vec<jacquard_common::types::value::Data<'a>>, 21 27 } 28 + 22 29 ///A starter pack and an optional list item indicating membership of a target user to that starter pack. 23 30 #[jacquard_derive::lexicon] 24 31 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 29 36 pub list_item: std::option::Option<crate::app_bsky::graph::ListItemView<'a>>, 30 37 #[serde(borrow)] 31 38 pub starter_pack: crate::app_bsky::graph::StarterPackView<'a>, 32 - } 39 + }
+9 -1
crates/jacquard-api/src/app_bsky/graph/get_suggested_follows_by_actor.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedFollowsByActorParams<'a> { 4 9 #[serde(borrow)] 5 10 pub actor: jacquard_common::types::ident::AtIdentifier<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetSuggestedFollowsByActorOutput<'a> { 17 + ///If true, response has fallen-back to generic results, and is not scoped using relativeToDid 11 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 19 pub is_fallback: std::option::Option<bool>, 20 + ///Snowflake for this recommendation, use when submitting recommendation events. 13 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 22 pub rec_id: std::option::Option<i64>, 15 23 #[serde(borrow)] 16 24 pub suggestions: Vec<crate::app_bsky::actor::ProfileView<'a>>, 17 - } 25 + }
+9 -1
crates/jacquard-api/src/app_bsky/graph/list.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 18 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 24 #[serde(borrow)] 20 25 pub labels: std::option::Option<ListRecordLabels<'a>>, 26 + ///Display name for list; can not be empty. 21 27 #[serde(borrow)] 22 28 pub name: jacquard_common::CowStr<'a>, 29 + ///Defines the purpose of the list (aka, moderation-oriented or curration-oriented) 23 30 #[serde(borrow)] 24 31 pub purpose: crate::app_bsky::graph::ListPurpose<'a>, 25 32 } 33 + 26 34 #[jacquard_derive::open_union] 27 35 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 36 #[serde(tag = "$type")] ··· 30 38 pub enum ListRecordLabels<'a> { 31 39 #[serde(rename = "com.atproto.label.defs#selfLabels")] 32 40 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>), 33 - } 41 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/listblock.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record representing a block relationship against an entire an entire list of accounts (actors). 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Listblock<'a> { 6 11 pub created_at: jacquard_common::types::string::Datetime, 12 + ///Reference (AT-URI) to the mod list record. 7 13 #[serde(borrow)] 8 14 pub subject: jacquard_common::types::string::AtUri<'a>, 9 - } 15 + }
+8 -1
crates/jacquard-api/src/app_bsky/graph/listitem.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Listitem<'a> { 6 11 pub created_at: jacquard_common::types::string::Datetime, 12 + ///Reference (AT-URI) to the list record (app.bsky.graph.list). 7 13 #[serde(borrow)] 8 14 pub list: jacquard_common::types::string::AtUri<'a>, 15 + ///The account which is included on the list. 9 16 #[serde(borrow)] 10 17 pub subject: jacquard_common::types::string::Did<'a>, 11 - } 18 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/mute_actor.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct MuteActorInput<'a> { 5 10 #[serde(borrow)] 6 11 pub actor: jacquard_common::types::ident::AtIdentifier<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/mute_actor_list.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct MuteActorListInput<'a> { 5 10 #[serde(borrow)] 6 11 pub list: jacquard_common::types::string::AtUri<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/mute_thread.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct MuteThreadInput<'a> { 5 10 #[serde(borrow)] 6 11 pub root: jacquard_common::types::string::AtUri<'a>, 7 - } 12 + }
+7 -1
crates/jacquard-api/src/app_bsky/graph/search_starter_packs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchStarterPacksParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub q: jacquard_common::CowStr<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 #[serde(borrow)] 20 26 pub starter_packs: Vec<crate::app_bsky::graph::StarterPackViewBasic<'a>>, 21 - } 27 + }
+12 -2
crates/jacquard-api/src/app_bsky/graph/starterpack.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub uri: jacquard_common::types::string::AtUri<'a>, 7 12 } 13 + 8 14 ///Record defining a starter pack of actors and feeds for new users. 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 21 27 >, 22 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 29 #[serde(borrow)] 24 - pub feeds: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 30 + pub feeds: std::option::Option< 31 + Vec<crate::app_bsky::graph::starterpack::FeedItem<'a>>, 32 + >, 33 + ///Reference (AT-URI) to the list record. 25 34 #[serde(borrow)] 26 35 pub list: jacquard_common::types::string::AtUri<'a>, 36 + ///Display name for starter pack; can not be empty. 27 37 #[serde(borrow)] 28 38 pub name: jacquard_common::CowStr<'a>, 29 - } 39 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/unmute_actor.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UnmuteActorInput<'a> { 5 10 #[serde(borrow)] 6 11 pub actor: jacquard_common::types::ident::AtIdentifier<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/unmute_actor_list.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UnmuteActorListInput<'a> { 5 10 #[serde(borrow)] 6 11 pub list: jacquard_common::types::string::AtUri<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/app_bsky/graph/unmute_thread.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UnmuteThreadInput<'a> { 5 10 #[serde(borrow)] 6 11 pub root: jacquard_common::types::string::AtUri<'a>, 7 - } 12 + }
+10 -1
crates/jacquard-api/src/app_bsky/graph/verification.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Verification<'a> { 11 + ///Date of when the verification was created. 6 12 pub created_at: jacquard_common::types::string::Datetime, 13 + ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. 7 14 #[serde(borrow)] 8 15 pub display_name: jacquard_common::CowStr<'a>, 16 + ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. 9 17 #[serde(borrow)] 10 18 pub handle: jacquard_common::types::string::Handle<'a>, 19 + ///DID of the subject the verification applies to. 11 20 #[serde(borrow)] 12 21 pub subject: jacquard_common::types::string::Did<'a>, 13 - } 22 + }
+19 -5
crates/jacquard-api/src/app_bsky/labeler.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_services; 7 + pub mod service; 8 + 1 9 #[jacquard_derive::lexicon] 2 10 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 11 #[serde(rename_all = "camelCase")] 4 12 pub struct LabelerPolicies<'a> { 13 + ///Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler. 5 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 15 #[serde(borrow)] 7 16 pub label_value_definitions: std::option::Option< 8 17 Vec<crate::com_atproto::label::LabelValueDefinition<'a>>, 9 18 >, 19 + ///The label values which this labeler publishes. May include global or custom labels. 10 20 #[serde(borrow)] 11 21 pub label_values: Vec<crate::com_atproto::label::LabelValue<'a>>, 12 22 } 23 + 13 24 #[jacquard_derive::lexicon] 14 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 26 #[serde(rename_all = "camelCase")] ··· 28 39 pub uri: jacquard_common::types::string::AtUri<'a>, 29 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 41 #[serde(borrow)] 31 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 42 + pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>, 32 43 } 44 + 33 45 #[jacquard_derive::lexicon] 34 46 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 35 47 #[serde(rename_all = "camelCase")] ··· 46 58 pub like_count: std::option::Option<i64>, 47 59 #[serde(borrow)] 48 60 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>, 61 + ///The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. 49 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 50 63 #[serde(borrow)] 51 64 pub reason_types: std::option::Option< 52 65 Vec<crate::com_atproto::moderation::ReasonType<'a>>, 53 66 >, 67 + ///Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. 54 68 #[serde(skip_serializing_if = "std::option::Option::is_none")] 55 69 #[serde(borrow)] 56 70 pub subject_collections: std::option::Option< 57 71 Vec<jacquard_common::types::string::Nsid<'a>>, 58 72 >, 73 + ///The set of subject types (account, record, etc) this service accepts reports on. 59 74 #[serde(skip_serializing_if = "std::option::Option::is_none")] 60 75 #[serde(borrow)] 61 76 pub subject_types: std::option::Option< ··· 65 80 pub uri: jacquard_common::types::string::AtUri<'a>, 66 81 #[serde(skip_serializing_if = "std::option::Option::is_none")] 67 82 #[serde(borrow)] 68 - pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 83 + pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>, 69 84 } 85 + 70 86 #[jacquard_derive::lexicon] 71 87 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 72 88 #[serde(rename_all = "camelCase")] ··· 74 90 #[serde(skip_serializing_if = "std::option::Option::is_none")] 75 91 #[serde(borrow)] 76 92 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 77 - } 78 - pub mod get_services; 79 - pub mod service; 93 + }
+7 -1
crates/jacquard-api/src/app_bsky/labeler/get_services.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetServicesParams<'a> { ··· 6 11 #[serde(borrow)] 7 12 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct GetServicesOutput<'a> { 13 19 #[serde(borrow)] 14 20 pub views: Vec<jacquard_common::types::value::Data<'a>>, 15 - } 21 + }
+10 -1
crates/jacquard-api/src/app_bsky/labeler/service.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A declaration of the existence of labeler service. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 9 14 pub labels: std::option::Option<ServiceRecordLabels<'a>>, 10 15 #[serde(borrow)] 11 16 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>, 17 + ///The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. 12 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 19 #[serde(borrow)] 14 20 pub reason_types: std::option::Option< 15 21 Vec<crate::com_atproto::moderation::ReasonType<'a>>, 16 22 >, 23 + ///Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. 17 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 25 #[serde(borrow)] 19 26 pub subject_collections: std::option::Option< 20 27 Vec<jacquard_common::types::string::Nsid<'a>>, 21 28 >, 29 + ///The set of subject types (account, record, etc) this service accepts reports on. 22 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 31 #[serde(borrow)] 24 32 pub subject_types: std::option::Option< 25 33 Vec<crate::com_atproto::moderation::SubjectType<'a>>, 26 34 >, 27 35 } 36 + 28 37 #[jacquard_derive::open_union] 29 38 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 39 #[serde(tag = "$type")] ··· 32 41 pub enum ServiceRecordLabels<'a> { 33 42 #[serde(rename = "com.atproto.label.defs#selfLabels")] 34 43 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>), 35 - } 44 + }
+37 -26
crates/jacquard-api/src/app_bsky/notification.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod declaration; 7 + pub mod get_preferences; 8 + pub mod get_unread_count; 9 + pub mod list_activity_subscriptions; 10 + pub mod list_notifications; 11 + pub mod put_activity_subscription; 12 + pub mod put_preferences; 13 + pub mod put_preferences_v2; 14 + pub mod register_push; 15 + pub mod unregister_push; 16 + pub mod update_seen; 17 + 1 18 #[jacquard_derive::lexicon] 2 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 20 #[serde(rename_all = "camelCase")] ··· 5 22 pub post: bool, 6 23 pub reply: bool, 7 24 } 25 + 8 26 #[jacquard_derive::lexicon] 9 27 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 28 #[serde(rename_all = "camelCase")] ··· 13 31 pub include: jacquard_common::CowStr<'a>, 14 32 pub push: bool, 15 33 } 34 + 16 35 #[jacquard_derive::lexicon] 17 36 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 37 #[serde(rename_all = "camelCase")] ··· 22 41 pub list: bool, 23 42 pub push: bool, 24 43 } 44 + 25 45 #[jacquard_derive::lexicon] 26 46 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 47 #[serde(rename_all = "camelCase")] ··· 29 49 pub list: bool, 30 50 pub push: bool, 31 51 } 52 + 32 53 #[jacquard_derive::lexicon] 33 54 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 55 #[serde(rename_all = "camelCase")] 35 56 pub struct Preferences<'a> { 36 57 #[serde(borrow)] 37 - pub chat: jacquard_common::types::value::Data<'a>, 58 + pub chat: crate::app_bsky::notification::ChatPreference<'a>, 38 59 #[serde(borrow)] 39 - pub follow: jacquard_common::types::value::Data<'a>, 60 + pub follow: crate::app_bsky::notification::FilterablePreference<'a>, 40 61 #[serde(borrow)] 41 - pub like: jacquard_common::types::value::Data<'a>, 62 + pub like: crate::app_bsky::notification::FilterablePreference<'a>, 42 63 #[serde(borrow)] 43 - pub like_via_repost: jacquard_common::types::value::Data<'a>, 64 + pub like_via_repost: crate::app_bsky::notification::FilterablePreference<'a>, 44 65 #[serde(borrow)] 45 - pub mention: jacquard_common::types::value::Data<'a>, 66 + pub mention: crate::app_bsky::notification::FilterablePreference<'a>, 46 67 #[serde(borrow)] 47 - pub quote: jacquard_common::types::value::Data<'a>, 68 + pub quote: crate::app_bsky::notification::FilterablePreference<'a>, 48 69 #[serde(borrow)] 49 - pub reply: jacquard_common::types::value::Data<'a>, 70 + pub reply: crate::app_bsky::notification::FilterablePreference<'a>, 50 71 #[serde(borrow)] 51 - pub repost: jacquard_common::types::value::Data<'a>, 72 + pub repost: crate::app_bsky::notification::FilterablePreference<'a>, 52 73 #[serde(borrow)] 53 - pub repost_via_repost: jacquard_common::types::value::Data<'a>, 74 + pub repost_via_repost: crate::app_bsky::notification::FilterablePreference<'a>, 54 75 #[serde(borrow)] 55 - pub starterpack_joined: jacquard_common::types::value::Data<'a>, 76 + pub starterpack_joined: crate::app_bsky::notification::Preference<'a>, 56 77 #[serde(borrow)] 57 - pub subscribed_post: jacquard_common::types::value::Data<'a>, 78 + pub subscribed_post: crate::app_bsky::notification::Preference<'a>, 58 79 #[serde(borrow)] 59 - pub unverified: jacquard_common::types::value::Data<'a>, 80 + pub unverified: crate::app_bsky::notification::Preference<'a>, 60 81 #[serde(borrow)] 61 - pub verified: jacquard_common::types::value::Data<'a>, 82 + pub verified: crate::app_bsky::notification::Preference<'a>, 62 83 } 84 + 63 85 #[jacquard_derive::lexicon] 64 86 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 65 87 #[serde(rename_all = "camelCase")] ··· 70 92 #[serde(rename_all = "camelCase")] 71 93 pub struct SubjectActivitySubscription<'a> { 72 94 #[serde(borrow)] 73 - pub activity_subscription: jacquard_common::types::value::Data<'a>, 95 + pub activity_subscription: crate::app_bsky::notification::ActivitySubscription<'a>, 74 96 #[serde(borrow)] 75 97 pub subject: jacquard_common::types::string::Did<'a>, 76 - } 77 - pub mod declaration; 78 - pub mod get_preferences; 79 - pub mod get_unread_count; 80 - pub mod list_activity_subscriptions; 81 - pub mod list_notifications; 82 - pub mod put_activity_subscription; 83 - pub mod put_preferences; 84 - pub mod put_preferences_v2; 85 - pub mod register_push; 86 - pub mod unregister_push; 87 - pub mod update_seen; 98 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/declaration.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A declaration of the user's choices related to notifications that can be produced by them. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Declaration<'a> { 11 + ///A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'. 6 12 #[serde(borrow)] 7 13 pub allow_subscriptions: jacquard_common::CowStr<'a>, 8 - } 14 + }
+6 -1
crates/jacquard-api/src/app_bsky/notification/get_preferences.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPreferencesParams {} ··· 7 12 pub struct GetPreferencesOutput<'a> { 8 13 #[serde(borrow)] 9 14 pub preferences: crate::app_bsky::notification::Preferences<'a>, 10 - } 15 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/get_unread_count.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetUnreadCountParams { ··· 6 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 12 pub seen_at: std::option::Option<jacquard_common::types::string::Datetime>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct GetUnreadCountOutput<'a> { 13 19 pub count: i64, 14 - } 20 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/list_activity_subscriptions.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListActivitySubscriptionsParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 #[serde(borrow)] 18 24 pub subscriptions: Vec<crate::app_bsky::actor::ProfileView<'a>>, 19 - } 25 + }
+9 -1
crates/jacquard-api/src/app_bsky/notification/list_notifications.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListNotificationsParams<'a> { ··· 14 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 20 pub seen_at: std::option::Option<jacquard_common::types::string::Datetime>, 16 21 } 22 + 17 23 #[jacquard_derive::lexicon] 18 24 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 25 #[serde(rename_all = "camelCase")] ··· 28 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 35 pub seen_at: std::option::Option<jacquard_common::types::string::Datetime>, 30 36 } 37 + 31 38 #[jacquard_derive::lexicon] 32 39 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 33 40 #[serde(rename_all = "camelCase")] ··· 41 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 49 #[serde(borrow)] 43 50 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 51 + ///The reason why this notification was delivered - e.g. your post was liked, or you received a new follower. 44 52 #[serde(borrow)] 45 53 pub reason: jacquard_common::CowStr<'a>, 46 54 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 50 58 pub record: jacquard_common::types::value::Data<'a>, 51 59 #[serde(borrow)] 52 60 pub uri: jacquard_common::types::string::AtUri<'a>, 53 - } 61 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/put_activity_subscription.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub subject: jacquard_common::types::string::Did<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 18 24 >, 19 25 #[serde(borrow)] 20 26 pub subject: jacquard_common::types::string::Did<'a>, 21 - } 27 + }
+6 -1
crates/jacquard-api/src/app_bsky/notification/put_preferences.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct PutPreferencesInput<'a> { 5 10 pub priority: bool, 6 - } 11 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/put_preferences_v2.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 62 67 #[serde(borrow)] 63 68 pub verified: std::option::Option<crate::app_bsky::notification::Preference<'a>>, 64 69 } 70 + 65 71 #[jacquard_derive::lexicon] 66 72 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 67 73 #[serde(rename_all = "camelCase")] 68 74 pub struct PutPreferencesV2Output<'a> { 69 75 #[serde(borrow)] 70 76 pub preferences: crate::app_bsky::notification::Preferences<'a>, 71 - } 77 + }
+7 -1
crates/jacquard-api/src/app_bsky/notification/register_push.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RegisterPushInput<'a> { 10 + ///Set to true when the actor is age restricted 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 pub age_restricted: std::option::Option<bool>, 7 13 #[serde(borrow)] ··· 12 18 pub service_did: jacquard_common::types::string::Did<'a>, 13 19 #[serde(borrow)] 14 20 pub token: jacquard_common::CowStr<'a>, 15 - } 21 + }
+6 -1
crates/jacquard-api/src/app_bsky/notification/unregister_push.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 10 15 pub service_did: jacquard_common::types::string::Did<'a>, 11 16 #[serde(borrow)] 12 17 pub token: jacquard_common::CowStr<'a>, 13 - } 18 + }
+6 -1
crates/jacquard-api/src/app_bsky/notification/update_seen.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateSeenInput<'a> { 5 10 pub seen_at: jacquard_common::types::string::Datetime, 6 - } 11 + }
+6 -1
crates/jacquard-api/src/app_bsky/richtext.rs
··· 1 - pub mod facet; 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod facet;
+11 -2
crates/jacquard-api/src/app_bsky/richtext/facet.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 6 11 pub byte_end: i64, 7 12 pub byte_start: i64, 8 13 } 14 + 9 15 ///Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL. 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 14 20 #[serde(borrow)] 15 21 pub uri: jacquard_common::types::string::Uri<'a>, 16 22 } 23 + 17 24 ///Annotation of a sub-string within rich text. 18 25 #[jacquard_derive::lexicon] 19 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 22 29 #[serde(borrow)] 23 30 pub features: Vec<jacquard_common::types::value::Data<'a>>, 24 31 #[serde(borrow)] 25 - pub index: jacquard_common::types::value::Data<'a>, 32 + pub index: crate::app_bsky::richtext::facet::ByteSlice<'a>, 26 33 } 34 + 27 35 ///Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID. 28 36 #[jacquard_derive::lexicon] 29 37 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 32 40 #[serde(borrow)] 33 41 pub did: jacquard_common::types::string::Did<'a>, 34 42 } 43 + 35 44 ///Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags'). 36 45 #[jacquard_derive::lexicon] 37 46 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 39 48 pub struct Tag<'a> { 40 49 #[serde(borrow)] 41 50 pub tag: jacquard_common::CowStr<'a>, 42 - } 51 + }
+53 -23
crates/jacquard-api/src/app_bsky/unspecced.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_age_assurance_state; 7 + pub mod get_config; 8 + pub mod get_onboarding_suggested_starter_packs; 9 + pub mod get_onboarding_suggested_starter_packs_skeleton; 10 + pub mod get_popular_feed_generators; 11 + pub mod get_post_thread_other_v2; 12 + pub mod get_post_thread_v2; 13 + pub mod get_suggested_feeds; 14 + pub mod get_suggested_feeds_skeleton; 15 + pub mod get_suggested_starter_packs; 16 + pub mod get_suggested_starter_packs_skeleton; 17 + pub mod get_suggested_users; 18 + pub mod get_suggested_users_skeleton; 19 + pub mod get_suggestions_skeleton; 20 + pub mod get_tagged_suggestions; 21 + pub mod get_trending_topics; 22 + pub mod get_trends; 23 + pub mod get_trends_skeleton; 24 + pub mod init_age_assurance; 25 + pub mod search_actors_skeleton; 26 + pub mod search_posts_skeleton; 27 + pub mod search_starter_packs_skeleton; 28 + 1 29 ///Object used to store age assurance data in stash. 2 30 #[jacquard_derive::lexicon] 3 31 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 32 #[serde(rename_all = "camelCase")] 5 33 pub struct AgeAssuranceEvent<'a> { 34 + ///The unique identifier for this instance of the age assurance flow, in UUID format. 6 35 #[serde(borrow)] 7 36 pub attempt_id: jacquard_common::CowStr<'a>, 37 + ///The IP address used when completing the AA flow. 8 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 39 #[serde(borrow)] 10 40 pub complete_ip: std::option::Option<jacquard_common::CowStr<'a>>, 41 + ///The user agent used when completing the AA flow. 11 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 43 #[serde(borrow)] 13 44 pub complete_ua: std::option::Option<jacquard_common::CowStr<'a>>, 45 + ///The date and time of this write operation. 14 46 pub created_at: jacquard_common::types::string::Datetime, 47 + ///The email used for AA. 15 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 16 49 #[serde(borrow)] 17 50 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 51 + ///The IP address used when initiating the AA flow. 18 52 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 53 #[serde(borrow)] 20 54 pub init_ip: std::option::Option<jacquard_common::CowStr<'a>>, 55 + ///The user agent used when initiating the AA flow. 21 56 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 57 #[serde(borrow)] 23 58 pub init_ua: std::option::Option<jacquard_common::CowStr<'a>>, 59 + ///The status of the age assurance process. 24 60 #[serde(borrow)] 25 61 pub status: jacquard_common::CowStr<'a>, 26 62 } 63 + 27 64 ///The computed state of the age assurance process, returned to the user in question on certain authenticated requests. 28 65 #[jacquard_derive::lexicon] 29 66 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 30 67 #[serde(rename_all = "camelCase")] 31 68 pub struct AgeAssuranceState<'a> { 69 + ///The timestamp when this state was last updated. 32 70 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 71 pub last_initiated_at: std::option::Option<jacquard_common::types::string::Datetime>, 72 + ///The status of the age assurance process. 34 73 #[serde(borrow)] 35 74 pub status: jacquard_common::CowStr<'a>, 36 75 } 76 + 37 77 #[jacquard_derive::lexicon] 38 78 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 39 79 #[serde(rename_all = "camelCase")] ··· 41 81 #[serde(borrow)] 42 82 pub did: jacquard_common::types::string::Did<'a>, 43 83 } 84 + 44 85 #[jacquard_derive::lexicon] 45 86 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 46 87 #[serde(rename_all = "camelCase")] ··· 48 89 #[serde(borrow)] 49 90 pub uri: jacquard_common::types::string::AtUri<'a>, 50 91 } 92 + 51 93 #[jacquard_derive::lexicon] 52 94 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 53 95 #[serde(rename_all = "camelCase")] ··· 55 97 #[serde(borrow)] 56 98 pub uri: jacquard_common::types::string::AtUri<'a>, 57 99 } 100 + 58 101 #[jacquard_derive::lexicon] 59 102 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 60 103 #[serde(rename_all = "camelCase")] ··· 76 119 #[serde(borrow)] 77 120 pub topic: jacquard_common::CowStr<'a>, 78 121 } 122 + 79 123 #[jacquard_derive::lexicon] 80 124 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 81 125 #[serde(rename_all = "camelCase")] ··· 83 127 #[serde(borrow)] 84 128 pub author: crate::app_bsky::feed::BlockedAuthor<'a>, 85 129 } 130 + 86 131 #[jacquard_derive::lexicon] 87 132 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 88 133 #[serde(rename_all = "camelCase")] ··· 95 140 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 96 141 #[serde(rename_all = "camelCase")] 97 142 pub struct ThreadItemPost<'a> { 143 + ///The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread. 98 144 pub hidden_by_threadgate: bool, 145 + ///This post has more parents that were not present in the response. This is just a boolean, without the number of parents. 99 146 pub more_parents: bool, 147 + ///This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate. 100 148 pub more_replies: i64, 149 + ///This is by an account muted by the viewer requesting it. 101 150 pub muted_by_viewer: bool, 151 + ///This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread. 102 152 pub op_thread: bool, 103 153 #[serde(borrow)] 104 154 pub post: crate::app_bsky::feed::PostView<'a>, 105 155 } 156 + 106 157 #[jacquard_derive::lexicon] 107 158 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 108 159 #[serde(rename_all = "camelCase")] ··· 124 175 #[serde(borrow)] 125 176 pub topic: jacquard_common::CowStr<'a>, 126 177 } 178 + 127 179 #[jacquard_derive::lexicon] 128 180 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 129 181 #[serde(rename_all = "camelCase")] ··· 138 190 pub link: jacquard_common::CowStr<'a>, 139 191 #[serde(borrow)] 140 192 pub topic: jacquard_common::CowStr<'a>, 141 - } 142 - pub mod get_age_assurance_state; 143 - pub mod get_config; 144 - pub mod get_onboarding_suggested_starter_packs; 145 - pub mod get_onboarding_suggested_starter_packs_skeleton; 146 - pub mod get_popular_feed_generators; 147 - pub mod get_post_thread_other_v2; 148 - pub mod get_post_thread_v2; 149 - pub mod get_suggested_feeds; 150 - pub mod get_suggested_feeds_skeleton; 151 - pub mod get_suggested_starter_packs; 152 - pub mod get_suggested_starter_packs_skeleton; 153 - pub mod get_suggested_users; 154 - pub mod get_suggested_users_skeleton; 155 - pub mod get_suggestions_skeleton; 156 - pub mod get_tagged_suggestions; 157 - pub mod get_trending_topics; 158 - pub mod get_trends; 159 - pub mod get_trends_skeleton; 160 - pub mod init_age_assurance; 161 - pub mod search_actors_skeleton; 162 - pub mod search_posts_skeleton; 163 - pub mod search_starter_packs_skeleton; 193 + }
+6 -1
crates/jacquard-api/src/app_bsky/unspecced/get_age_assurance_state.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(flatten)] 6 11 #[serde(borrow)] 7 12 pub value: crate::app_bsky::unspecced::AgeAssuranceState<'a>, 8 - } 13 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_config.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub domains: Vec<jacquard_common::CowStr<'a>>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 23 #[serde(borrow)] 18 24 pub live_now: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 19 - } 25 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_onboarding_suggested_starter_packs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetOnboardingSuggestedStarterPacksParams { 4 9 #[serde(skip_serializing_if = "std::option::Option::is_none")] 5 10 pub limit: std::option::Option<i64>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetOnboardingSuggestedStarterPacksOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub starter_packs: Vec<crate::app_bsky::graph::StarterPackView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_onboarding_suggested_starter_packs_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetOnboardingSuggestedStarterPacksSkeletonParams<'a> { ··· 7 12 #[serde(borrow)] 8 13 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 19 pub struct GetOnboardingSuggestedStarterPacksSkeletonOutput<'a> { 14 20 #[serde(borrow)] 15 21 pub starter_packs: Vec<jacquard_common::types::string::AtUri<'a>>, 16 - } 22 + }
+11 -1
crates/jacquard-api/src/app_bsky/unspecced/get_post_thread_other_v2.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPostThreadOtherV2Params<'a> { ··· 6 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 12 pub prioritize_followed_users: std::option::Option<bool>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct GetPostThreadOtherV2Output<'a> { 19 + ///A flat list of other thread items. The depth of each item is indicated by the depth property inside the item. 13 20 #[serde(borrow)] 14 21 pub thread: Vec<jacquard_common::types::value::Data<'a>>, 15 22 } 23 + 16 24 #[jacquard_derive::lexicon] 17 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 26 #[serde(rename_all = "camelCase")] 19 27 pub struct ThreadItem<'a> { 28 + ///The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. 20 29 pub depth: i64, 21 30 #[serde(borrow)] 22 31 pub uri: jacquard_common::types::string::AtUri<'a>, 23 32 #[serde(borrow)] 24 33 pub value: ThreadItemRecordValue<'a>, 25 34 } 35 + 26 36 #[jacquard_derive::open_union] 27 37 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 38 #[serde(tag = "$type")] ··· 30 40 pub enum ThreadItemRecordValue<'a> { 31 41 #[serde(rename = "app.bsky.unspecced.defs#threadItemPost")] 32 42 DefsThreadItemPost(Box<crate::app_bsky::unspecced::ThreadItemPost<'a>>), 33 - } 43 + }
+12 -1
crates/jacquard-api/src/app_bsky/unspecced/get_post_thread_v2.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetPostThreadV2Params<'a> { ··· 15 20 #[serde(borrow)] 16 21 pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 17 22 } 23 + 18 24 #[jacquard_derive::lexicon] 19 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 26 #[serde(rename_all = "camelCase")] 21 27 pub struct GetPostThreadV2Output<'a> { 28 + ///Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them. 22 29 pub has_other_replies: bool, 30 + ///A flat list of thread items. The depth of each item is indicated by the depth property inside the item. 23 31 #[serde(borrow)] 24 32 pub thread: Vec<jacquard_common::types::value::Data<'a>>, 25 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 34 #[serde(borrow)] 27 35 pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>, 28 36 } 37 + 29 38 #[jacquard_derive::lexicon] 30 39 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 40 #[serde(rename_all = "camelCase")] 32 41 pub struct ThreadItem<'a> { 42 + ///The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. 33 43 pub depth: i64, 34 44 #[serde(borrow)] 35 45 pub uri: jacquard_common::types::string::AtUri<'a>, 36 46 #[serde(borrow)] 37 47 pub value: ThreadItemRecordValue<'a>, 38 48 } 49 + 39 50 #[jacquard_derive::open_union] 40 51 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 52 #[serde(tag = "$type")] ··· 51 62 DefsThreadItemNotFound(Box<crate::app_bsky::unspecced::ThreadItemNotFound<'a>>), 52 63 #[serde(rename = "app.bsky.unspecced.defs#threadItemBlocked")] 53 64 DefsThreadItemBlocked(Box<crate::app_bsky::unspecced::ThreadItemBlocked<'a>>), 54 - } 65 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_feeds.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedFeedsParams { 4 9 #[serde(skip_serializing_if = "std::option::Option::is_none")] 5 10 pub limit: std::option::Option<i64>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetSuggestedFeedsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub feeds: Vec<crate::app_bsky::feed::GeneratorView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_feeds_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedFeedsSkeletonParams<'a> { ··· 7 12 #[serde(borrow)] 8 13 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 19 pub struct GetSuggestedFeedsSkeletonOutput<'a> { 14 20 #[serde(borrow)] 15 21 pub feeds: Vec<jacquard_common::types::string::AtUri<'a>>, 16 - } 22 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_starter_packs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedStarterPacksParams { 4 9 #[serde(skip_serializing_if = "std::option::Option::is_none")] 5 10 pub limit: std::option::Option<i64>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetSuggestedStarterPacksOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub starter_packs: Vec<crate::app_bsky::graph::StarterPackView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_starter_packs_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedStarterPacksSkeletonParams<'a> { ··· 7 12 #[serde(borrow)] 8 13 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 19 pub struct GetSuggestedStarterPacksSkeletonOutput<'a> { 14 20 #[serde(borrow)] 15 21 pub starter_packs: Vec<jacquard_common::types::string::AtUri<'a>>, 16 - } 22 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_users.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedUsersParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 19 pub struct GetSuggestedUsersOutput<'a> { 14 20 #[serde(borrow)] 15 21 pub actors: Vec<crate::app_bsky::actor::ProfileView<'a>>, 16 - } 22 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggested_users_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestedUsersSkeletonParams<'a> { ··· 10 15 #[serde(borrow)] 11 16 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] 16 22 pub struct GetSuggestedUsersSkeletonOutput<'a> { 17 23 #[serde(borrow)] 18 24 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 19 - } 25 + }
+9 -1
crates/jacquard-api/src/app_bsky/unspecced/get_suggestions_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSuggestionsSkeletonParams<'a> { ··· 13 18 #[serde(borrow)] 14 19 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 22 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 29 #[serde(borrow)] 24 30 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 31 + ///Snowflake for this recommendation, use when submitting recommendation events. 25 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 33 pub rec_id: std::option::Option<i64>, 34 + ///DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer. 27 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 36 #[serde(borrow)] 29 37 pub relative_to_did: std::option::Option<jacquard_common::types::string::Did<'a>>, 30 - } 38 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_tagged_suggestions.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetTaggedSuggestionsParams {} ··· 8 13 #[serde(borrow)] 9 14 pub suggestions: Vec<jacquard_common::types::value::Data<'a>>, 10 15 } 16 + 11 17 #[jacquard_derive::lexicon] 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] ··· 18 24 pub subject_type: jacquard_common::CowStr<'a>, 19 25 #[serde(borrow)] 20 26 pub tag: jacquard_common::CowStr<'a>, 21 - } 27 + }
+7 -1
crates/jacquard-api/src/app_bsky/unspecced/get_trends.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetTrendsParams { 4 9 #[serde(skip_serializing_if = "std::option::Option::is_none")] 5 10 pub limit: std::option::Option<i64>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetTrendsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub trends: Vec<crate::app_bsky::unspecced::TrendView<'a>>, 13 - } 19 + }
+13 -2
crates/jacquard-api/src/app_bsky/unspecced/init_age_assurance.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct InitAgeAssuranceInput<'a> { 10 + ///An ISO 3166-1 alpha-2 code of the user's location. 5 11 #[serde(borrow)] 6 12 pub country_code: jacquard_common::CowStr<'a>, 13 + ///The user's email address to receive assurance instructions. 7 14 #[serde(borrow)] 8 15 pub email: jacquard_common::CowStr<'a>, 16 + ///The user's preferred language for communication during the assurance process. 9 17 #[serde(borrow)] 10 18 pub language: jacquard_common::CowStr<'a>, 11 19 } 20 + 12 21 #[jacquard_derive::lexicon] 13 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 23 #[serde(rename_all = "camelCase")] ··· 17 26 #[serde(borrow)] 18 27 pub value: crate::app_bsky::unspecced::AgeAssuranceState<'a>, 19 28 } 29 + 20 30 #[jacquard_derive::open_union] 21 31 #[derive( 22 32 serde::Serialize, ··· 38 48 #[serde(rename = "InvalidInitiation")] 39 49 InvalidInitiation(std::option::Option<String>), 40 50 } 51 + 41 52 impl std::fmt::Display for InitAgeAssuranceError<'_> { 42 53 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 43 54 match self { ··· 62 73 } 63 74 Ok(()) 64 75 } 65 - Self::Unknown(_) => write!(f, "Unknown error"), 76 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 66 77 } 67 78 } 68 - } 79 + }
+11 -2
crates/jacquard-api/src/app_bsky/unspecced/search_actors_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchActorsSkeletonParams<'a> { ··· 14 19 #[serde(borrow)] 15 20 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 16 21 } 22 + 17 23 #[jacquard_derive::lexicon] 18 24 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 25 #[serde(rename_all = "camelCase")] ··· 23 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 30 #[serde(borrow)] 25 31 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 32 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 26 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 34 pub hits_total: std::option::Option<i64>, 28 35 } 36 + 29 37 #[jacquard_derive::open_union] 30 38 #[derive( 31 39 serde::Serialize, ··· 43 51 #[serde(rename = "BadQueryString")] 44 52 BadQueryString(std::option::Option<String>), 45 53 } 54 + 46 55 impl std::fmt::Display for SearchActorsSkeletonError<'_> { 47 56 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 48 57 match self { ··· 53 62 } 54 63 Ok(()) 55 64 } 56 - Self::Unknown(_) => write!(f, "Unknown error"), 65 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 57 66 } 58 67 } 59 - } 68 + }
+11 -2
crates/jacquard-api/src/app_bsky/unspecced/search_posts_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchPostsSkeletonParams<'a> { ··· 38 43 #[serde(borrow)] 39 44 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 40 45 } 46 + 41 47 #[jacquard_derive::lexicon] 42 48 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 43 49 #[serde(rename_all = "camelCase")] ··· 45 51 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 52 #[serde(borrow)] 47 53 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 54 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 48 55 #[serde(skip_serializing_if = "std::option::Option::is_none")] 49 56 pub hits_total: std::option::Option<i64>, 50 57 #[serde(borrow)] 51 58 pub posts: Vec<crate::app_bsky::unspecced::SkeletonSearchPost<'a>>, 52 59 } 60 + 53 61 #[jacquard_derive::open_union] 54 62 #[derive( 55 63 serde::Serialize, ··· 67 75 #[serde(rename = "BadQueryString")] 68 76 BadQueryString(std::option::Option<String>), 69 77 } 78 + 70 79 impl std::fmt::Display for SearchPostsSkeletonError<'_> { 71 80 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 72 81 match self { ··· 77 86 } 78 87 Ok(()) 79 88 } 80 - Self::Unknown(_) => write!(f, "Unknown error"), 89 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 81 90 } 82 91 } 83 - } 92 + }
+11 -2
crates/jacquard-api/src/app_bsky/unspecced/search_starter_packs_skeleton.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchStarterPacksSkeletonParams<'a> { ··· 12 17 #[serde(borrow)] 13 18 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>, 14 19 } 20 + 15 21 #[jacquard_derive::lexicon] 16 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 23 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 26 #[serde(borrow)] 21 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 28 + ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. 22 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 30 pub hits_total: std::option::Option<i64>, 24 31 #[serde(borrow)] 25 32 pub starter_packs: Vec<crate::app_bsky::unspecced::SkeletonSearchStarterPack<'a>>, 26 33 } 34 + 27 35 #[jacquard_derive::open_union] 28 36 #[derive( 29 37 serde::Serialize, ··· 41 49 #[serde(rename = "BadQueryString")] 42 50 BadQueryString(std::option::Option<String>), 43 51 } 52 + 44 53 impl std::fmt::Display for SearchStarterPacksSkeletonError<'_> { 45 54 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 46 55 match self { ··· 51 60 } 52 61 Ok(()) 53 62 } 54 - Self::Unknown(_) => write!(f, "Unknown error"), 63 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 55 64 } 56 65 } 57 - } 66 + }
+12 -4
crates/jacquard-api/src/app_bsky/video.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_job_status; 7 + pub mod get_upload_limits; 8 + pub mod upload_video; 9 + 1 10 #[jacquard_derive::lexicon] 2 11 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 12 #[serde(rename_all = "camelCase")] ··· 15 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 16 25 #[serde(borrow)] 17 26 pub message: std::option::Option<jacquard_common::CowStr<'a>>, 27 + ///Progress within the current processing state. 18 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 29 pub progress: std::option::Option<i64>, 30 + ///The state of the video processing job. All values not listed as a known value indicate that the job is in process. 20 31 #[serde(borrow)] 21 32 pub state: jacquard_common::CowStr<'a>, 22 - } 23 - pub mod get_job_status; 24 - pub mod get_upload_limits; 25 - pub mod upload_video; 33 + }
+7 -1
crates/jacquard-api/src/app_bsky/video/get_job_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetJobStatusParams<'a> { 4 9 #[serde(borrow)] 5 10 pub job_id: jacquard_common::CowStr<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetJobStatusOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub job_status: crate::app_bsky::video::JobStatus<'a>, 13 - } 19 + }
+6 -1
crates/jacquard-api/src/app_bsky/video/get_upload_limits.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 13 18 pub remaining_daily_bytes: std::option::Option<i64>, 14 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 20 pub remaining_daily_videos: std::option::Option<i64>, 16 - } 21 + }
+6 -1
crates/jacquard-api/src/app_bsky/video/upload_video.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 pub struct UploadVideoOutput<'a> { 9 14 #[serde(borrow)] 10 15 pub job_status: crate::app_bsky::video::JobStatus<'a>, 11 - } 16 + }
+6 -1
crates/jacquard-api/src/chat_bsky.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod actor; 2 7 pub mod convo; 3 - pub mod moderation; 8 + pub mod moderation;
+11 -4
crates/jacquard-api/src/chat_bsky/actor.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod declaration; 7 + pub mod delete_account; 8 + pub mod export_account_data; 9 + 1 10 #[jacquard_derive::lexicon] 2 11 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 12 #[serde(rename_all = "camelCase")] ··· 8 17 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 18 #[serde(borrow)] 10 19 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, 20 + ///Set to true when the actor cannot actively participate in conversations 11 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 22 pub chat_disabled: std::option::Option<bool>, 13 23 #[serde(borrow)] ··· 26 36 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 37 #[serde(borrow)] 28 38 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 29 - } 30 - pub mod declaration; 31 - pub mod delete_account; 32 - pub mod export_account_data; 39 + }
+6 -1
crates/jacquard-api/src/chat_bsky/actor/declaration.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///A declaration of a Bluesky chat account. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 5 10 pub struct Declaration<'a> { 6 11 #[serde(borrow)] 7 12 pub allow_incoming: jacquard_common::CowStr<'a>, 8 - } 13 + }
+6 -1
crates/jacquard-api/src/chat_bsky/actor/delete_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 - pub struct DeleteAccountOutput<'a> {} 9 + pub struct DeleteAccountOutput<'a> {}
+6 -1
crates/jacquard-api/src/chat_bsky/actor/export_account_data.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 - pub struct ExportAccountDataOutput<'a> {} 9 + pub struct ExportAccountDataOutput<'a> {}
+55 -26
crates/jacquard-api/src/chat_bsky/convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod accept_convo; 7 + pub mod add_reaction; 8 + pub mod delete_message_for_self; 9 + pub mod get_convo; 10 + pub mod get_convo_availability; 11 + pub mod get_convo_for_members; 12 + pub mod get_log; 13 + pub mod get_messages; 14 + pub mod leave_convo; 15 + pub mod list_convos; 16 + pub mod mute_convo; 17 + pub mod remove_reaction; 18 + pub mod send_message; 19 + pub mod send_message_batch; 20 + pub mod unmute_convo; 21 + pub mod update_all_read; 22 + pub mod update_read; 23 + 1 24 #[jacquard_derive::lexicon] 2 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 26 #[serde(rename_all = "camelCase")] ··· 20 43 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 21 44 pub unread_count: i64, 22 45 } 46 + 23 47 #[jacquard_derive::open_union] 24 48 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 49 #[serde(tag = "$type")] ··· 39 63 #[serde(borrow)] 40 64 pub rev: jacquard_common::CowStr<'a>, 41 65 #[serde(borrow)] 42 - pub sender: jacquard_common::types::value::Data<'a>, 66 + pub sender: crate::chat_bsky::convo::MessageViewSender<'a>, 43 67 pub sent_at: jacquard_common::types::string::Datetime, 44 68 } 69 + 45 70 #[jacquard_derive::lexicon] 46 71 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 47 72 #[serde(rename_all = "camelCase")] ··· 51 76 #[serde(borrow)] 52 77 pub rev: jacquard_common::CowStr<'a>, 53 78 } 79 + 54 80 #[jacquard_derive::lexicon] 55 81 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 56 82 #[serde(rename_all = "camelCase")] ··· 60 86 #[serde(borrow)] 61 87 pub message: LogAddReactionRecordMessage<'a>, 62 88 #[serde(borrow)] 63 - pub reaction: jacquard_common::types::value::Data<'a>, 89 + pub reaction: crate::chat_bsky::convo::ReactionView<'a>, 64 90 #[serde(borrow)] 65 91 pub rev: jacquard_common::CowStr<'a>, 66 92 } 93 + 67 94 #[jacquard_derive::open_union] 68 95 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 69 96 #[serde(tag = "$type")] ··· 78 105 #[serde(borrow)] 79 106 pub rev: jacquard_common::CowStr<'a>, 80 107 } 108 + 81 109 #[jacquard_derive::lexicon] 82 110 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 83 111 #[serde(rename_all = "camelCase")] ··· 89 117 #[serde(borrow)] 90 118 pub rev: jacquard_common::CowStr<'a>, 91 119 } 120 + 92 121 #[jacquard_derive::open_union] 93 122 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 94 123 #[serde(tag = "$type")] ··· 105 134 #[serde(borrow)] 106 135 pub rev: jacquard_common::CowStr<'a>, 107 136 } 137 + 108 138 #[jacquard_derive::open_union] 109 139 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 110 140 #[serde(tag = "$type")] ··· 119 149 #[serde(borrow)] 120 150 pub rev: jacquard_common::CowStr<'a>, 121 151 } 152 + 122 153 #[jacquard_derive::lexicon] 123 154 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 124 155 #[serde(rename_all = "camelCase")] ··· 128 159 #[serde(borrow)] 129 160 pub rev: jacquard_common::CowStr<'a>, 130 161 } 162 + 131 163 #[jacquard_derive::lexicon] 132 164 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 133 165 #[serde(rename_all = "camelCase")] ··· 139 171 #[serde(borrow)] 140 172 pub rev: jacquard_common::CowStr<'a>, 141 173 } 174 + 142 175 #[jacquard_derive::open_union] 143 176 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 144 177 #[serde(tag = "$type")] ··· 153 186 #[serde(borrow)] 154 187 pub message: LogRemoveReactionRecordMessage<'a>, 155 188 #[serde(borrow)] 156 - pub reaction: jacquard_common::types::value::Data<'a>, 189 + pub reaction: crate::chat_bsky::convo::ReactionView<'a>, 157 190 #[serde(borrow)] 158 191 pub rev: jacquard_common::CowStr<'a>, 159 192 } 193 + 160 194 #[jacquard_derive::open_union] 161 195 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 162 196 #[serde(tag = "$type")] ··· 171 205 #[serde(borrow)] 172 206 pub rev: jacquard_common::CowStr<'a>, 173 207 } 208 + 174 209 #[jacquard_derive::lexicon] 175 210 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 176 211 #[serde(rename_all = "camelCase")] 177 212 pub struct MessageAndReactionView<'a> { 178 213 #[serde(borrow)] 179 - pub message: jacquard_common::types::value::Data<'a>, 214 + pub message: crate::chat_bsky::convo::MessageView<'a>, 180 215 #[serde(borrow)] 181 - pub reaction: jacquard_common::types::value::Data<'a>, 216 + pub reaction: crate::chat_bsky::convo::ReactionView<'a>, 182 217 } 218 + 183 219 #[jacquard_derive::lexicon] 184 220 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 185 221 #[serde(rename_all = "camelCase")] ··· 187 223 #[serde(skip_serializing_if = "std::option::Option::is_none")] 188 224 #[serde(borrow)] 189 225 pub embed: std::option::Option<MessageInputRecordEmbed<'a>>, 226 + ///Annotations of text (mentions, URLs, hashtags, etc) 190 227 #[serde(skip_serializing_if = "std::option::Option::is_none")] 191 228 #[serde(borrow)] 192 229 pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 193 230 #[serde(borrow)] 194 231 pub text: jacquard_common::CowStr<'a>, 195 232 } 233 + 196 234 #[jacquard_derive::open_union] 197 235 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 198 236 #[serde(tag = "$type")] ··· 201 239 #[serde(rename = "app.bsky.embed.record")] 202 240 Record(Box<crate::app_bsky::embed::record::Record<'a>>), 203 241 } 242 + 204 243 #[jacquard_derive::lexicon] 205 244 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 206 245 #[serde(rename_all = "camelCase")] ··· 212 251 #[serde(borrow)] 213 252 pub message_id: jacquard_common::CowStr<'a>, 214 253 } 254 + 215 255 #[jacquard_derive::lexicon] 216 256 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 217 257 #[serde(rename_all = "camelCase")] ··· 219 259 #[serde(skip_serializing_if = "std::option::Option::is_none")] 220 260 #[serde(borrow)] 221 261 pub embed: std::option::Option<MessageViewRecordEmbed<'a>>, 262 + ///Annotations of text (mentions, URLs, hashtags, etc) 222 263 #[serde(skip_serializing_if = "std::option::Option::is_none")] 223 264 #[serde(borrow)] 224 265 pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 225 266 #[serde(borrow)] 226 267 pub id: jacquard_common::CowStr<'a>, 268 + ///Reactions to this message, in ascending order of creation time. 227 269 #[serde(skip_serializing_if = "std::option::Option::is_none")] 228 270 #[serde(borrow)] 229 - pub reactions: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 271 + pub reactions: std::option::Option<Vec<crate::chat_bsky::convo::ReactionView<'a>>>, 230 272 #[serde(borrow)] 231 273 pub rev: jacquard_common::CowStr<'a>, 232 274 #[serde(borrow)] 233 - pub sender: jacquard_common::types::value::Data<'a>, 275 + pub sender: crate::chat_bsky::convo::MessageViewSender<'a>, 234 276 pub sent_at: jacquard_common::types::string::Datetime, 235 277 #[serde(borrow)] 236 278 pub text: jacquard_common::CowStr<'a>, 237 279 } 280 + 238 281 #[jacquard_derive::open_union] 239 282 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 240 283 #[serde(tag = "$type")] ··· 243 286 #[serde(rename = "app.bsky.embed.record#view")] 244 287 RecordView(Box<crate::app_bsky::embed::record::View<'a>>), 245 288 } 289 + 246 290 #[jacquard_derive::lexicon] 247 291 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 248 292 #[serde(rename_all = "camelCase")] ··· 250 294 #[serde(borrow)] 251 295 pub did: jacquard_common::types::string::Did<'a>, 252 296 } 297 + 253 298 #[jacquard_derive::lexicon] 254 299 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 255 300 #[serde(rename_all = "camelCase")] 256 301 pub struct ReactionView<'a> { 257 302 pub created_at: jacquard_common::types::string::Datetime, 258 303 #[serde(borrow)] 259 - pub sender: jacquard_common::types::value::Data<'a>, 304 + pub sender: crate::chat_bsky::convo::ReactionViewSender<'a>, 260 305 #[serde(borrow)] 261 306 pub value: jacquard_common::CowStr<'a>, 262 307 } 308 + 263 309 #[jacquard_derive::lexicon] 264 310 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 265 311 #[serde(rename_all = "camelCase")] 266 312 pub struct ReactionViewSender<'a> { 267 313 #[serde(borrow)] 268 314 pub did: jacquard_common::types::string::Did<'a>, 269 - } 270 - pub mod accept_convo; 271 - pub mod add_reaction; 272 - pub mod delete_message_for_self; 273 - pub mod get_convo; 274 - pub mod get_convo_availability; 275 - pub mod get_convo_for_members; 276 - pub mod get_log; 277 - pub mod get_messages; 278 - pub mod leave_convo; 279 - pub mod list_convos; 280 - pub mod mute_convo; 281 - pub mod remove_reaction; 282 - pub mod send_message; 283 - pub mod send_message_batch; 284 - pub mod unmute_convo; 285 - pub mod update_all_read; 286 - pub mod update_read; 315 + }
+8 -1
crates/jacquard-api/src/chat_bsky/convo/accept_convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub convo_id: jacquard_common::CowStr<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] 11 17 pub struct AcceptConvoOutput<'a> { 18 + ///Rev when the convo was accepted. If not present, the convo was already accepted. 12 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 20 #[serde(borrow)] 14 21 pub rev: std::option::Option<jacquard_common::CowStr<'a>>, 15 - } 22 + }
+10 -2
crates/jacquard-api/src/chat_bsky/convo/add_reaction.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 9 14 #[serde(borrow)] 10 15 pub value: jacquard_common::CowStr<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(borrow)] 17 23 pub message: crate::chat_bsky::convo::MessageView<'a>, 18 24 } 25 + 19 26 #[jacquard_derive::open_union] 20 27 #[derive( 21 28 serde::Serialize, ··· 40 47 #[serde(rename = "ReactionInvalidValue")] 41 48 ReactionInvalidValue(std::option::Option<String>), 42 49 } 50 + 43 51 impl std::fmt::Display for AddReactionError<'_> { 44 52 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 45 53 match self { ··· 64 72 } 65 73 Ok(()) 66 74 } 67 - Self::Unknown(_) => write!(f, "Unknown error"), 75 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 68 76 } 69 77 } 70 - } 78 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/delete_message_for_self.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub message_id: jacquard_common::CowStr<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 14 20 #[serde(flatten)] 15 21 #[serde(borrow)] 16 22 pub value: crate::chat_bsky::convo::DeletedMessageView<'a>, 17 - } 23 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/get_convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetConvoParams<'a> { 4 9 #[serde(borrow)] 5 10 pub convo_id: jacquard_common::CowStr<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetConvoOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub convo: crate::chat_bsky::convo::ConvoView<'a>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/get_convo_availability.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetConvoAvailabilityParams<'a> { 4 9 #[serde(borrow)] 5 10 pub members: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 12 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 19 #[serde(borrow)] 14 20 pub convo: std::option::Option<crate::chat_bsky::convo::ConvoView<'a>>, 15 - } 21 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/get_convo_for_members.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetConvoForMembersParams<'a> { 4 9 #[serde(borrow)] 5 10 pub members: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetConvoForMembersOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub convo: crate::chat_bsky::convo::ConvoView<'a>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/get_log.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetLogParams<'a> { ··· 5 10 #[serde(borrow)] 6 11 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] ··· 14 20 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 15 21 #[serde(borrow)] 16 22 pub logs: Vec<jacquard_common::types::value::Data<'a>>, 17 - } 23 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/get_messages.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetMessagesParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 #[serde(borrow)] 20 26 pub messages: Vec<jacquard_common::types::value::Data<'a>>, 21 - } 27 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/leave_convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub convo_id: jacquard_common::CowStr<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] ··· 13 19 pub convo_id: jacquard_common::CowStr<'a>, 14 20 #[serde(borrow)] 15 21 pub rev: jacquard_common::CowStr<'a>, 16 - } 22 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/list_convos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListConvosParams<'a> { ··· 13 18 #[serde(borrow)] 14 19 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 22 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 29 #[serde(borrow)] 24 30 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 25 - } 31 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/mute_convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub convo_id: jacquard_common::CowStr<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] 11 17 pub struct MuteConvoOutput<'a> { 12 18 #[serde(borrow)] 13 19 pub convo: crate::chat_bsky::convo::ConvoView<'a>, 14 - } 20 + }
+10 -2
crates/jacquard-api/src/chat_bsky/convo/remove_reaction.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 9 14 #[serde(borrow)] 10 15 pub value: jacquard_common::CowStr<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(borrow)] 17 23 pub message: crate::chat_bsky::convo::MessageView<'a>, 18 24 } 25 + 19 26 #[jacquard_derive::open_union] 20 27 #[derive( 21 28 serde::Serialize, ··· 37 44 #[serde(rename = "ReactionInvalidValue")] 38 45 ReactionInvalidValue(std::option::Option<String>), 39 46 } 47 + 40 48 impl std::fmt::Display for RemoveReactionError<'_> { 41 49 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 42 50 match self { ··· 54 62 } 55 63 Ok(()) 56 64 } 57 - Self::Unknown(_) => write!(f, "Unknown error"), 65 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 58 66 } 59 67 } 60 - } 68 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/send_message.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub message: crate::chat_bsky::convo::MessageInput<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 14 20 #[serde(flatten)] 15 21 #[serde(borrow)] 16 22 pub value: crate::chat_bsky::convo::MessageView<'a>, 17 - } 23 + }
+8 -1
crates/jacquard-api/src/chat_bsky/convo/send_message_batch.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub message: crate::chat_bsky::convo::MessageInput<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 14 20 #[serde(borrow)] 15 21 pub items: Vec<jacquard_common::types::value::Data<'a>>, 16 22 } 23 + 17 24 #[jacquard_derive::lexicon] 18 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 26 #[serde(rename_all = "camelCase")] 20 27 pub struct SendMessageBatchOutput<'a> { 21 28 #[serde(borrow)] 22 29 pub items: Vec<crate::chat_bsky::convo::MessageView<'a>>, 23 - } 30 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/unmute_convo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub convo_id: jacquard_common::CowStr<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] 11 17 pub struct UnmuteConvoOutput<'a> { 12 18 #[serde(borrow)] 13 19 pub convo: crate::chat_bsky::convo::ConvoView<'a>, 14 - } 20 + }
+8 -1
crates/jacquard-api/src/chat_bsky/convo/update_all_read.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 #[serde(borrow)] 7 12 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct UpdateAllReadOutput<'a> { 19 + ///The count of updated convos. 13 20 pub updated_count: i64, 14 - } 21 + }
+7 -1
crates/jacquard-api/src/chat_bsky/convo/update_read.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 #[serde(borrow)] 9 14 pub message_id: std::option::Option<jacquard_common::CowStr<'a>>, 10 15 } 16 + 11 17 #[jacquard_derive::lexicon] 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] 14 20 pub struct UpdateReadOutput<'a> { 15 21 #[serde(borrow)] 16 22 pub convo: crate::chat_bsky::convo::ConvoView<'a>, 17 - } 23 + }
+6 -1
crates/jacquard-api/src/chat_bsky/moderation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod get_actor_metadata; 2 7 pub mod get_message_context; 3 - pub mod update_actor_access; 8 + pub mod update_actor_access;
+8 -1
crates/jacquard-api/src/chat_bsky/moderation/get_actor_metadata.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetActorMetadataParams<'a> { 4 9 #[serde(borrow)] 5 10 pub actor: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 15 21 #[serde(borrow)] 16 22 pub month: jacquard_common::types::value::Data<'a>, 17 23 } 24 + 18 25 #[jacquard_derive::lexicon] 19 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 27 #[serde(rename_all = "camelCase")] ··· 23 30 pub convos_started: i64, 24 31 pub messages_received: i64, 25 32 pub messages_sent: i64, 26 - } 33 + }
+7 -1
crates/jacquard-api/src/chat_bsky/moderation/get_message_context.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetMessageContextParams<'a> { ··· 11 16 #[serde(borrow)] 12 17 pub message_id: jacquard_common::CowStr<'a>, 13 18 } 19 + 14 20 #[jacquard_derive::lexicon] 15 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 22 #[serde(rename_all = "camelCase")] 17 23 pub struct GetMessageContextOutput<'a> { 18 24 #[serde(borrow)] 19 25 pub messages: Vec<jacquard_common::types::value::Data<'a>>, 20 - } 26 + }
+6 -1
crates/jacquard-api/src/chat_bsky/moderation/update_actor_access.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 14 #[serde(borrow)] 10 15 pub r#ref: std::option::Option<jacquard_common::CowStr<'a>>, 11 - } 16 + }
+6 -1
crates/jacquard-api/src/com_atproto.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod admin; 2 7 pub mod identity; 3 8 pub mod label; ··· 6 11 pub mod repo; 7 12 pub mod server; 8 13 pub mod sync; 9 - pub mod temp; 14 + pub mod temp;
+27 -17
crates/jacquard-api/src/com_atproto/admin.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod delete_account; 7 + pub mod disable_account_invites; 8 + pub mod disable_invite_codes; 9 + pub mod enable_account_invites; 10 + pub mod get_account_info; 11 + pub mod get_account_infos; 12 + pub mod get_invite_codes; 13 + pub mod get_subject_status; 14 + pub mod search_accounts; 15 + pub mod send_email; 16 + pub mod update_account_email; 17 + pub mod update_account_handle; 18 + pub mod update_account_password; 19 + pub mod update_account_signing_key; 20 + pub mod update_subject_status; 21 + 1 22 #[jacquard_derive::lexicon] 2 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 24 #[serde(rename_all = "camelCase")] ··· 35 56 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 57 #[serde(borrow)] 37 58 pub threat_signatures: std::option::Option< 38 - Vec<jacquard_common::types::value::Data<'a>>, 59 + Vec<crate::com_atproto::admin::ThreatSignature<'a>>, 39 60 >, 40 61 } 62 + 41 63 #[jacquard_derive::lexicon] 42 64 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 43 65 #[serde(rename_all = "camelCase")] ··· 50 72 #[serde(borrow)] 51 73 pub record_uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 52 74 } 75 + 53 76 #[jacquard_derive::lexicon] 54 77 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 78 #[serde(rename_all = "camelCase")] ··· 57 80 #[serde(borrow)] 58 81 pub did: jacquard_common::types::string::Did<'a>, 59 82 } 83 + 60 84 #[jacquard_derive::lexicon] 61 85 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 62 86 #[serde(rename_all = "camelCase")] ··· 66 90 #[serde(borrow)] 67 91 pub r#ref: std::option::Option<jacquard_common::CowStr<'a>>, 68 92 } 93 + 69 94 #[jacquard_derive::lexicon] 70 95 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 71 96 #[serde(rename_all = "camelCase")] ··· 74 99 pub property: jacquard_common::CowStr<'a>, 75 100 #[serde(borrow)] 76 101 pub value: jacquard_common::CowStr<'a>, 77 - } 78 - pub mod delete_account; 79 - pub mod disable_account_invites; 80 - pub mod disable_invite_codes; 81 - pub mod enable_account_invites; 82 - pub mod get_account_info; 83 - pub mod get_account_infos; 84 - pub mod get_invite_codes; 85 - pub mod get_subject_status; 86 - pub mod search_accounts; 87 - pub mod send_email; 88 - pub mod update_account_email; 89 - pub mod update_account_handle; 90 - pub mod update_account_password; 91 - pub mod update_account_signing_key; 92 - pub mod update_subject_status; 102 + }
+6 -1
crates/jacquard-api/src/com_atproto/admin/delete_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeleteAccountInput<'a> { 5 10 #[serde(borrow)] 6 11 pub did: jacquard_common::types::string::Did<'a>, 7 - } 12 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/disable_account_invites.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DisableAccountInvitesInput<'a> { 5 10 #[serde(borrow)] 6 11 pub account: jacquard_common::types::string::Did<'a>, 12 + ///Optional reason for disabled invites. 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 #[serde(borrow)] 9 15 pub note: std::option::Option<jacquard_common::CowStr<'a>>, 10 - } 16 + }
+6 -1
crates/jacquard-api/src/com_atproto/admin/disable_invite_codes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 14 #[serde(borrow)] 10 15 pub codes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 11 - } 16 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/enable_account_invites.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct EnableAccountInvitesInput<'a> { 5 10 #[serde(borrow)] 6 11 pub account: jacquard_common::types::string::Did<'a>, 12 + ///Optional reason for enabled invites. 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 #[serde(borrow)] 9 15 pub note: std::option::Option<jacquard_common::CowStr<'a>>, 10 - } 16 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/get_account_info.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetAccountInfoParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 #[serde(flatten)] 12 18 #[serde(borrow)] 13 19 pub value: crate::com_atproto::admin::AccountView<'a>, 14 - } 20 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/get_account_infos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetAccountInfosParams<'a> { 4 9 #[serde(borrow)] 5 10 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetAccountInfosOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub infos: Vec<crate::com_atproto::admin::AccountView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/get_invite_codes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetInviteCodesParams<'a> { ··· 10 15 #[serde(borrow)] 11 16 pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 26 #[serde(borrow)] 21 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 22 - } 28 + }
+8 -1
crates/jacquard-api/src/com_atproto/admin/get_subject_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSubjectStatusParams<'a> { ··· 11 16 #[serde(borrow)] 12 17 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 13 18 } 19 + 14 20 #[jacquard_derive::lexicon] 15 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 22 #[serde(rename_all = "camelCase")] ··· 24 30 #[serde(borrow)] 25 31 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 26 32 } 33 + 27 34 #[jacquard_derive::open_union] 28 35 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 36 #[serde(tag = "$type")] ··· 35 42 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 36 43 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 37 44 DefsRepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>), 38 - } 45 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/search_accounts.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchAccountsParams<'a> { ··· 10 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 16 pub limit: std::option::Option<i64>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 26 #[serde(borrow)] 21 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 22 - } 28 + }
+8 -1
crates/jacquard-api/src/com_atproto/admin/send_email.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct SendEmailInput<'a> { 10 + ///Additional comment by the sender that won't be used in the email itself but helpful to provide more context for moderators/reviewers 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, ··· 15 21 #[serde(borrow)] 16 22 pub subject: std::option::Option<jacquard_common::CowStr<'a>>, 17 23 } 24 + 18 25 #[jacquard_derive::lexicon] 19 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 27 #[serde(rename_all = "camelCase")] 21 28 pub struct SendEmailOutput<'a> { 22 29 pub sent: bool, 23 - } 30 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/update_account_email.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateAccountEmailInput<'a> { 10 + ///The handle or DID of the repo. 5 11 #[serde(borrow)] 6 12 pub account: jacquard_common::types::ident::AtIdentifier<'a>, 7 13 #[serde(borrow)] 8 14 pub email: jacquard_common::CowStr<'a>, 9 - } 15 + }
+6 -1
crates/jacquard-api/src/com_atproto/admin/update_account_handle.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub did: jacquard_common::types::string::Did<'a>, 7 12 #[serde(borrow)] 8 13 pub handle: jacquard_common::types::string::Handle<'a>, 9 - } 14 + }
+6 -1
crates/jacquard-api/src/com_atproto/admin/update_account_password.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub did: jacquard_common::types::string::Did<'a>, 7 12 #[serde(borrow)] 8 13 pub password: jacquard_common::CowStr<'a>, 9 - } 14 + }
+7 -1
crates/jacquard-api/src/com_atproto/admin/update_account_signing_key.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateAccountSigningKeyInput<'a> { 5 10 #[serde(borrow)] 6 11 pub did: jacquard_common::types::string::Did<'a>, 12 + ///Did-key formatted public key 7 13 #[serde(borrow)] 8 14 pub signing_key: jacquard_common::types::string::Did<'a>, 9 - } 15 + }
+9 -1
crates/jacquard-api/src/com_atproto/admin/update_subject_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 11 16 #[serde(borrow)] 12 17 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 13 18 } 19 + 14 20 #[jacquard_derive::open_union] 15 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 22 #[serde(tag = "$type")] ··· 23 29 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 24 30 DefsRepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>), 25 31 } 32 + 26 33 #[jacquard_derive::lexicon] 27 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 35 #[serde(rename_all = "camelCase")] ··· 33 40 #[serde(borrow)] 34 41 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>, 35 42 } 43 + 36 44 #[jacquard_derive::open_union] 37 45 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 46 #[serde(tag = "$type")] ··· 44 52 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 45 53 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")] 46 54 DefsRepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>), 47 - } 55 + }
+18 -10
crates/jacquard-api/src/com_atproto/identity.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_recommended_did_credentials; 7 + pub mod refresh_identity; 8 + pub mod request_plc_operation_signature; 9 + pub mod resolve_did; 10 + pub mod resolve_handle; 11 + pub mod resolve_identity; 12 + pub mod sign_plc_operation; 13 + pub mod submit_plc_operation; 14 + pub mod update_handle; 15 + 1 16 #[jacquard_derive::lexicon] 2 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 18 #[serde(rename_all = "camelCase")] 4 19 pub struct IdentityInfo<'a> { 5 20 #[serde(borrow)] 6 21 pub did: jacquard_common::types::string::Did<'a>, 22 + ///The complete DID document for the identity. 7 23 #[serde(borrow)] 8 24 pub did_doc: jacquard_common::types::value::Data<'a>, 25 + ///The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document. 9 26 #[serde(borrow)] 10 27 pub handle: jacquard_common::types::string::Handle<'a>, 11 - } 12 - pub mod get_recommended_did_credentials; 13 - pub mod refresh_identity; 14 - pub mod request_plc_operation_signature; 15 - pub mod resolve_did; 16 - pub mod resolve_handle; 17 - pub mod resolve_identity; 18 - pub mod sign_plc_operation; 19 - pub mod submit_plc_operation; 20 - pub mod update_handle; 28 + }
+10 -2
crates/jacquard-api/src/com_atproto/identity/refresh_identity.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub identifier: jacquard_common::types::ident::AtIdentifier<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] ··· 13 19 #[serde(borrow)] 14 20 pub value: crate::com_atproto::identity::IdentityInfo<'a>, 15 21 } 22 + 16 23 #[jacquard_derive::open_union] 17 24 #[derive( 18 25 serde::Serialize, ··· 37 44 #[serde(rename = "DidDeactivated")] 38 45 DidDeactivated(std::option::Option<String>), 39 46 } 47 + 40 48 impl std::fmt::Display for RefreshIdentityError<'_> { 41 49 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 42 50 match self { ··· 61 69 } 62 70 Ok(()) 63 71 } 64 - Self::Unknown(_) => write!(f, "Unknown error"), 72 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 65 73 } 66 74 } 67 - } 75 + }
+5
crates/jacquard-api/src/com_atproto/identity/request_plc_operation_signature.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 +
+11 -2
crates/jacquard-api/src/com_atproto/identity/resolve_did.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ResolveDidParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct ResolveDidOutput<'a> { 17 + ///The complete DID document for the identity. 11 18 #[serde(borrow)] 12 19 pub did_doc: jacquard_common::types::value::Data<'a>, 13 20 } 21 + 14 22 #[jacquard_derive::open_union] 15 23 #[derive( 16 24 serde::Serialize, ··· 32 40 #[serde(rename = "DidDeactivated")] 33 41 DidDeactivated(std::option::Option<String>), 34 42 } 43 + 35 44 impl std::fmt::Display for ResolveDidError<'_> { 36 45 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 37 46 match self { ··· 49 58 } 50 59 Ok(()) 51 60 } 52 - Self::Unknown(_) => write!(f, "Unknown error"), 61 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 53 62 } 54 63 } 55 - } 64 + }
+10 -2
crates/jacquard-api/src/com_atproto/identity/resolve_handle.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ResolveHandleParams<'a> { 4 9 #[serde(borrow)] 5 10 pub handle: jacquard_common::types::string::Handle<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 #[serde(borrow)] 12 18 pub did: jacquard_common::types::string::Did<'a>, 13 19 } 20 + 14 21 #[jacquard_derive::open_union] 15 22 #[derive( 16 23 serde::Serialize, ··· 29 36 #[serde(rename = "HandleNotFound")] 30 37 HandleNotFound(std::option::Option<String>), 31 38 } 39 + 32 40 impl std::fmt::Display for ResolveHandleError<'_> { 33 41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 34 42 match self { ··· 39 47 } 40 48 Ok(()) 41 49 } 42 - Self::Unknown(_) => write!(f, "Unknown error"), 50 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 43 51 } 44 52 } 45 - } 53 + }
+10 -2
crates/jacquard-api/src/com_atproto/identity/resolve_identity.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ResolveIdentityParams<'a> { 4 9 #[serde(borrow)] 5 10 pub identifier: jacquard_common::types::ident::AtIdentifier<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 12 18 #[serde(borrow)] 13 19 pub value: crate::com_atproto::identity::IdentityInfo<'a>, 14 20 } 21 + 15 22 #[jacquard_derive::open_union] 16 23 #[derive( 17 24 serde::Serialize, ··· 36 43 #[serde(rename = "DidDeactivated")] 37 44 DidDeactivated(std::option::Option<String>), 38 45 } 46 + 39 47 impl std::fmt::Display for ResolveIdentityError<'_> { 40 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 41 49 match self { ··· 60 68 } 61 69 Ok(()) 62 70 } 63 - Self::Unknown(_) => write!(f, "Unknown error"), 71 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 64 72 } 65 73 } 66 - } 74 + }
+9 -1
crates/jacquard-api/src/com_atproto/identity/sign_plc_operation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 11 16 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 17 #[serde(borrow)] 13 18 pub services: std::option::Option<jacquard_common::types::value::Data<'a>>, 19 + ///A token received through com.atproto.identity.requestPlcOperationSignature 14 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 21 #[serde(borrow)] 16 22 pub token: std::option::Option<jacquard_common::CowStr<'a>>, ··· 20 26 jacquard_common::types::value::Data<'a>, 21 27 >, 22 28 } 29 + 23 30 #[jacquard_derive::lexicon] 24 31 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 32 #[serde(rename_all = "camelCase")] 26 33 pub struct SignPlcOperationOutput<'a> { 34 + ///A signed DID PLC operation. 27 35 #[serde(borrow)] 28 36 pub operation: jacquard_common::types::value::Data<'a>, 29 - } 37 + }
+6 -1
crates/jacquard-api/src/com_atproto/identity/submit_plc_operation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct SubmitPlcOperationInput<'a> { 5 10 #[serde(borrow)] 6 11 pub operation: jacquard_common::types::value::Data<'a>, 7 - } 12 + }
+7 -1
crates/jacquard-api/src/com_atproto/identity/update_handle.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateHandleInput<'a> { 10 + ///The new handle. 5 11 #[serde(borrow)] 6 12 pub handle: jacquard_common::types::string::Handle<'a>, 7 - } 13 + }
+40 -5
crates/jacquard-api/src/com_atproto/label.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod query_labels; 7 + pub mod subscribe_labels; 8 + 1 9 ///Metadata tag on an atproto resource (eg, repo or record). 2 10 #[jacquard_derive::lexicon] 3 11 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 12 #[serde(rename_all = "camelCase")] 5 13 pub struct Label<'a> { 14 + ///Optionally, CID specifying the specific version of 'uri' resource this label applies to. 6 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 16 #[serde(borrow)] 8 17 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 18 + ///Timestamp when this label was created. 9 19 pub cts: jacquard_common::types::string::Datetime, 20 + ///Timestamp at which this label expires (no longer applies). 10 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 22 pub exp: std::option::Option<jacquard_common::types::string::Datetime>, 23 + ///If true, this is a negation label, overwriting a previous label. 12 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 25 pub neg: std::option::Option<bool>, 26 + ///Signature of dag-cbor encoded label. 14 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 28 pub sig: std::option::Option<bytes::Bytes>, 29 + ///DID of the actor who created this label. 16 30 #[serde(borrow)] 17 31 pub src: jacquard_common::types::string::Did<'a>, 32 + ///AT URI of the record, repository (account), or other resource that this label applies to. 18 33 #[serde(borrow)] 19 34 pub uri: jacquard_common::types::string::Uri<'a>, 35 + ///The short string name of the value or type of this label. 20 36 #[serde(borrow)] 21 37 pub val: jacquard_common::CowStr<'a>, 38 + ///The AT Protocol version of the label object. 22 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 40 pub ver: std::option::Option<i64>, 24 41 } 42 + 25 43 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 26 44 pub enum LabelValue<'a> { 27 45 Hide, ··· 37 55 Gore, 38 56 Other(jacquard_common::CowStr<'a>), 39 57 } 58 + 40 59 impl<'a> LabelValue<'a> { 41 60 pub fn as_str(&self) -> &str { 42 61 match self { ··· 55 74 } 56 75 } 57 76 } 77 + 58 78 impl<'a> From<&'a str> for LabelValue<'a> { 59 79 fn from(s: &'a str) -> Self { 60 80 match s { ··· 73 93 } 74 94 } 75 95 } 96 + 76 97 impl<'a> From<String> for LabelValue<'a> { 77 98 fn from(s: String) -> Self { 78 99 match s.as_str() { ··· 91 112 } 92 113 } 93 114 } 115 + 94 116 impl<'a> AsRef<str> for LabelValue<'a> { 95 117 fn as_ref(&self) -> &str { 96 118 self.as_str() 97 119 } 98 120 } 121 + 99 122 impl<'a> serde::Serialize for LabelValue<'a> { 100 123 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 101 124 where ··· 104 127 serializer.serialize_str(self.as_str()) 105 128 } 106 129 } 130 + 107 131 impl<'de, 'a> serde::Deserialize<'de> for LabelValue<'a> 108 132 where 109 133 'de: 'a, ··· 116 140 Ok(Self::from(s)) 117 141 } 118 142 } 143 + 119 144 ///Declares a label value and its expected interpretations and behaviors. 120 145 #[jacquard_derive::lexicon] 121 146 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 122 147 #[serde(rename_all = "camelCase")] 123 148 pub struct LabelValueDefinition<'a> { 149 + ///Does the user need to have adult content enabled in order to configure this label? 124 150 #[serde(skip_serializing_if = "std::option::Option::is_none")] 125 151 pub adult_only: std::option::Option<bool>, 152 + ///What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing. 126 153 #[serde(borrow)] 127 154 pub blurs: jacquard_common::CowStr<'a>, 155 + ///The default setting for this label. 128 156 #[serde(skip_serializing_if = "std::option::Option::is_none")] 129 157 #[serde(borrow)] 130 158 pub default_setting: std::option::Option<jacquard_common::CowStr<'a>>, 159 + ///The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+). 131 160 #[serde(borrow)] 132 161 pub identifier: jacquard_common::CowStr<'a>, 133 162 #[serde(borrow)] 134 - pub locales: Vec<jacquard_common::types::value::Data<'a>>, 163 + pub locales: Vec<crate::com_atproto::label::LabelValueDefinitionStrings<'a>>, 164 + ///How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing. 135 165 #[serde(borrow)] 136 166 pub severity: jacquard_common::CowStr<'a>, 137 167 } 168 + 138 169 ///Strings which describe the label in the UI, localized into a specific language. 139 170 #[jacquard_derive::lexicon] 140 171 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 141 172 #[serde(rename_all = "camelCase")] 142 173 pub struct LabelValueDefinitionStrings<'a> { 174 + ///A longer description of what the label means and why it might be applied. 143 175 #[serde(borrow)] 144 176 pub description: jacquard_common::CowStr<'a>, 177 + ///The code of the language these strings are written in. 145 178 pub lang: jacquard_common::types::string::Language, 179 + ///A short human-readable name for the label. 146 180 #[serde(borrow)] 147 181 pub name: jacquard_common::CowStr<'a>, 148 182 } 183 + 149 184 ///Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel. 150 185 #[jacquard_derive::lexicon] 151 186 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 152 187 #[serde(rename_all = "camelCase")] 153 188 pub struct SelfLabel<'a> { 189 + ///The short string name of the value or type of this label. 154 190 #[serde(borrow)] 155 191 pub val: jacquard_common::CowStr<'a>, 156 192 } 193 + 157 194 ///Metadata tags on an atproto record, published by the author within the record. 158 195 #[jacquard_derive::lexicon] 159 196 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 160 197 #[serde(rename_all = "camelCase")] 161 198 pub struct SelfLabels<'a> { 162 199 #[serde(borrow)] 163 - pub values: Vec<jacquard_common::types::value::Data<'a>>, 164 - } 165 - pub mod query_labels; 166 - pub mod subscribe_labels; 200 + pub values: Vec<crate::com_atproto::label::SelfLabel<'a>>, 201 + }
+7 -1
crates/jacquard-api/src/com_atproto/label/query_labels.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct QueryLabelsParams<'a> { ··· 12 17 #[serde(borrow)] 13 18 pub uri_patterns: Vec<jacquard_common::CowStr<'a>>, 14 19 } 20 + 15 21 #[jacquard_derive::lexicon] 16 22 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 23 #[serde(rename_all = "camelCase")] ··· 21 27 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 22 28 #[serde(borrow)] 23 29 pub labels: Vec<crate::com_atproto::label::Label<'a>>, 24 - } 30 + }
+12 -2
crates/jacquard-api/src/com_atproto/label/subscribe_labels.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 #[serde(borrow)] 9 14 pub name: jacquard_common::CowStr<'a>, 10 15 } 16 + 11 17 #[jacquard_derive::lexicon] 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] ··· 16 22 pub labels: Vec<crate::com_atproto::label::Label<'a>>, 17 23 pub seq: i64, 18 24 } 25 + 19 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 27 #[serde(rename_all = "camelCase")] 21 28 pub struct SubscribeLabelsParams { 22 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 30 pub cursor: std::option::Option<i64>, 24 31 } 32 + 25 33 #[jacquard_derive::open_union] 26 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 35 #[serde(tag = "$type")] ··· 32 40 #[serde(rename = "#info")] 33 41 Info(Box<jacquard_common::types::value::Data<'a>>), 34 42 } 43 + 35 44 #[jacquard_derive::open_union] 36 45 #[derive( 37 46 serde::Serialize, ··· 49 58 #[serde(rename = "FutureCursor")] 50 59 FutureCursor(std::option::Option<String>), 51 60 } 61 + 52 62 impl std::fmt::Display for SubscribeLabelsError<'_> { 53 63 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 54 64 match self { ··· 59 69 } 60 70 Ok(()) 61 71 } 62 - Self::Unknown(_) => write!(f, "Unknown error"), 72 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 63 73 } 64 74 } 65 - } 75 + }
+6 -1
crates/jacquard-api/src/com_atproto/lexicon.rs
··· 1 - pub mod schema; 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod schema;
+7 -1
crates/jacquard-api/src/com_atproto/lexicon/schema.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Representation of Lexicon schemas themselves, when published as atproto records. Note that the schema language is not defined in Lexicon; this meta schema currently only includes a single version field ('lexicon'). See the atproto specifications for description of the other expected top-level fields ('id', 'defs', etc). 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Schema<'a> { 11 + ///Indicates the 'version' of the Lexicon language. Must be '1' for the current atproto/Lexicon schema system. 6 12 pub lexicon: i64, 7 - } 13 + }
+21 -2
crates/jacquard-api/src/com_atproto/moderation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod create_report; 7 + 1 8 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 2 9 pub enum ReasonType<'a> { 3 10 ComAtprotoModerationDefsReasonSpam, ··· 54 61 ToolsOzoneReportDefsReasonCivicImpersonation, 55 62 Other(jacquard_common::CowStr<'a>), 56 63 } 64 + 57 65 impl<'a> ReasonType<'a> { 58 66 pub fn as_str(&self) -> &str { 59 67 match self { ··· 217 225 } 218 226 } 219 227 } 228 + 220 229 impl<'a> From<&'a str> for ReasonType<'a> { 221 230 fn from(s: &'a str) -> Self { 222 231 match s { ··· 380 389 } 381 390 } 382 391 } 392 + 383 393 impl<'a> From<String> for ReasonType<'a> { 384 394 fn from(s: String) -> Self { 385 395 match s.as_str() { ··· 543 553 } 544 554 } 545 555 } 556 + 546 557 impl<'a> AsRef<str> for ReasonType<'a> { 547 558 fn as_ref(&self) -> &str { 548 559 self.as_str() 549 560 } 550 561 } 562 + 551 563 impl<'a> serde::Serialize for ReasonType<'a> { 552 564 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 553 565 where ··· 556 568 serializer.serialize_str(self.as_str()) 557 569 } 558 570 } 571 + 559 572 impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a> 560 573 where 561 574 'de: 'a, ··· 568 581 Ok(Self::from(s)) 569 582 } 570 583 } 584 + 571 585 ///Tag describing a type of subject that might be reported. 572 586 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 573 587 pub enum SubjectType<'a> { ··· 576 590 Chat, 577 591 Other(jacquard_common::CowStr<'a>), 578 592 } 593 + 579 594 impl<'a> SubjectType<'a> { 580 595 pub fn as_str(&self) -> &str { 581 596 match self { ··· 586 601 } 587 602 } 588 603 } 604 + 589 605 impl<'a> From<&'a str> for SubjectType<'a> { 590 606 fn from(s: &'a str) -> Self { 591 607 match s { ··· 596 612 } 597 613 } 598 614 } 615 + 599 616 impl<'a> From<String> for SubjectType<'a> { 600 617 fn from(s: String) -> Self { 601 618 match s.as_str() { ··· 606 623 } 607 624 } 608 625 } 626 + 609 627 impl<'a> AsRef<str> for SubjectType<'a> { 610 628 fn as_ref(&self) -> &str { 611 629 self.as_str() 612 630 } 613 631 } 632 + 614 633 impl<'a> serde::Serialize for SubjectType<'a> { 615 634 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 616 635 where ··· 619 638 serializer.serialize_str(self.as_str()) 620 639 } 621 640 } 641 + 622 642 impl<'de, 'a> serde::Deserialize<'de> for SubjectType<'a> 623 643 where 624 644 'de: 'a, ··· 630 650 let s = <&'de str>::deserialize(deserializer)?; 631 651 Ok(Self::from(s)) 632 652 } 633 - } 634 - pub mod create_report; 653 + }
+14 -1
crates/jacquard-api/src/com_atproto/moderation/create_report.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 11 #[serde(borrow)] 7 12 pub mod_tool: std::option::Option<jacquard_common::types::value::Data<'a>>, 13 + ///Additional context about the content and violation. 8 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 15 #[serde(borrow)] 10 16 pub reason: std::option::Option<jacquard_common::CowStr<'a>>, 17 + ///Indicates the broad category of violation the report is for. 11 18 #[serde(borrow)] 12 19 pub reason_type: crate::com_atproto::moderation::ReasonType<'a>, 13 20 #[serde(borrow)] 14 21 pub subject: CreateReportInputRecordSubject<'a>, 15 22 } 23 + 16 24 #[jacquard_derive::open_union] 17 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 26 #[serde(tag = "$type")] ··· 23 31 #[serde(rename = "com.atproto.repo.strongRef")] 24 32 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 25 33 } 34 + 26 35 #[jacquard_derive::lexicon] 27 36 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 37 #[serde(rename_all = "camelCase")] ··· 39 48 #[serde(borrow)] 40 49 pub subject: CreateReportOutputRecordSubject<'a>, 41 50 } 51 + 42 52 #[jacquard_derive::open_union] 43 53 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 54 #[serde(tag = "$type")] ··· 49 59 #[serde(rename = "com.atproto.repo.strongRef")] 50 60 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 51 61 } 62 + 52 63 ///Moderation tool information for tracing the source of the action 53 64 #[jacquard_derive::lexicon] 54 65 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 66 #[serde(rename_all = "camelCase")] 56 67 pub struct ModTool<'a> { 68 + ///Additional arbitrary metadata about the source 57 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 70 #[serde(borrow)] 59 71 pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>, 72 + ///Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome') 60 73 #[serde(borrow)] 61 74 pub name: jacquard_common::CowStr<'a>, 62 - } 75 + }
+14 -8
crates/jacquard-api/src/com_atproto/repo.rs
··· 1 - #[jacquard_derive::lexicon] 2 - #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 - #[serde(rename_all = "camelCase")] 4 - pub struct CommitMeta<'a> { 5 - #[serde(borrow)] 6 - pub cid: jacquard_common::types::string::Cid<'a>, 7 - pub rev: jacquard_common::types::string::Tid, 8 - } 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 9 6 pub mod apply_writes; 10 7 pub mod create_record; 11 8 pub mod delete_record; ··· 17 14 pub mod put_record; 18 15 pub mod strong_ref; 19 16 pub mod upload_blob; 17 + 18 + #[jacquard_derive::lexicon] 19 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 + #[serde(rename_all = "camelCase")] 21 + pub struct CommitMeta<'a> { 22 + #[serde(borrow)] 23 + pub cid: jacquard_common::types::string::Cid<'a>, 24 + pub rev: jacquard_common::types::string::Tid, 25 + }
+19 -2
crates/jacquard-api/src/com_atproto/repo/apply_writes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Operation which creates a new record. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 5 10 pub struct Create<'a> { 6 11 #[serde(borrow)] 7 12 pub collection: jacquard_common::types::string::Nsid<'a>, 13 + ///NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility. 8 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 15 #[serde(borrow)] 10 16 pub rkey: std::option::Option< ··· 15 21 #[serde(borrow)] 16 22 pub value: jacquard_common::types::value::Data<'a>, 17 23 } 24 + 18 25 #[jacquard_derive::lexicon] 19 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 27 #[serde(rename_all = "camelCase")] ··· 27 34 #[serde(borrow)] 28 35 pub validation_status: std::option::Option<jacquard_common::CowStr<'a>>, 29 36 } 37 + 30 38 ///Operation which deletes an existing record. 31 39 #[jacquard_derive::lexicon] 32 40 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 39 47 jacquard_common::types::string::Rkey<'a>, 40 48 >, 41 49 } 50 + 42 51 #[jacquard_derive::lexicon] 43 52 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 44 53 #[serde(rename_all = "camelCase")] ··· 47 56 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 48 57 #[serde(rename_all = "camelCase")] 49 58 pub struct ApplyWritesInput<'a> { 59 + ///The handle or DID of the repo (aka, current account). 50 60 #[serde(borrow)] 51 61 pub repo: jacquard_common::types::ident::AtIdentifier<'a>, 62 + ///If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations. 52 63 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 64 #[serde(borrow)] 54 65 pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>, 66 + ///Can be set to 'false' to skip Lexicon schema validation of record data across all operations, 'true' to require it, or leave unset to validate only for known Lexicons. 55 67 #[serde(skip_serializing_if = "std::option::Option::is_none")] 56 68 pub validate: std::option::Option<bool>, 57 69 #[serde(borrow)] 58 70 pub writes: Vec<jacquard_common::types::value::Data<'a>>, 59 71 } 72 + 60 73 #[jacquard_derive::lexicon] 61 74 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 62 75 #[serde(rename_all = "camelCase")] ··· 68 81 #[serde(borrow)] 69 82 pub results: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 70 83 } 84 + 71 85 #[jacquard_derive::open_union] 72 86 #[derive( 73 87 serde::Serialize, ··· 86 100 #[serde(rename = "InvalidSwap")] 87 101 InvalidSwap(std::option::Option<String>), 88 102 } 103 + 89 104 impl std::fmt::Display for ApplyWritesError<'_> { 90 105 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 91 106 match self { ··· 96 111 } 97 112 Ok(()) 98 113 } 99 - Self::Unknown(_) => write!(f, "Unknown error"), 114 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 100 115 } 101 116 } 102 117 } 118 + 103 119 ///Operation which updates an existing record. 104 120 #[jacquard_derive::lexicon] 105 121 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 114 130 #[serde(borrow)] 115 131 pub value: jacquard_common::types::value::Data<'a>, 116 132 } 133 + 117 134 #[jacquard_derive::lexicon] 118 135 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 119 136 #[serde(rename_all = "camelCase")] ··· 125 142 #[serde(skip_serializing_if = "std::option::Option::is_none")] 126 143 #[serde(borrow)] 127 144 pub validation_status: std::option::Option<jacquard_common::CowStr<'a>>, 128 - } 145 + }
+16 -2
crates/jacquard-api/src/com_atproto/repo/create_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct CreateRecordInput<'a> { 10 + ///The NSID of the record collection. 5 11 #[serde(borrow)] 6 12 pub collection: jacquard_common::types::string::Nsid<'a>, 13 + ///The record itself. Must contain a $type field. 7 14 #[serde(borrow)] 8 15 pub record: jacquard_common::types::value::Data<'a>, 16 + ///The handle or DID of the repo (aka, current account). 9 17 #[serde(borrow)] 10 18 pub repo: jacquard_common::types::ident::AtIdentifier<'a>, 19 + ///The Record Key. 11 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 21 #[serde(borrow)] 13 22 pub rkey: std::option::Option< ··· 15 24 jacquard_common::types::string::Rkey<'a>, 16 25 >, 17 26 >, 27 + ///Compare and swap with the previous commit by CID. 18 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 29 #[serde(borrow)] 20 30 pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>, 31 + ///Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons. 21 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 33 pub validate: std::option::Option<bool>, 23 34 } 35 + 24 36 #[jacquard_derive::lexicon] 25 37 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 38 #[serde(rename_all = "camelCase")] ··· 36 48 #[serde(borrow)] 37 49 pub validation_status: std::option::Option<jacquard_common::CowStr<'a>>, 38 50 } 51 + 39 52 #[jacquard_derive::open_union] 40 53 #[derive( 41 54 serde::Serialize, ··· 54 67 #[serde(rename = "InvalidSwap")] 55 68 InvalidSwap(std::option::Option<String>), 56 69 } 70 + 57 71 impl std::fmt::Display for CreateRecordError<'_> { 58 72 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 59 73 match self { ··· 64 78 } 65 79 Ok(()) 66 80 } 67 - Self::Unknown(_) => write!(f, "Unknown error"), 81 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 68 82 } 69 83 } 70 - } 84 + }
+15 -2
crates/jacquard-api/src/com_atproto/repo/delete_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeleteRecordInput<'a> { 10 + ///The NSID of the record collection. 5 11 #[serde(borrow)] 6 12 pub collection: jacquard_common::types::string::Nsid<'a>, 13 + ///The handle or DID of the repo (aka, current account). 7 14 #[serde(borrow)] 8 15 pub repo: jacquard_common::types::ident::AtIdentifier<'a>, 16 + ///The Record Key. 9 17 #[serde(borrow)] 10 18 pub rkey: jacquard_common::types::string::RecordKey< 11 19 jacquard_common::types::string::Rkey<'a>, 12 20 >, 21 + ///Compare and swap with the previous commit by CID. 13 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 23 #[serde(borrow)] 15 24 pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>, 25 + ///Compare and swap with the previous record by CID. 16 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 27 #[serde(borrow)] 18 28 pub swap_record: std::option::Option<jacquard_common::types::string::Cid<'a>>, 19 29 } 30 + 20 31 #[jacquard_derive::lexicon] 21 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 33 #[serde(rename_all = "camelCase")] ··· 25 36 #[serde(borrow)] 26 37 pub commit: std::option::Option<crate::com_atproto::repo::CommitMeta<'a>>, 27 38 } 39 + 28 40 #[jacquard_derive::open_union] 29 41 #[derive( 30 42 serde::Serialize, ··· 42 54 #[serde(rename = "InvalidSwap")] 43 55 InvalidSwap(std::option::Option<String>), 44 56 } 57 + 45 58 impl std::fmt::Display for DeleteRecordError<'_> { 46 59 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 47 60 match self { ··· 52 65 } 53 66 Ok(()) 54 67 } 55 - Self::Unknown(_) => write!(f, "Unknown error"), 68 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 56 69 } 57 70 } 58 - } 71 + }
+10 -1
crates/jacquard-api/src/com_atproto/repo/describe_repo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct DescribeRepoParams<'a> { 4 9 #[serde(borrow)] 5 10 pub repo: jacquard_common::types::ident::AtIdentifier<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct DescribeRepoOutput<'a> { 17 + ///List of all the collections (NSIDs) for which this repo contains at least one record. 11 18 #[serde(borrow)] 12 19 pub collections: Vec<jacquard_common::types::string::Nsid<'a>>, 13 20 #[serde(borrow)] 14 21 pub did: jacquard_common::types::string::Did<'a>, 22 + ///The complete DID document for this account. 15 23 #[serde(borrow)] 16 24 pub did_doc: jacquard_common::types::value::Data<'a>, 17 25 #[serde(borrow)] 18 26 pub handle: jacquard_common::types::string::Handle<'a>, 27 + ///Indicates if handle is currently valid (resolves bi-directionally) 19 28 pub handle_is_correct: bool, 20 - } 29 + }
+10 -2
crates/jacquard-api/src/com_atproto/repo/get_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRecordParams<'a> { ··· 13 18 jacquard_common::types::string::Rkey<'a>, 14 19 >, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 25 31 #[serde(borrow)] 26 32 pub value: jacquard_common::types::value::Data<'a>, 27 33 } 34 + 28 35 #[jacquard_derive::open_union] 29 36 #[derive( 30 37 serde::Serialize, ··· 42 49 #[serde(rename = "RecordNotFound")] 43 50 RecordNotFound(std::option::Option<String>), 44 51 } 52 + 45 53 impl std::fmt::Display for GetRecordError<'_> { 46 54 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 47 55 match self { ··· 52 60 } 53 61 Ok(()) 54 62 } 55 - Self::Unknown(_) => write!(f, "Unknown error"), 63 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 56 64 } 57 65 } 58 - } 66 + }
+6 -1
crates/jacquard-api/src/com_atproto/repo/import_repo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 - pub struct ImportRepoInput<'a> {} 9 + pub struct ImportRepoInput<'a> {}
+8 -1
crates/jacquard-api/src/com_atproto/repo/list_missing_blobs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListMissingBlobsParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 17 23 #[serde(borrow)] 18 24 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 19 25 } 26 + 20 27 #[jacquard_derive::lexicon] 21 28 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 29 #[serde(rename_all = "camelCase")] ··· 25 32 pub cid: jacquard_common::types::string::Cid<'a>, 26 33 #[serde(borrow)] 27 34 pub record_uri: jacquard_common::types::string::AtUri<'a>, 28 - } 35 + }
+8 -1
crates/jacquard-api/src/com_atproto/repo/list_records.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListRecordsParams<'a> { ··· 13 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 19 pub reverse: std::option::Option<bool>, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 23 29 #[serde(borrow)] 24 30 pub records: Vec<jacquard_common::types::value::Data<'a>>, 25 31 } 32 + 26 33 #[jacquard_derive::lexicon] 27 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 35 #[serde(rename_all = "camelCase")] ··· 33 40 pub uri: jacquard_common::types::string::AtUri<'a>, 34 41 #[serde(borrow)] 35 42 pub value: jacquard_common::types::value::Data<'a>, 36 - } 43 + }
+17 -2
crates/jacquard-api/src/com_atproto/repo/put_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct PutRecordInput<'a> { 10 + ///The NSID of the record collection. 5 11 #[serde(borrow)] 6 12 pub collection: jacquard_common::types::string::Nsid<'a>, 13 + ///The record to write. 7 14 #[serde(borrow)] 8 15 pub record: jacquard_common::types::value::Data<'a>, 16 + ///The handle or DID of the repo (aka, current account). 9 17 #[serde(borrow)] 10 18 pub repo: jacquard_common::types::ident::AtIdentifier<'a>, 19 + ///The Record Key. 11 20 #[serde(borrow)] 12 21 pub rkey: jacquard_common::types::string::RecordKey< 13 22 jacquard_common::types::string::Rkey<'a>, 14 23 >, 24 + ///Compare and swap with the previous commit by CID. 15 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 16 26 #[serde(borrow)] 17 27 pub swap_commit: std::option::Option<jacquard_common::types::string::Cid<'a>>, 28 + ///Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation 18 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 30 #[serde(borrow)] 20 31 pub swap_record: std::option::Option<jacquard_common::types::string::Cid<'a>>, 32 + ///Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons. 21 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 34 pub validate: std::option::Option<bool>, 23 35 } 36 + 24 37 #[jacquard_derive::lexicon] 25 38 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 39 #[serde(rename_all = "camelCase")] ··· 36 49 #[serde(borrow)] 37 50 pub validation_status: std::option::Option<jacquard_common::CowStr<'a>>, 38 51 } 52 + 39 53 #[jacquard_derive::open_union] 40 54 #[derive( 41 55 serde::Serialize, ··· 53 67 #[serde(rename = "InvalidSwap")] 54 68 InvalidSwap(std::option::Option<String>), 55 69 } 70 + 56 71 impl std::fmt::Display for PutRecordError<'_> { 57 72 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 58 73 match self { ··· 63 78 } 64 79 Ok(()) 65 80 } 66 - Self::Unknown(_) => write!(f, "Unknown error"), 81 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 67 82 } 68 83 } 69 - } 84 + }
+6 -1
crates/jacquard-api/src/com_atproto/repo/strong_ref.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub cid: jacquard_common::types::string::Cid<'a>, 7 12 #[serde(borrow)] 8 13 pub uri: jacquard_common::types::string::AtUri<'a>, 9 - } 14 + }
+6 -1
crates/jacquard-api/src/com_atproto/repo/upload_blob.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 pub struct UploadBlobOutput<'a> { 9 14 #[serde(borrow)] 10 15 pub blob: jacquard_common::types::blob::Blob<'a>, 11 - } 16 + }
+31 -24
crates/jacquard-api/src/com_atproto/server.rs
··· 1 - #[jacquard_derive::lexicon] 2 - #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 - #[serde(rename_all = "camelCase")] 4 - pub struct InviteCode<'a> { 5 - pub available: i64, 6 - #[serde(borrow)] 7 - pub code: jacquard_common::CowStr<'a>, 8 - pub created_at: jacquard_common::types::string::Datetime, 9 - #[serde(borrow)] 10 - pub created_by: jacquard_common::CowStr<'a>, 11 - pub disabled: bool, 12 - #[serde(borrow)] 13 - pub for_account: jacquard_common::CowStr<'a>, 14 - #[serde(borrow)] 15 - pub uses: Vec<jacquard_common::types::value::Data<'a>>, 16 - } 17 - #[jacquard_derive::lexicon] 18 - #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 - #[serde(rename_all = "camelCase")] 20 - pub struct InviteCodeUse<'a> { 21 - pub used_at: jacquard_common::types::string::Datetime, 22 - #[serde(borrow)] 23 - pub used_by: jacquard_common::types::string::Did<'a>, 24 - } 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 25 6 pub mod activate_account; 26 7 pub mod check_account_status; 27 8 pub mod confirm_email; ··· 47 28 pub mod reset_password; 48 29 pub mod revoke_app_password; 49 30 pub mod update_email; 31 + 32 + #[jacquard_derive::lexicon] 33 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 + #[serde(rename_all = "camelCase")] 35 + pub struct InviteCode<'a> { 36 + pub available: i64, 37 + #[serde(borrow)] 38 + pub code: jacquard_common::CowStr<'a>, 39 + pub created_at: jacquard_common::types::string::Datetime, 40 + #[serde(borrow)] 41 + pub created_by: jacquard_common::CowStr<'a>, 42 + pub disabled: bool, 43 + #[serde(borrow)] 44 + pub for_account: jacquard_common::CowStr<'a>, 45 + #[serde(borrow)] 46 + pub uses: Vec<crate::com_atproto::server::InviteCodeUse<'a>>, 47 + } 48 + 49 + #[jacquard_derive::lexicon] 50 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 51 + #[serde(rename_all = "camelCase")] 52 + pub struct InviteCodeUse<'a> { 53 + pub used_at: jacquard_common::types::string::Datetime, 54 + #[serde(borrow)] 55 + pub used_by: jacquard_common::types::string::Did<'a>, 56 + }
+5
crates/jacquard-api/src/com_atproto/server/activate_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 +
+6 -1
crates/jacquard-api/src/com_atproto/server/check_account_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 13 18 #[serde(borrow)] 14 19 pub repo_rev: jacquard_common::CowStr<'a>, 15 20 pub valid_did: bool, 16 - } 21 + }
+9 -2
crates/jacquard-api/src/com_atproto/server/confirm_email.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub token: jacquard_common::CowStr<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::open_union] 11 17 #[derive( 12 18 serde::Serialize, ··· 30 36 #[serde(rename = "InvalidEmail")] 31 37 InvalidEmail(std::option::Option<String>), 32 38 } 39 + 33 40 impl std::fmt::Display for ConfirmEmailError<'_> { 34 41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 35 42 match self { ··· 61 68 } 62 69 Ok(()) 63 70 } 64 - Self::Unknown(_) => write!(f, "Unknown error"), 71 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 65 72 } 66 73 } 67 - } 74 + }
+17 -2
crates/jacquard-api/src/com_atproto/server/create_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct CreateAccountInput<'a> { 10 + ///Pre-existing atproto DID, being imported to a new account. 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub did: std::option::Option<jacquard_common::types::string::Did<'a>>, 8 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 15 #[serde(borrow)] 10 16 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 17 + ///Requested handle for the account. 11 18 #[serde(borrow)] 12 19 pub handle: jacquard_common::types::string::Handle<'a>, 13 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 21 #[serde(borrow)] 15 22 pub invite_code: std::option::Option<jacquard_common::CowStr<'a>>, 23 + ///Initial account password. May need to meet instance-specific password strength requirements. 16 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 25 #[serde(borrow)] 18 26 pub password: std::option::Option<jacquard_common::CowStr<'a>>, 27 + ///A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented. 19 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 29 #[serde(borrow)] 21 30 pub plc_op: std::option::Option<jacquard_common::types::value::Data<'a>>, 31 + ///DID PLC rotation key (aka, recovery key) to be included in PLC creation operation. 22 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 33 #[serde(borrow)] 24 34 pub recovery_key: std::option::Option<jacquard_common::CowStr<'a>>, ··· 29 39 #[serde(borrow)] 30 40 pub verification_phone: std::option::Option<jacquard_common::CowStr<'a>>, 31 41 } 42 + 32 43 #[jacquard_derive::lexicon] 33 44 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 45 #[serde(rename_all = "camelCase")] 35 46 pub struct CreateAccountOutput<'a> { 36 47 #[serde(borrow)] 37 48 pub access_jwt: jacquard_common::CowStr<'a>, 49 + ///The DID of the new account. 38 50 #[serde(borrow)] 39 51 pub did: jacquard_common::types::string::Did<'a>, 52 + ///Complete DID document. 40 53 #[serde(skip_serializing_if = "std::option::Option::is_none")] 41 54 #[serde(borrow)] 42 55 pub did_doc: std::option::Option<jacquard_common::types::value::Data<'a>>, ··· 45 58 #[serde(borrow)] 46 59 pub refresh_jwt: jacquard_common::CowStr<'a>, 47 60 } 61 + 48 62 #[jacquard_derive::open_union] 49 63 #[derive( 50 64 serde::Serialize, ··· 74 88 #[serde(rename = "IncompatibleDidDoc")] 75 89 IncompatibleDidDoc(std::option::Option<String>), 76 90 } 91 + 77 92 impl std::fmt::Display for CreateAccountError<'_> { 78 93 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 79 94 match self { ··· 126 141 } 127 142 Ok(()) 128 143 } 129 - Self::Unknown(_) => write!(f, "Unknown error"), 144 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 130 145 } 131 146 } 132 - } 147 + }
+13 -2
crates/jacquard-api/src/com_atproto/server/create_app_password.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 10 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 16 pub privileged: std::option::Option<bool>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] 16 22 pub struct CreateAppPasswordInput<'a> { 23 + ///A short name for the App Password, to help distinguish them. 17 24 #[serde(borrow)] 18 25 pub name: jacquard_common::CowStr<'a>, 26 + ///If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients. 19 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 28 pub privileged: std::option::Option<bool>, 21 29 } 30 + 22 31 #[jacquard_derive::lexicon] 23 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 33 #[serde(rename_all = "camelCase")] ··· 27 36 #[serde(borrow)] 28 37 pub value: jacquard_common::types::value::Data<'a>, 29 38 } 39 + 30 40 #[jacquard_derive::open_union] 31 41 #[derive( 32 42 serde::Serialize, ··· 44 54 #[serde(rename = "AccountTakedown")] 45 55 AccountTakedown(std::option::Option<String>), 46 56 } 57 + 47 58 impl std::fmt::Display for CreateAppPasswordError<'_> { 48 59 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 49 60 match self { ··· 54 65 } 55 66 Ok(()) 56 67 } 57 - Self::Unknown(_) => write!(f, "Unknown error"), 68 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 58 69 } 59 70 } 60 - } 71 + }
+7 -1
crates/jacquard-api/src/com_atproto/server/create_invite_code.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 pub for_account: std::option::Option<jacquard_common::types::string::Did<'a>>, 8 13 pub use_count: i64, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 19 pub struct CreateInviteCodeOutput<'a> { 14 20 #[serde(borrow)] 15 21 pub code: jacquard_common::CowStr<'a>, 16 - } 22 + }
+8 -1
crates/jacquard-api/src/com_atproto/server/create_invite_codes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub codes: Vec<jacquard_common::CowStr<'a>>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 17 23 pub for_accounts: std::option::Option<Vec<jacquard_common::types::string::Did<'a>>>, 18 24 pub use_count: i64, 19 25 } 26 + 20 27 #[jacquard_derive::lexicon] 21 28 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 29 #[serde(rename_all = "camelCase")] 23 30 pub struct CreateInviteCodesOutput<'a> { 24 31 #[serde(borrow)] 25 32 pub codes: Vec<jacquard_common::types::value::Data<'a>>, 26 - } 33 + }
+13 -2
crates/jacquard-api/src/com_atproto/server/create_session.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct CreateSessionInput<'a> { 10 + ///When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 pub allow_takendown: std::option::Option<bool>, 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 #[serde(borrow)] 9 15 pub auth_factor_token: std::option::Option<jacquard_common::CowStr<'a>>, 16 + ///Handle or other identifier supported by the server for the authenticating user. 10 17 #[serde(borrow)] 11 18 pub identifier: jacquard_common::CowStr<'a>, 12 19 #[serde(borrow)] 13 20 pub password: jacquard_common::CowStr<'a>, 14 21 } 22 + 15 23 #[jacquard_derive::lexicon] 16 24 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 25 #[serde(rename_all = "camelCase")] ··· 36 44 pub handle: jacquard_common::types::string::Handle<'a>, 37 45 #[serde(borrow)] 38 46 pub refresh_jwt: jacquard_common::CowStr<'a>, 47 + ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. 39 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 49 #[serde(borrow)] 41 50 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 42 51 } 52 + 43 53 #[jacquard_derive::open_union] 44 54 #[derive( 45 55 serde::Serialize, ··· 59 69 #[serde(rename = "AuthFactorTokenRequired")] 60 70 AuthFactorTokenRequired(std::option::Option<String>), 61 71 } 72 + 62 73 impl std::fmt::Display for CreateSessionError<'_> { 63 74 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 64 75 match self { ··· 76 87 } 77 88 Ok(()) 78 89 } 79 - Self::Unknown(_) => write!(f, "Unknown error"), 90 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 80 91 } 81 92 } 82 - } 93 + }
+7 -1
crates/jacquard-api/src/com_atproto/server/deactivate_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeactivateAccountInput<'a> { 10 + ///A recommendation to server as to how long they should hold onto the deactivated account before deleting. 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 pub delete_after: std::option::Option<jacquard_common::types::string::Datetime>, 7 - } 13 + }
+9 -2
crates/jacquard-api/src/com_atproto/server/delete_account.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 9 14 #[serde(borrow)] 10 15 pub token: jacquard_common::CowStr<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::open_union] 13 19 #[derive( 14 20 serde::Serialize, ··· 28 34 #[serde(rename = "InvalidToken")] 29 35 InvalidToken(std::option::Option<String>), 30 36 } 37 + 31 38 impl std::fmt::Display for DeleteAccountError<'_> { 32 39 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 33 40 match self { ··· 45 52 } 46 53 Ok(()) 47 54 } 48 - Self::Unknown(_) => write!(f, "Unknown error"), 55 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 49 56 } 50 57 } 51 - } 58 + }
+5
crates/jacquard-api/src/com_atproto/server/delete_session.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 +
+13 -1
crates/jacquard-api/src/com_atproto/server/describe_server.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 #[serde(borrow)] 7 12 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 17 23 #[serde(borrow)] 18 24 pub terms_of_service: std::option::Option<jacquard_common::types::string::Uri<'a>>, 19 25 } 26 + 20 27 #[jacquard_derive::lexicon] 21 28 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 29 #[serde(rename_all = "camelCase")] 23 30 pub struct DescribeServerOutput<'a> { 31 + ///List of domain suffixes that can be used in account handles. 24 32 #[serde(borrow)] 25 33 pub available_user_domains: Vec<jacquard_common::CowStr<'a>>, 34 + ///Contact information 26 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 36 #[serde(borrow)] 28 37 pub contact: std::option::Option<jacquard_common::types::value::Data<'a>>, 29 38 #[serde(borrow)] 30 39 pub did: jacquard_common::types::string::Did<'a>, 40 + ///If true, an invite code must be supplied to create an account on this instance. 31 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 42 pub invite_code_required: std::option::Option<bool>, 43 + ///URLs of service policy documents. 33 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 45 #[serde(borrow)] 35 46 pub links: std::option::Option<jacquard_common::types::value::Data<'a>>, 47 + ///If true, a phone verification token must be supplied to create an account on this instance. 36 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 49 pub phone_verification_required: std::option::Option<bool>, 38 - } 50 + }
+10 -2
crates/jacquard-api/src/com_atproto/server/get_account_invite_codes.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetAccountInviteCodesParams { ··· 6 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 12 pub include_used: std::option::Option<bool>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 13 19 #[serde(borrow)] 14 20 pub codes: Vec<crate::com_atproto::server::InviteCode<'a>>, 15 21 } 22 + 16 23 #[jacquard_derive::open_union] 17 24 #[derive( 18 25 serde::Serialize, ··· 30 37 #[serde(rename = "DuplicateCreate")] 31 38 DuplicateCreate(std::option::Option<String>), 32 39 } 40 + 33 41 impl std::fmt::Display for GetAccountInviteCodesError<'_> { 34 42 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 35 43 match self { ··· 40 48 } 41 49 Ok(()) 42 50 } 43 - Self::Unknown(_) => write!(f, "Unknown error"), 51 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 44 52 } 45 53 } 46 - } 54 + }
+10 -2
crates/jacquard-api/src/com_atproto/server/get_service_auth.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetServiceAuthParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub lxm: std::option::Option<jacquard_common::types::string::Nsid<'a>>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(borrow)] 17 23 pub token: jacquard_common::CowStr<'a>, 18 24 } 25 + 19 26 #[jacquard_derive::open_union] 20 27 #[derive( 21 28 serde::Serialize, ··· 34 41 #[serde(rename = "BadExpiration")] 35 42 BadExpiration(std::option::Option<String>), 36 43 } 44 + 37 45 impl std::fmt::Display for GetServiceAuthError<'_> { 38 46 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 39 47 match self { ··· 44 52 } 45 53 Ok(()) 46 54 } 47 - Self::Unknown(_) => write!(f, "Unknown error"), 55 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 48 56 } 49 57 } 50 - } 58 + }
+7 -1
crates/jacquard-api/src/com_atproto/server/get_session.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 18 23 pub email_confirmed: std::option::Option<bool>, 19 24 #[serde(borrow)] 20 25 pub handle: jacquard_common::types::string::Handle<'a>, 26 + ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. 21 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 28 #[serde(borrow)] 23 29 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 24 - } 30 + }
+10 -2
crates/jacquard-api/src/com_atproto/server/list_app_passwords.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 8 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 14 pub privileged: std::option::Option<bool>, 10 15 } 16 + 11 17 #[jacquard_derive::lexicon] 12 18 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 19 #[serde(rename_all = "camelCase")] ··· 15 21 #[serde(borrow)] 16 22 pub passwords: Vec<jacquard_common::types::value::Data<'a>>, 17 23 } 24 + 18 25 #[jacquard_derive::open_union] 19 26 #[derive( 20 27 serde::Serialize, ··· 32 39 #[serde(rename = "AccountTakedown")] 33 40 AccountTakedown(std::option::Option<String>), 34 41 } 42 + 35 43 impl std::fmt::Display for ListAppPasswordsError<'_> { 36 44 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 37 45 match self { ··· 42 50 } 43 51 Ok(()) 44 52 } 45 - Self::Unknown(_) => write!(f, "Unknown error"), 53 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 46 54 } 47 55 } 48 - } 56 + }
+10 -2
crates/jacquard-api/src/com_atproto/server/refresh_session.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 15 20 pub handle: jacquard_common::types::string::Handle<'a>, 16 21 #[serde(borrow)] 17 22 pub refresh_jwt: jacquard_common::CowStr<'a>, 23 + ///Hosting status of the account. If not specified, then assume 'active'. 18 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 25 #[serde(borrow)] 20 26 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::open_union] 23 30 #[derive( 24 31 serde::Serialize, ··· 36 43 #[serde(rename = "AccountTakedown")] 37 44 AccountTakedown(std::option::Option<String>), 38 45 } 46 + 39 47 impl std::fmt::Display for RefreshSessionError<'_> { 40 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 41 49 match self { ··· 46 54 } 47 55 Ok(()) 48 56 } 49 - Self::Unknown(_) => write!(f, "Unknown error"), 57 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 50 58 } 51 59 } 52 - } 60 + }
+5
crates/jacquard-api/src/com_atproto/server/request_account_delete.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 +
+5
crates/jacquard-api/src/com_atproto/server/request_email_confirmation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 +
+6 -1
crates/jacquard-api/src/com_atproto/server/request_email_update.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RequestEmailUpdateOutput<'a> { 5 10 pub token_required: bool, 6 - } 11 + }
+6 -1
crates/jacquard-api/src/com_atproto/server/request_password_reset.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RequestPasswordResetInput<'a> { 5 10 #[serde(borrow)] 6 11 pub email: jacquard_common::CowStr<'a>, 7 - } 12 + }
+9 -1
crates/jacquard-api/src/com_atproto/server/reserve_signing_key.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct ReserveSigningKeyInput<'a> { 10 + ///The DID to reserve a key for. 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub did: std::option::Option<jacquard_common::types::string::Did<'a>>, 8 14 } 15 + 9 16 #[jacquard_derive::lexicon] 10 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 18 #[serde(rename_all = "camelCase")] 12 19 pub struct ReserveSigningKeyOutput<'a> { 20 + ///The public key for the reserved signing key, in did:key serialization. 13 21 #[serde(borrow)] 14 22 pub signing_key: jacquard_common::CowStr<'a>, 15 - } 23 + }
+9 -2
crates/jacquard-api/src/com_atproto/server/reset_password.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub token: jacquard_common::CowStr<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::open_union] 11 17 #[derive( 12 18 serde::Serialize, ··· 26 32 #[serde(rename = "InvalidToken")] 27 33 InvalidToken(std::option::Option<String>), 28 34 } 35 + 29 36 impl std::fmt::Display for ResetPasswordError<'_> { 30 37 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 31 38 match self { ··· 43 50 } 44 51 Ok(()) 45 52 } 46 - Self::Unknown(_) => write!(f, "Unknown error"), 53 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 47 54 } 48 55 } 49 - } 56 + }
+6 -1
crates/jacquard-api/src/com_atproto/server/revoke_app_password.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RevokeAppPasswordInput<'a> { 5 10 #[serde(borrow)] 6 11 pub name: jacquard_common::CowStr<'a>, 7 - } 12 + }
+10 -2
crates/jacquard-api/src/com_atproto/server/update_email.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub email: jacquard_common::CowStr<'a>, 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub email_auth_factor: std::option::Option<bool>, 14 + ///Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed. 9 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 16 #[serde(borrow)] 11 17 pub token: std::option::Option<jacquard_common::CowStr<'a>>, 12 18 } 19 + 13 20 #[jacquard_derive::open_union] 14 21 #[derive( 15 22 serde::Serialize, ··· 31 38 #[serde(rename = "TokenRequired")] 32 39 TokenRequired(std::option::Option<String>), 33 40 } 41 + 34 42 impl std::fmt::Display for UpdateEmailError<'_> { 35 43 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 36 44 match self { ··· 55 63 } 56 64 Ok(()) 57 65 } 58 - Self::Unknown(_) => write!(f, "Unknown error"), 66 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 59 67 } 60 68 } 61 - } 69 + }
+29 -17
crates/jacquard-api/src/com_atproto/sync.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_blob; 7 + pub mod get_blocks; 8 + pub mod get_checkout; 9 + pub mod get_head; 10 + pub mod get_host_status; 11 + pub mod get_latest_commit; 12 + pub mod get_record; 13 + pub mod get_repo; 14 + pub mod get_repo_status; 15 + pub mod list_blobs; 16 + pub mod list_hosts; 17 + pub mod list_repos; 18 + pub mod list_repos_by_collection; 19 + pub mod notify_of_update; 20 + pub mod request_crawl; 21 + pub mod subscribe_repos; 22 + 1 23 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 2 24 pub enum HostStatus<'a> { 3 25 Active, ··· 7 29 Banned, 8 30 Other(jacquard_common::CowStr<'a>), 9 31 } 32 + 10 33 impl<'a> HostStatus<'a> { 11 34 pub fn as_str(&self) -> &str { 12 35 match self { ··· 19 42 } 20 43 } 21 44 } 45 + 22 46 impl<'a> From<&'a str> for HostStatus<'a> { 23 47 fn from(s: &'a str) -> Self { 24 48 match s { ··· 31 55 } 32 56 } 33 57 } 58 + 34 59 impl<'a> From<String> for HostStatus<'a> { 35 60 fn from(s: String) -> Self { 36 61 match s.as_str() { ··· 43 68 } 44 69 } 45 70 } 71 + 46 72 impl<'a> AsRef<str> for HostStatus<'a> { 47 73 fn as_ref(&self) -> &str { 48 74 self.as_str() 49 75 } 50 76 } 77 + 51 78 impl<'a> serde::Serialize for HostStatus<'a> { 52 79 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 53 80 where ··· 56 83 serializer.serialize_str(self.as_str()) 57 84 } 58 85 } 86 + 59 87 impl<'de, 'a> serde::Deserialize<'de> for HostStatus<'a> 60 88 where 61 89 'de: 'a, ··· 67 95 let s = <&'de str>::deserialize(deserializer)?; 68 96 Ok(Self::from(s)) 69 97 } 70 - } 71 - pub mod get_blob; 72 - pub mod get_blocks; 73 - pub mod get_checkout; 74 - pub mod get_head; 75 - pub mod get_host_status; 76 - pub mod get_latest_commit; 77 - pub mod get_record; 78 - pub mod get_repo; 79 - pub mod get_repo_status; 80 - pub mod list_blobs; 81 - pub mod list_hosts; 82 - pub mod list_repos; 83 - pub mod list_repos_by_collection; 84 - pub mod notify_of_update; 85 - pub mod request_crawl; 86 - pub mod subscribe_repos; 98 + }
+9 -2
crates/jacquard-api/src/com_atproto/sync/get_blob.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetBlobParams<'a> { ··· 6 11 #[serde(borrow)] 7 12 pub did: jacquard_common::types::string::Did<'a>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 35 41 #[serde(rename = "RepoDeactivated")] 36 42 RepoDeactivated(std::option::Option<String>), 37 43 } 44 + 38 45 impl std::fmt::Display for GetBlobError<'_> { 39 46 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 40 47 match self { ··· 73 80 } 74 81 Ok(()) 75 82 } 76 - Self::Unknown(_) => write!(f, "Unknown error"), 83 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 77 84 } 78 85 } 79 - } 86 + }
+9 -2
crates/jacquard-api/src/com_atproto/sync/get_blocks.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetBlocksParams<'a> { ··· 6 11 #[serde(borrow)] 7 12 pub did: jacquard_common::types::string::Did<'a>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 35 41 #[serde(rename = "RepoDeactivated")] 36 42 RepoDeactivated(std::option::Option<String>), 37 43 } 44 + 38 45 impl std::fmt::Display for GetBlocksError<'_> { 39 46 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 40 47 match self { ··· 73 80 } 74 81 Ok(()) 75 82 } 76 - Self::Unknown(_) => write!(f, "Unknown error"), 83 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 77 84 } 78 85 } 79 - } 86 + }
+7 -1
crates/jacquard-api/src/com_atproto/sync/get_checkout.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetCheckoutParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 - pub struct GetCheckoutOutput<'a> {} 16 + pub struct GetCheckoutOutput<'a> {}
+10 -2
crates/jacquard-api/src/com_atproto/sync/get_head.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetHeadParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 #[serde(borrow)] 12 18 pub root: jacquard_common::types::string::Cid<'a>, 13 19 } 20 + 14 21 #[jacquard_derive::open_union] 15 22 #[derive( 16 23 serde::Serialize, ··· 28 35 #[serde(rename = "HeadNotFound")] 29 36 HeadNotFound(std::option::Option<String>), 30 37 } 38 + 31 39 impl std::fmt::Display for GetHeadError<'_> { 32 40 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 33 41 match self { ··· 38 46 } 39 47 Ok(()) 40 48 } 41 - Self::Unknown(_) => write!(f, "Unknown error"), 49 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 42 50 } 43 51 } 44 - } 52 + }
+12 -2
crates/jacquard-api/src/com_atproto/sync/get_host_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetHostStatusParams<'a> { 4 9 #[serde(borrow)] 5 10 pub hostname: jacquard_common::CowStr<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetHostStatusOutput<'a> { 17 + ///Number of accounts on the server which are associated with the upstream host. Note that the upstream may actually have more accounts. 11 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 19 pub account_count: std::option::Option<i64>, 13 20 #[serde(borrow)] 14 21 pub hostname: jacquard_common::CowStr<'a>, 22 + ///Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). 15 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 16 24 pub seq: std::option::Option<i64>, 17 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 26 #[serde(borrow)] 19 27 pub status: std::option::Option<crate::com_atproto::sync::HostStatus<'a>>, 20 28 } 29 + 21 30 #[jacquard_derive::open_union] 22 31 #[derive( 23 32 serde::Serialize, ··· 35 44 #[serde(rename = "HostNotFound")] 36 45 HostNotFound(std::option::Option<String>), 37 46 } 47 + 38 48 impl std::fmt::Display for GetHostStatusError<'_> { 39 49 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 40 50 match self { ··· 45 55 } 46 56 Ok(()) 47 57 } 48 - Self::Unknown(_) => write!(f, "Unknown error"), 58 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 49 59 } 50 60 } 51 - } 61 + }
+10 -2
crates/jacquard-api/src/com_atproto/sync/get_latest_commit.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetLatestCommitParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 12 18 pub cid: jacquard_common::types::string::Cid<'a>, 13 19 pub rev: jacquard_common::types::string::Tid, 14 20 } 21 + 15 22 #[jacquard_derive::open_union] 16 23 #[derive( 17 24 serde::Serialize, ··· 35 42 #[serde(rename = "RepoDeactivated")] 36 43 RepoDeactivated(std::option::Option<String>), 37 44 } 45 + 38 46 impl std::fmt::Display for GetLatestCommitError<'_> { 39 47 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 40 48 match self { ··· 66 74 } 67 75 Ok(()) 68 76 } 69 - Self::Unknown(_) => write!(f, "Unknown error"), 77 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 70 78 } 71 79 } 72 - } 80 + }
+9 -2
crates/jacquard-api/src/com_atproto/sync/get_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRecordParams<'a> { ··· 10 15 jacquard_common::types::string::Rkey<'a>, 11 16 >, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] ··· 39 45 #[serde(rename = "RepoDeactivated")] 40 46 RepoDeactivated(std::option::Option<String>), 41 47 } 48 + 42 49 impl std::fmt::Display for GetRecordError<'_> { 43 50 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 44 51 match self { ··· 77 84 } 78 85 Ok(()) 79 86 } 80 - Self::Unknown(_) => write!(f, "Unknown error"), 87 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 81 88 } 82 89 } 83 - } 90 + }
+9 -2
crates/jacquard-api/src/com_atproto/sync/get_repo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRepoParams<'a> { ··· 6 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 12 pub since: std::option::Option<jacquard_common::types::string::Tid>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 19 25 PartialEq, 20 26 Eq, 21 27 thiserror::Error, 22 - miette::Diagnostic, 28 + miette::Diagnostic 23 29 )] 24 30 #[serde(tag = "error", content = "message")] 25 31 #[serde(bound(deserialize = "'de: 'a"))] ··· 33 39 #[serde(rename = "RepoDeactivated")] 34 40 RepoDeactivated(std::option::Option<String>), 35 41 } 42 + 36 43 impl std::fmt::Display for GetRepoError<'_> { 37 44 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 38 45 match self { ··· 67 74 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 68 75 } 69 76 } 70 - } 77 + }
+12 -2
crates/jacquard-api/src/com_atproto/sync/get_repo_status.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRepoStatusParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 pub active: bool, 12 18 #[serde(borrow)] 13 19 pub did: jacquard_common::types::string::Did<'a>, 20 + ///Optional field, the current rev of the repo, if active=true 14 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 22 pub rev: std::option::Option<jacquard_common::types::string::Tid>, 23 + ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. 16 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 25 #[serde(borrow)] 18 26 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 19 27 } 28 + 20 29 #[jacquard_derive::open_union] 21 30 #[derive( 22 31 serde::Serialize, ··· 34 43 #[serde(rename = "RepoNotFound")] 35 44 RepoNotFound(std::option::Option<String>), 36 45 } 46 + 37 47 impl std::fmt::Display for GetRepoStatusError<'_> { 38 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 39 49 match self { ··· 44 54 } 45 55 Ok(()) 46 56 } 47 - Self::Unknown(_) => write!(f, "Unknown error"), 57 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 48 58 } 49 59 } 50 - } 60 + }
+10 -2
crates/jacquard-api/src/com_atproto/sync/list_blobs.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListBlobsParams<'a> { ··· 11 16 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 17 pub since: std::option::Option<jacquard_common::types::string::Tid>, 13 18 } 19 + 14 20 #[jacquard_derive::lexicon] 15 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 22 #[serde(rename_all = "camelCase")] ··· 21 27 #[serde(borrow)] 22 28 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 23 29 } 30 + 24 31 #[jacquard_derive::open_union] 25 32 #[derive( 26 33 serde::Serialize, ··· 44 51 #[serde(rename = "RepoDeactivated")] 45 52 RepoDeactivated(std::option::Option<String>), 46 53 } 54 + 47 55 impl std::fmt::Display for ListBlobsError<'_> { 48 56 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 49 57 match self { ··· 75 83 } 76 84 Ok(()) 77 85 } 78 - Self::Unknown(_) => write!(f, "Unknown error"), 86 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 79 87 } 80 88 } 81 - } 89 + }
+11 -1
crates/jacquard-api/src/com_atproto/sync/list_hosts.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct Host<'a> { 5 10 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 11 pub account_count: std::option::Option<i64>, 12 + ///hostname of server; not a URL (no scheme) 7 13 #[serde(borrow)] 8 14 pub hostname: jacquard_common::CowStr<'a>, 15 + ///Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). 9 16 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 17 pub seq: std::option::Option<i64>, 11 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 19 #[serde(borrow)] 13 20 pub status: std::option::Option<crate::com_atproto::sync::HostStatus<'a>>, 14 21 } 22 + 15 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 16 24 #[serde(rename_all = "camelCase")] 17 25 pub struct ListHostsParams<'a> { ··· 21 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 30 pub limit: std::option::Option<i64>, 23 31 } 32 + 24 33 #[jacquard_derive::lexicon] 25 34 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 35 #[serde(rename_all = "camelCase")] ··· 28 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 38 #[serde(borrow)] 30 39 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 40 + ///Sort order is not formally specified. Recommended order is by time host was first seen by the server, with oldest first. 31 41 #[serde(borrow)] 32 42 pub hosts: Vec<jacquard_common::types::value::Data<'a>>, 33 - } 43 + }
+10 -1
crates/jacquard-api/src/com_atproto/sync/list_repos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListReposParams<'a> { ··· 7 12 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 13 pub limit: std::option::Option<i64>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 17 23 #[serde(borrow)] 18 24 pub repos: Vec<jacquard_common::types::value::Data<'a>>, 19 25 } 26 + 20 27 #[jacquard_derive::lexicon] 21 28 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 29 #[serde(rename_all = "camelCase")] ··· 25 32 pub active: std::option::Option<bool>, 26 33 #[serde(borrow)] 27 34 pub did: jacquard_common::types::string::Did<'a>, 35 + ///Current repo commit CID 28 36 #[serde(borrow)] 29 37 pub head: jacquard_common::types::string::Cid<'a>, 30 38 pub rev: jacquard_common::types::string::Tid, 39 + ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted. 31 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 41 #[serde(borrow)] 33 42 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 34 - } 43 + }
+8 -1
crates/jacquard-api/src/com_atproto/sync/list_repos_by_collection.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListReposByCollectionParams<'a> { ··· 9 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 15 pub limit: std::option::Option<i64>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 19 25 #[serde(borrow)] 20 26 pub repos: Vec<jacquard_common::types::value::Data<'a>>, 21 27 } 28 + 22 29 #[jacquard_derive::lexicon] 23 30 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 24 31 #[serde(rename_all = "camelCase")] 25 32 pub struct Repo<'a> { 26 33 #[serde(borrow)] 27 34 pub did: jacquard_common::types::string::Did<'a>, 28 - } 35 + }
+7 -1
crates/jacquard-api/src/com_atproto/sync/notify_of_update.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct NotifyOfUpdateInput<'a> { 10 + ///Hostname of the current service (usually a PDS) that is notifying of update. 5 11 #[serde(borrow)] 6 12 pub hostname: jacquard_common::CowStr<'a>, 7 - } 13 + }
+10 -2
crates/jacquard-api/src/com_atproto/sync/request_crawl.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RequestCrawlInput<'a> { 10 + ///Hostname of the current service (eg, PDS) that is requesting to be crawled. 5 11 #[serde(borrow)] 6 12 pub hostname: jacquard_common::CowStr<'a>, 7 13 } 14 + 8 15 #[jacquard_derive::open_union] 9 16 #[derive( 10 17 serde::Serialize, ··· 22 29 #[serde(rename = "HostBanned")] 23 30 HostBanned(std::option::Option<String>), 24 31 } 32 + 25 33 impl std::fmt::Display for RequestCrawlError<'_> { 26 34 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 27 35 match self { ··· 32 40 } 33 41 Ok(()) 34 42 } 35 - Self::Unknown(_) => write!(f, "Unknown error"), 43 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 36 44 } 37 45 } 38 - } 46 + }
+37 -3
crates/jacquard-api/src/com_atproto/sync/subscribe_repos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct Account<'a> { 11 + ///Indicates that the account has a repository which can be fetched from the host that emitted this event. 6 12 pub active: bool, 7 13 #[serde(borrow)] 8 14 pub did: jacquard_common::types::string::Did<'a>, 9 15 pub seq: i64, 16 + ///If active=false, this optional field indicates a reason for why the account is not active. 10 17 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 18 #[serde(borrow)] 12 19 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 13 20 pub time: jacquard_common::types::string::Datetime, 14 21 } 22 + 15 23 ///Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature. 16 24 #[jacquard_derive::lexicon] 17 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 19 27 pub struct Commit<'a> { 20 28 #[serde(borrow)] 21 29 pub blobs: Vec<jacquard_common::types::cid::CidLink<'a>>, 30 + ///CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list. 22 31 pub blocks: bytes::Bytes, 32 + ///Repo commit object CID. 23 33 #[serde(borrow)] 24 34 pub commit: jacquard_common::types::cid::CidLink<'a>, 25 35 #[serde(borrow)] 26 - pub ops: Vec<jacquard_common::types::value::Data<'a>>, 36 + pub ops: Vec<crate::com_atproto::sync::subscribe_repos::RepoOp<'a>>, 37 + ///The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose. 27 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 39 #[serde(borrow)] 29 40 pub prev_data: std::option::Option<jacquard_common::types::cid::CidLink<'a>>, 41 + ///DEPRECATED -- unused 30 42 pub rebase: bool, 43 + ///The repo this event comes from. Note that all other message types name this field 'did'. 31 44 #[serde(borrow)] 32 45 pub repo: jacquard_common::types::string::Did<'a>, 46 + ///The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event. 33 47 pub rev: jacquard_common::types::string::Tid, 48 + ///The stream sequence number of this message. 34 49 pub seq: i64, 50 + ///The rev of the last emitted commit from this repo (if any). 35 51 pub since: jacquard_common::types::string::Tid, 52 + ///Timestamp of when this message was originally broadcast. 36 53 pub time: jacquard_common::types::string::Datetime, 54 + ///DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data. 37 55 pub too_big: bool, 38 56 } 57 + 39 58 ///Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache. 40 59 #[jacquard_derive::lexicon] 41 60 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 43 62 pub struct Identity<'a> { 44 63 #[serde(borrow)] 45 64 pub did: jacquard_common::types::string::Did<'a>, 65 + ///The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details. 46 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 47 67 #[serde(borrow)] 48 68 pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>, 49 69 pub seq: i64, 50 70 pub time: jacquard_common::types::string::Datetime, 51 71 } 72 + 52 73 #[jacquard_derive::lexicon] 53 74 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 54 75 #[serde(rename_all = "camelCase")] ··· 59 80 #[serde(borrow)] 60 81 pub name: jacquard_common::CowStr<'a>, 61 82 } 83 + 62 84 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 63 85 #[serde(rename_all = "camelCase")] 64 86 pub struct SubscribeReposParams { 65 87 #[serde(skip_serializing_if = "std::option::Option::is_none")] 66 88 pub cursor: std::option::Option<i64>, 67 89 } 90 + 68 91 #[jacquard_derive::open_union] 69 92 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 70 93 #[serde(tag = "$type")] ··· 81 104 #[serde(rename = "#info")] 82 105 Info(Box<jacquard_common::types::value::Data<'a>>), 83 106 } 107 + 84 108 #[jacquard_derive::open_union] 85 109 #[derive( 86 110 serde::Serialize, ··· 101 125 #[serde(rename = "ConsumerTooSlow")] 102 126 ConsumerTooSlow(std::option::Option<String>), 103 127 } 128 + 104 129 impl std::fmt::Display for SubscribeReposError<'_> { 105 130 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 106 131 match self { ··· 118 143 } 119 144 Ok(()) 120 145 } 121 - Self::Unknown(_) => write!(f, "Unknown error"), 146 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 122 147 } 123 148 } 124 149 } 150 + 125 151 ///A repo operation, ie a mutation of a single record. 126 152 #[jacquard_derive::lexicon] 127 153 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 129 155 pub struct RepoOp<'a> { 130 156 #[serde(borrow)] 131 157 pub action: jacquard_common::CowStr<'a>, 158 + ///For creates and updates, the new record CID. For deletions, null. 132 159 #[serde(borrow)] 133 160 pub cid: jacquard_common::types::cid::CidLink<'a>, 134 161 #[serde(borrow)] 135 162 pub path: jacquard_common::CowStr<'a>, 163 + ///For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined. 136 164 #[serde(skip_serializing_if = "std::option::Option::is_none")] 137 165 #[serde(borrow)] 138 166 pub prev: std::option::Option<jacquard_common::types::cid::CidLink<'a>>, 139 167 } 168 + 140 169 ///Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository. 141 170 #[jacquard_derive::lexicon] 142 171 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 143 172 #[serde(rename_all = "camelCase")] 144 173 pub struct Sync<'a> { 174 + ///CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'. 145 175 pub blocks: bytes::Bytes, 176 + ///The account this repo event corresponds to. Must match that in the commit object. 146 177 #[serde(borrow)] 147 178 pub did: jacquard_common::types::string::Did<'a>, 179 + ///The rev of the commit. This value must match that in the commit object. 148 180 #[serde(borrow)] 149 181 pub rev: jacquard_common::CowStr<'a>, 182 + ///The stream sequence number of this message. 150 183 pub seq: i64, 184 + ///Timestamp of when this message was originally broadcast. 151 185 pub time: jacquard_common::types::string::Datetime, 152 - } 186 + }
+6 -1
crates/jacquard-api/src/com_atproto/temp.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod add_reserved_handle; 2 7 pub mod check_handle_availability; 3 8 pub mod check_signup_queue; 4 9 pub mod dereference_scope; 5 10 pub mod fetch_labels; 6 11 pub mod request_phone_verification; 7 - pub mod revoke_account_credentials; 12 + pub mod revoke_account_credentials;
+7 -1
crates/jacquard-api/src/com_atproto/temp/add_reserved_handle.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub handle: jacquard_common::CowStr<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::lexicon] 9 15 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 16 #[serde(rename_all = "camelCase")] 11 - pub struct AddReservedHandleOutput<'a> {} 17 + pub struct AddReservedHandleOutput<'a> {}
+18 -3
crates/jacquard-api/src/com_atproto/temp/check_handle_availability.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct CheckHandleAvailabilityParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub handle: jacquard_common::types::string::Handle<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] 15 21 pub struct CheckHandleAvailabilityOutput<'a> { 22 + ///Echo of the input handle. 16 23 #[serde(borrow)] 17 24 pub handle: jacquard_common::types::string::Handle<'a>, 18 25 #[serde(borrow)] 19 26 pub result: CheckHandleAvailabilityOutputRecordResult<'a>, 20 27 } 28 + 21 29 #[jacquard_derive::open_union] 22 30 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 31 #[serde(tag = "$type")] ··· 41 49 #[serde(rename = "InvalidEmail")] 42 50 InvalidEmail(std::option::Option<String>), 43 51 } 52 + 44 53 impl std::fmt::Display for CheckHandleAvailabilityError<'_> { 45 54 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 46 55 match self { ··· 51 60 } 52 61 Ok(()) 53 62 } 54 - Self::Unknown(_) => write!(f, "Unknown error"), 63 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 55 64 } 56 65 } 57 66 } 67 + 58 68 ///Indicates the provided handle is available. 59 69 #[jacquard_derive::lexicon] 60 70 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 65 75 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 66 76 #[serde(rename_all = "camelCase")] 67 77 pub struct ResultUnavailable<'a> { 78 + ///List of suggested handles based on the provided inputs. 68 79 #[serde(borrow)] 69 - pub suggestions: Vec<jacquard_common::types::value::Data<'a>>, 80 + pub suggestions: Vec< 81 + crate::com_atproto::temp::check_handle_availability::Suggestion<'a>, 82 + >, 70 83 } 84 + 71 85 #[jacquard_derive::lexicon] 72 86 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 73 87 #[serde(rename_all = "camelCase")] 74 88 pub struct Suggestion<'a> { 75 89 #[serde(borrow)] 76 90 pub handle: jacquard_common::types::string::Handle<'a>, 91 + ///Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics. 77 92 #[serde(borrow)] 78 93 pub method: jacquard_common::CowStr<'a>, 79 - } 94 + }
+6 -1
crates/jacquard-api/src/com_atproto/temp/check_signup_queue.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 pub estimated_time_ms: std::option::Option<i64>, 8 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 14 pub place_in_queue: std::option::Option<i64>, 10 - } 15 + }
+11 -2
crates/jacquard-api/src/com_atproto/temp/dereference_scope.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct DereferenceScopeParams<'a> { 4 9 #[serde(borrow)] 5 10 pub scope: jacquard_common::CowStr<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct DereferenceScopeOutput<'a> { 17 + ///The full oauth permission scope 11 18 #[serde(borrow)] 12 19 pub scope: jacquard_common::CowStr<'a>, 13 20 } 21 + 14 22 #[jacquard_derive::open_union] 15 23 #[derive( 16 24 serde::Serialize, ··· 29 37 #[serde(rename = "InvalidScopeReference")] 30 38 InvalidScopeReference(std::option::Option<String>), 31 39 } 40 + 32 41 impl std::fmt::Display for DereferenceScopeError<'_> { 33 42 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 34 43 match self { ··· 39 48 } 40 49 Ok(()) 41 50 } 42 - Self::Unknown(_) => write!(f, "Unknown error"), 51 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 43 52 } 44 53 } 45 - } 54 + }
+7 -1
crates/jacquard-api/src/com_atproto/temp/fetch_labels.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct FetchLabelsParams { ··· 6 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 7 12 pub since: std::option::Option<i64>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] 12 18 pub struct FetchLabelsOutput<'a> { 13 19 #[serde(borrow)] 14 20 pub labels: Vec<crate::com_atproto::label::Label<'a>>, 15 - } 21 + }
+6 -1
crates/jacquard-api/src/com_atproto/temp/request_phone_verification.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RequestPhoneVerificationInput<'a> { 5 10 #[serde(borrow)] 6 11 pub phone_number: jacquard_common::CowStr<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/com_atproto/temp/revoke_account_credentials.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RevokeAccountCredentialsInput<'a> { 5 10 #[serde(borrow)] 6 11 pub account: jacquard_common::types::ident::AtIdentifier<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/lib.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod app_bsky; 2 7 pub mod chat_bsky; 3 8 pub mod com_atproto; 4 - pub mod tools_ozone; 9 + pub mod tools_ozone;
+6 -1
crates/jacquard-api/src/tools_ozone.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 pub mod communication; 2 7 pub mod hosting; 3 8 pub mod moderation; ··· 8 13 pub mod setting; 9 14 pub mod signature; 10 15 pub mod team; 11 - pub mod verification; 16 + pub mod verification;
+16 -5
crates/jacquard-api/src/tools_ozone/communication.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod create_template; 7 + pub mod delete_template; 8 + pub mod list_templates; 9 + pub mod update_template; 10 + 1 11 #[jacquard_derive::lexicon] 2 12 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 13 #[serde(rename_all = "camelCase")] 4 14 pub struct TemplateView<'a> { 15 + ///Subject of the message, used in emails. 5 16 #[serde(borrow)] 6 17 pub content_markdown: jacquard_common::CowStr<'a>, 7 18 pub created_at: jacquard_common::types::string::Datetime, 8 19 pub disabled: bool, 9 20 #[serde(borrow)] 10 21 pub id: jacquard_common::CowStr<'a>, 22 + ///Message language. 11 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 24 pub lang: std::option::Option<jacquard_common::types::string::Language>, 25 + ///DID of the user who last updated the template. 13 26 #[serde(borrow)] 14 27 pub last_updated_by: jacquard_common::types::string::Did<'a>, 28 + ///Name of the template. 15 29 #[serde(borrow)] 16 30 pub name: jacquard_common::CowStr<'a>, 31 + ///Content of the template, can contain markdown and variable placeholders. 17 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 33 #[serde(borrow)] 19 34 pub subject: std::option::Option<jacquard_common::CowStr<'a>>, 20 35 pub updated_at: jacquard_common::types::string::Datetime, 21 - } 22 - pub mod create_template; 23 - pub mod delete_template; 24 - pub mod list_templates; 25 - pub mod update_template; 36 + }
+15 -2
crates/jacquard-api/src/tools_ozone/communication/create_template.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct CreateTemplateInput<'a> { 10 + ///Content of the template, markdown supported, can contain variable placeholders. 5 11 #[serde(borrow)] 6 12 pub content_markdown: jacquard_common::CowStr<'a>, 13 + ///DID of the user who is creating the template. 7 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 15 #[serde(borrow)] 9 16 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 17 + ///Message language. 10 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 19 pub lang: std::option::Option<jacquard_common::types::string::Language>, 20 + ///Name of the template. 12 21 #[serde(borrow)] 13 22 pub name: jacquard_common::CowStr<'a>, 23 + ///Subject of the message, used in emails. 14 24 #[serde(borrow)] 15 25 pub subject: jacquard_common::CowStr<'a>, 16 26 } 27 + 17 28 #[jacquard_derive::lexicon] 18 29 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 19 30 #[serde(rename_all = "camelCase")] ··· 22 33 #[serde(borrow)] 23 34 pub value: crate::tools_ozone::communication::TemplateView<'a>, 24 35 } 36 + 25 37 #[jacquard_derive::open_union] 26 38 #[derive( 27 39 serde::Serialize, ··· 39 51 #[serde(rename = "DuplicateTemplateName")] 40 52 DuplicateTemplateName(std::option::Option<String>), 41 53 } 54 + 42 55 impl std::fmt::Display for CreateTemplateError<'_> { 43 56 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 44 57 match self { ··· 49 62 } 50 63 Ok(()) 51 64 } 52 - Self::Unknown(_) => write!(f, "Unknown error"), 65 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 53 66 } 54 67 } 55 - } 68 + }
+6 -1
crates/jacquard-api/src/tools_ozone/communication/delete_template.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeleteTemplateInput<'a> { 5 10 #[serde(borrow)] 6 11 pub id: jacquard_common::CowStr<'a>, 7 - } 12 + }
+6 -1
crates/jacquard-api/src/tools_ozone/communication/list_templates.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub communication_templates: Vec< 7 12 crate::tools_ozone::communication::TemplateView<'a>, 8 13 >, 9 - } 14 + }
+16 -2
crates/jacquard-api/src/tools_ozone/communication/update_template.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateTemplateInput<'a> { 10 + ///Content of the template, markdown supported, can contain variable placeholders. 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub content_markdown: std::option::Option<jacquard_common::CowStr<'a>>, 8 14 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 15 pub disabled: std::option::Option<bool>, 16 + ///ID of the template to be updated. 10 17 #[serde(borrow)] 11 18 pub id: jacquard_common::CowStr<'a>, 19 + ///Message language. 12 20 #[serde(skip_serializing_if = "std::option::Option::is_none")] 13 21 pub lang: std::option::Option<jacquard_common::types::string::Language>, 22 + ///Name of the template. 14 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 24 #[serde(borrow)] 16 25 pub name: std::option::Option<jacquard_common::CowStr<'a>>, 26 + ///Subject of the message, used in emails. 17 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 28 #[serde(borrow)] 19 29 pub subject: std::option::Option<jacquard_common::CowStr<'a>>, 30 + ///DID of the user who is updating the template. 20 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 21 32 #[serde(borrow)] 22 33 pub updated_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 23 34 } 35 + 24 36 #[jacquard_derive::lexicon] 25 37 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 38 #[serde(rename_all = "camelCase")] ··· 29 41 #[serde(borrow)] 30 42 pub value: crate::tools_ozone::communication::TemplateView<'a>, 31 43 } 44 + 32 45 #[jacquard_derive::open_union] 33 46 #[derive( 34 47 serde::Serialize, ··· 46 59 #[serde(rename = "DuplicateTemplateName")] 47 60 DuplicateTemplateName(std::option::Option<String>), 48 61 } 62 + 49 63 impl std::fmt::Display for UpdateTemplateError<'_> { 50 64 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 51 65 match self { ··· 56 70 } 57 71 Ok(()) 58 72 } 59 - Self::Unknown(_) => write!(f, "Unknown error"), 73 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 60 74 } 61 75 } 62 - } 76 + }
+6 -1
crates/jacquard-api/src/tools_ozone/hosting.rs
··· 1 - pub mod get_account_history; 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_account_history;
+13 -1
crates/jacquard-api/src/tools_ozone/hosting/get_account_history.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 9 14 #[serde(borrow)] 10 15 pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 16 22 #[serde(borrow)] 17 23 pub email: jacquard_common::CowStr<'a>, 18 24 } 25 + 19 26 #[jacquard_derive::lexicon] 20 27 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 28 #[serde(rename_all = "camelCase")] ··· 23 30 #[serde(borrow)] 24 31 pub email: jacquard_common::CowStr<'a>, 25 32 } 33 + 26 34 #[jacquard_derive::lexicon] 27 35 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 28 36 #[serde(rename_all = "camelCase")] ··· 33 41 #[serde(borrow)] 34 42 pub details: EventRecordDetails<'a>, 35 43 } 44 + 36 45 #[jacquard_derive::open_union] 37 46 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38 47 #[serde(tag = "$type")] ··· 45 54 #[serde(borrow)] 46 55 pub handle: jacquard_common::types::string::Handle<'a>, 47 56 } 57 + 48 58 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 49 59 #[serde(rename_all = "camelCase")] 50 60 pub struct GetAccountHistoryParams<'a> { ··· 59 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 60 70 pub limit: std::option::Option<i64>, 61 71 } 72 + 62 73 #[jacquard_derive::lexicon] 63 74 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 64 75 #[serde(rename_all = "camelCase")] ··· 69 80 #[serde(borrow)] 70 81 pub events: Vec<jacquard_common::types::value::Data<'a>>, 71 82 } 83 + 72 84 #[jacquard_derive::lexicon] 73 85 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 74 86 #[serde(rename_all = "camelCase")] 75 - pub struct PasswordUpdated<'a> {} 87 + pub struct PasswordUpdated<'a> {}
+164 -32
crates/jacquard-api/src/tools_ozone/moderation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod emit_event; 7 + pub mod get_account_timeline; 8 + pub mod get_event; 9 + pub mod get_record; 10 + pub mod get_records; 11 + pub mod get_repo; 12 + pub mod get_reporter_stats; 13 + pub mod get_repos; 14 + pub mod get_subjects; 15 + pub mod query_events; 16 + pub mod query_statuses; 17 + pub mod search_repos; 18 + 1 19 ///Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 2 20 #[jacquard_derive::lexicon] 3 21 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 22 #[serde(rename_all = "camelCase")] 5 23 pub struct AccountEvent<'a> { 24 + ///Indicates that the account has a repository which can be fetched from the host that emitted this event. 6 25 pub active: bool, 7 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 27 #[serde(borrow)] ··· 12 31 pub status: std::option::Option<jacquard_common::CowStr<'a>>, 13 32 pub timestamp: jacquard_common::types::string::Datetime, 14 33 } 34 + 15 35 #[jacquard_derive::lexicon] 16 36 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 37 #[serde(rename_all = "camelCase")] ··· 29 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 50 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 31 51 } 52 + 32 53 ///Statistics about a particular account subject 33 54 #[jacquard_derive::lexicon] 34 55 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 35 56 #[serde(rename_all = "camelCase")] 36 57 pub struct AccountStats<'a> { 58 + ///Total number of appeals against a moderation action on the account 37 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 60 pub appeal_count: std::option::Option<i64>, 61 + ///Number of times the account was escalated 39 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 63 pub escalate_count: std::option::Option<i64>, 64 + ///Total number of reports on the account 41 65 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 66 pub report_count: std::option::Option<i64>, 67 + ///Number of times the account was suspended 43 68 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 69 pub suspend_count: std::option::Option<i64>, 70 + ///Number of times the account was taken down 45 71 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 72 pub takedown_count: std::option::Option<i64>, 47 73 } 74 + 48 75 ///Age assurance info coming directly from users. Only works on DID subjects. 49 76 #[jacquard_derive::lexicon] 50 77 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 51 78 #[serde(rename_all = "camelCase")] 52 79 pub struct AgeAssuranceEvent<'a> { 80 + ///The unique identifier for this instance of the age assurance flow, in UUID format. 53 81 #[serde(borrow)] 54 82 pub attempt_id: jacquard_common::CowStr<'a>, 83 + ///The IP address used when completing the AA flow. 55 84 #[serde(skip_serializing_if = "std::option::Option::is_none")] 56 85 #[serde(borrow)] 57 86 pub complete_ip: std::option::Option<jacquard_common::CowStr<'a>>, 87 + ///The user agent used when completing the AA flow. 58 88 #[serde(skip_serializing_if = "std::option::Option::is_none")] 59 89 #[serde(borrow)] 60 90 pub complete_ua: std::option::Option<jacquard_common::CowStr<'a>>, 91 + ///The date and time of this write operation. 61 92 pub created_at: jacquard_common::types::string::Datetime, 93 + ///The IP address used when initiating the AA flow. 62 94 #[serde(skip_serializing_if = "std::option::Option::is_none")] 63 95 #[serde(borrow)] 64 96 pub init_ip: std::option::Option<jacquard_common::CowStr<'a>>, 97 + ///The user agent used when initiating the AA flow. 65 98 #[serde(skip_serializing_if = "std::option::Option::is_none")] 66 99 #[serde(borrow)] 67 100 pub init_ua: std::option::Option<jacquard_common::CowStr<'a>>, 101 + ///The status of the age assurance process. 68 102 #[serde(borrow)] 69 103 pub status: jacquard_common::CowStr<'a>, 70 104 } 105 + 71 106 ///Age assurance status override by moderators. Only works on DID subjects. 72 107 #[jacquard_derive::lexicon] 73 108 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 74 109 #[serde(rename_all = "camelCase")] 75 110 pub struct AgeAssuranceOverrideEvent<'a> { 111 + ///Comment describing the reason for the override. 76 112 #[serde(borrow)] 77 113 pub comment: jacquard_common::CowStr<'a>, 114 + ///The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state. 78 115 #[serde(borrow)] 79 116 pub status: jacquard_common::CowStr<'a>, 80 117 } 118 + 81 119 #[jacquard_derive::lexicon] 82 120 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 83 121 #[serde(rename_all = "camelCase")] ··· 92 130 pub mime_type: jacquard_common::CowStr<'a>, 93 131 #[serde(skip_serializing_if = "std::option::Option::is_none")] 94 132 #[serde(borrow)] 95 - pub moderation: std::option::Option<jacquard_common::types::value::Data<'a>>, 133 + pub moderation: std::option::Option<crate::tools_ozone::moderation::Moderation<'a>>, 96 134 pub size: i64, 97 135 } 136 + 98 137 #[jacquard_derive::open_union] 99 138 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 100 139 #[serde(tag = "$type")] ··· 118 157 #[serde(skip_serializing_if = "std::option::Option::is_none")] 119 158 pub tombstone: std::option::Option<bool>, 120 159 } 160 + 121 161 #[jacquard_derive::lexicon] 122 162 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 123 163 #[serde(rename_all = "camelCase")] ··· 125 165 pub height: i64, 126 166 pub width: i64, 127 167 } 168 + 128 169 #[jacquard_derive::lexicon] 129 170 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 130 171 #[serde(rename_all = "camelCase")] 131 172 pub struct ModEventAcknowledge<'a> { 173 + ///If true, all other reports on content authored by this account will be resolved (acknowledged). 132 174 #[serde(skip_serializing_if = "std::option::Option::is_none")] 133 175 pub acknowledge_account_subjects: std::option::Option<bool>, 134 176 #[serde(skip_serializing_if = "std::option::Option::is_none")] 135 177 #[serde(borrow)] 136 178 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 137 179 } 180 + 138 181 ///Add a comment to a subject. An empty comment will clear any previously set sticky comment. 139 182 #[jacquard_derive::lexicon] 140 183 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 143 186 #[serde(skip_serializing_if = "std::option::Option::is_none")] 144 187 #[serde(borrow)] 145 188 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 189 + ///Make the comment persistent on the subject 146 190 #[serde(skip_serializing_if = "std::option::Option::is_none")] 147 191 pub sticky: std::option::Option<bool>, 148 192 } 193 + 149 194 ///Divert a record's blobs to a 3rd party service for further scanning/tagging 150 195 #[jacquard_derive::lexicon] 151 196 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 155 200 #[serde(borrow)] 156 201 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 157 202 } 203 + 158 204 ///Keep a log of outgoing email to a user 159 205 #[jacquard_derive::lexicon] 160 206 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 161 207 #[serde(rename_all = "camelCase")] 162 208 pub struct ModEventEmail<'a> { 209 + ///Additional comment about the outgoing comm. 163 210 #[serde(skip_serializing_if = "std::option::Option::is_none")] 164 211 #[serde(borrow)] 165 212 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 213 + ///The content of the email sent to the user. 166 214 #[serde(skip_serializing_if = "std::option::Option::is_none")] 167 215 #[serde(borrow)] 168 216 pub content: std::option::Option<jacquard_common::CowStr<'a>>, 217 + ///The subject line of the email sent to the user. 169 218 #[serde(borrow)] 170 219 pub subject_line: jacquard_common::CowStr<'a>, 171 220 } 221 + 172 222 #[jacquard_derive::lexicon] 173 223 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 174 224 #[serde(rename_all = "camelCase")] ··· 177 227 #[serde(borrow)] 178 228 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 179 229 } 230 + 180 231 ///Apply/Negate labels on a subject 181 232 #[jacquard_derive::lexicon] 182 233 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 187 238 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 188 239 #[serde(borrow)] 189 240 pub create_label_vals: Vec<jacquard_common::CowStr<'a>>, 241 + ///Indicates how long the label will remain on the subject. Only applies on labels that are being added. 190 242 #[serde(skip_serializing_if = "std::option::Option::is_none")] 191 243 pub duration_in_hours: std::option::Option<i64>, 192 244 #[serde(borrow)] 193 245 pub negate_label_vals: Vec<jacquard_common::CowStr<'a>>, 194 246 } 247 + 195 248 ///Mute incoming reports on a subject 196 249 #[jacquard_derive::lexicon] 197 250 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 200 253 #[serde(skip_serializing_if = "std::option::Option::is_none")] 201 254 #[serde(borrow)] 202 255 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 256 + ///Indicates how long the subject should remain muted. 203 257 pub duration_in_hours: i64, 204 258 } 259 + 205 260 ///Mute incoming reports from an account 206 261 #[jacquard_derive::lexicon] 207 262 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 210 265 #[serde(skip_serializing_if = "std::option::Option::is_none")] 211 266 #[serde(borrow)] 212 267 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 268 + ///Indicates how long the account should remain muted. Falsy value here means a permanent mute. 213 269 #[serde(skip_serializing_if = "std::option::Option::is_none")] 214 270 pub duration_in_hours: std::option::Option<i64>, 215 271 } 272 + 216 273 ///Set priority score of the subject. Higher score means higher priority. 217 274 #[jacquard_derive::lexicon] 218 275 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 223 280 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 224 281 pub score: i64, 225 282 } 283 + 226 284 ///Report a subject 227 285 #[jacquard_derive::lexicon] 228 286 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 231 289 #[serde(skip_serializing_if = "std::option::Option::is_none")] 232 290 #[serde(borrow)] 233 291 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 292 + ///Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. 234 293 #[serde(skip_serializing_if = "std::option::Option::is_none")] 235 294 pub is_reporter_muted: std::option::Option<bool>, 236 295 #[serde(borrow)] 237 296 pub report_type: crate::com_atproto::moderation::ReasonType<'a>, 238 297 } 298 + 239 299 ///Resolve appeal on a subject 240 300 #[jacquard_derive::lexicon] 241 301 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 242 302 #[serde(rename_all = "camelCase")] 243 303 pub struct ModEventResolveAppeal<'a> { 304 + ///Describe resolution. 244 305 #[serde(skip_serializing_if = "std::option::Option::is_none")] 245 306 #[serde(borrow)] 246 307 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 247 308 } 309 + 248 310 ///Revert take down action on a subject 249 311 #[jacquard_derive::lexicon] 250 312 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 251 313 #[serde(rename_all = "camelCase")] 252 314 pub struct ModEventReverseTakedown<'a> { 315 + ///Describe reasoning behind the reversal. 253 316 #[serde(skip_serializing_if = "std::option::Option::is_none")] 254 317 #[serde(borrow)] 255 318 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 256 319 } 320 + 257 321 ///Add/Remove a tag on a subject 258 322 #[jacquard_derive::lexicon] 259 323 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 260 324 #[serde(rename_all = "camelCase")] 261 325 pub struct ModEventTag<'a> { 326 + ///Tags to be added to the subject. If already exists, won't be duplicated. 262 327 #[serde(borrow)] 263 328 pub add: Vec<jacquard_common::CowStr<'a>>, 329 + ///Additional comment about added/removed tags. 264 330 #[serde(skip_serializing_if = "std::option::Option::is_none")] 265 331 #[serde(borrow)] 266 332 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 333 + ///Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated. 267 334 #[serde(borrow)] 268 335 pub remove: Vec<jacquard_common::CowStr<'a>>, 269 336 } 337 + 270 338 ///Take down a subject permanently or temporarily 271 339 #[jacquard_derive::lexicon] 272 340 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 273 341 #[serde(rename_all = "camelCase")] 274 342 pub struct ModEventTakedown<'a> { 343 + ///If true, all other reports on content authored by this account will be resolved (acknowledged). 275 344 #[serde(skip_serializing_if = "std::option::Option::is_none")] 276 345 pub acknowledge_account_subjects: std::option::Option<bool>, 277 346 #[serde(skip_serializing_if = "std::option::Option::is_none")] 278 347 #[serde(borrow)] 279 348 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 349 + ///Indicates how long the takedown should be in effect before automatically expiring. 280 350 #[serde(skip_serializing_if = "std::option::Option::is_none")] 281 351 pub duration_in_hours: std::option::Option<i64>, 352 + ///Names/Keywords of the policies that drove the decision. 282 353 #[serde(skip_serializing_if = "std::option::Option::is_none")] 283 354 #[serde(borrow)] 284 355 pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 285 356 } 357 + 286 358 ///Unmute action on a subject 287 359 #[jacquard_derive::lexicon] 288 360 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 289 361 #[serde(rename_all = "camelCase")] 290 362 pub struct ModEventUnmute<'a> { 363 + ///Describe reasoning behind the reversal. 291 364 #[serde(skip_serializing_if = "std::option::Option::is_none")] 292 365 #[serde(borrow)] 293 366 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 294 367 } 368 + 295 369 ///Unmute incoming reports from an account 296 370 #[jacquard_derive::lexicon] 297 371 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 298 372 #[serde(rename_all = "camelCase")] 299 373 pub struct ModEventUnmuteReporter<'a> { 374 + ///Describe reasoning behind the reversal. 300 375 #[serde(skip_serializing_if = "std::option::Option::is_none")] 301 376 #[serde(borrow)] 302 377 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 303 378 } 379 + 304 380 #[jacquard_derive::lexicon] 305 381 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 306 382 #[serde(rename_all = "camelCase")] ··· 316 392 pub id: i64, 317 393 #[serde(skip_serializing_if = "std::option::Option::is_none")] 318 394 #[serde(borrow)] 319 - pub mod_tool: std::option::Option<jacquard_common::types::value::Data<'a>>, 395 + pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>, 320 396 #[serde(borrow)] 321 397 pub subject: ModEventViewRecordSubject<'a>, 322 398 #[serde(borrow)] ··· 325 401 #[serde(borrow)] 326 402 pub subject_handle: std::option::Option<jacquard_common::CowStr<'a>>, 327 403 } 404 + 328 405 #[jacquard_derive::open_union] 329 406 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 330 407 #[serde(tag = "$type")] ··· 342 419 #[serde(rename = "chat.bsky.convo.defs#messageRef")] 343 420 DefsMessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>), 344 421 } 422 + 345 423 #[jacquard_derive::lexicon] 346 424 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 347 425 #[serde(rename_all = "camelCase")] ··· 354 432 pub id: i64, 355 433 #[serde(skip_serializing_if = "std::option::Option::is_none")] 356 434 #[serde(borrow)] 357 - pub mod_tool: std::option::Option<jacquard_common::types::value::Data<'a>>, 435 + pub mod_tool: std::option::Option<crate::tools_ozone::moderation::ModTool<'a>>, 358 436 #[serde(borrow)] 359 437 pub subject: ModEventViewDetailRecordSubject<'a>, 360 438 #[serde(borrow)] 361 - pub subject_blobs: Vec<jacquard_common::types::value::Data<'a>>, 439 + pub subject_blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>, 362 440 } 441 + 363 442 #[jacquard_derive::open_union] 364 443 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 365 444 #[serde(tag = "$type")] ··· 375 454 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 376 455 #[serde(rename_all = "camelCase")] 377 456 pub struct ModTool<'a> { 457 + ///Additional arbitrary metadata about the source 378 458 #[serde(skip_serializing_if = "std::option::Option::is_none")] 379 459 #[serde(borrow)] 380 460 pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>, 461 + ///Name/identifier of the source (e.g., 'automod', 'ozone/workspace') 381 462 #[serde(borrow)] 382 463 pub name: jacquard_common::CowStr<'a>, 383 464 } 465 + 384 466 #[jacquard_derive::lexicon] 385 467 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 386 468 #[serde(rename_all = "camelCase")] 387 469 pub struct Moderation<'a> { 388 470 #[serde(skip_serializing_if = "std::option::Option::is_none")] 389 471 #[serde(borrow)] 390 - pub subject_status: std::option::Option<jacquard_common::types::value::Data<'a>>, 472 + pub subject_status: std::option::Option< 473 + crate::tools_ozone::moderation::SubjectStatusView<'a>, 474 + >, 391 475 } 476 + 392 477 #[jacquard_derive::lexicon] 393 478 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 394 479 #[serde(rename_all = "camelCase")] 395 480 pub struct ModerationDetail<'a> { 396 481 #[serde(skip_serializing_if = "std::option::Option::is_none")] 397 482 #[serde(borrow)] 398 - pub subject_status: std::option::Option<jacquard_common::types::value::Data<'a>>, 483 + pub subject_status: std::option::Option< 484 + crate::tools_ozone::moderation::SubjectStatusView<'a>, 485 + >, 399 486 } 487 + 400 488 ///Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. 401 489 #[jacquard_derive::lexicon] 402 490 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 412 500 pub op: jacquard_common::CowStr<'a>, 413 501 pub timestamp: jacquard_common::types::string::Datetime, 414 502 } 503 + 415 504 #[jacquard_derive::lexicon] 416 505 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 417 506 #[serde(rename_all = "camelCase")] ··· 425 514 #[serde(skip_serializing_if = "std::option::Option::is_none")] 426 515 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 427 516 } 517 + 428 518 #[jacquard_derive::lexicon] 429 519 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 430 520 #[serde(rename_all = "camelCase")] ··· 435 525 pub cid: jacquard_common::types::string::Cid<'a>, 436 526 pub indexed_at: jacquard_common::types::string::Datetime, 437 527 #[serde(borrow)] 438 - pub moderation: jacquard_common::types::value::Data<'a>, 528 + pub moderation: crate::tools_ozone::moderation::Moderation<'a>, 439 529 #[serde(borrow)] 440 - pub repo: jacquard_common::types::value::Data<'a>, 530 + pub repo: crate::tools_ozone::moderation::RepoView<'a>, 441 531 #[serde(borrow)] 442 532 pub uri: jacquard_common::types::string::AtUri<'a>, 443 533 #[serde(borrow)] 444 534 pub value: jacquard_common::types::value::Data<'a>, 445 535 } 536 + 446 537 #[jacquard_derive::lexicon] 447 538 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 448 539 #[serde(rename_all = "camelCase")] 449 540 pub struct RecordViewDetail<'a> { 450 541 #[serde(borrow)] 451 - pub blobs: Vec<jacquard_common::types::value::Data<'a>>, 542 + pub blobs: Vec<crate::tools_ozone::moderation::BlobView<'a>>, 452 543 #[serde(borrow)] 453 544 pub cid: jacquard_common::types::string::Cid<'a>, 454 545 pub indexed_at: jacquard_common::types::string::Datetime, ··· 456 547 #[serde(borrow)] 457 548 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 458 549 #[serde(borrow)] 459 - pub moderation: jacquard_common::types::value::Data<'a>, 550 + pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>, 460 551 #[serde(borrow)] 461 - pub repo: jacquard_common::types::value::Data<'a>, 552 + pub repo: crate::tools_ozone::moderation::RepoView<'a>, 462 553 #[serde(borrow)] 463 554 pub uri: jacquard_common::types::string::AtUri<'a>, 464 555 #[serde(borrow)] 465 556 pub value: jacquard_common::types::value::Data<'a>, 466 557 } 558 + 467 559 #[jacquard_derive::lexicon] 468 560 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 469 561 #[serde(rename_all = "camelCase")] ··· 471 563 #[serde(borrow)] 472 564 pub uri: jacquard_common::types::string::AtUri<'a>, 473 565 } 566 + 474 567 ///Statistics about a set of record subject items 475 568 #[jacquard_derive::lexicon] 476 569 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 477 570 #[serde(rename_all = "camelCase")] 478 571 pub struct RecordsStats<'a> { 572 + ///Number of items that were appealed at least once 479 573 #[serde(skip_serializing_if = "std::option::Option::is_none")] 480 574 pub appealed_count: std::option::Option<i64>, 575 + ///Number of items that were escalated at least once 481 576 #[serde(skip_serializing_if = "std::option::Option::is_none")] 482 577 pub escalated_count: std::option::Option<i64>, 578 + ///Number of item currently in "reviewOpen" or "reviewEscalated" state 483 579 #[serde(skip_serializing_if = "std::option::Option::is_none")] 484 580 pub pending_count: std::option::Option<i64>, 581 + ///Number of item currently in "reviewNone" or "reviewClosed" state 485 582 #[serde(skip_serializing_if = "std::option::Option::is_none")] 486 583 pub processed_count: std::option::Option<i64>, 584 + ///Number of items that were reported at least once 487 585 #[serde(skip_serializing_if = "std::option::Option::is_none")] 488 586 pub reported_count: std::option::Option<i64>, 587 + ///Total number of item in the set 489 588 #[serde(skip_serializing_if = "std::option::Option::is_none")] 490 589 pub subject_count: std::option::Option<i64>, 590 + ///Number of item currently taken down 491 591 #[serde(skip_serializing_if = "std::option::Option::is_none")] 492 592 pub takendown_count: std::option::Option<i64>, 593 + ///Cumulative sum of the number of reports on the items in the set 493 594 #[serde(skip_serializing_if = "std::option::Option::is_none")] 494 595 pub total_reports: std::option::Option<i64>, 495 596 } 597 + 496 598 #[jacquard_derive::lexicon] 497 599 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 498 600 #[serde(rename_all = "camelCase")] ··· 516 618 #[serde(skip_serializing_if = "std::option::Option::is_none")] 517 619 pub invites_disabled: std::option::Option<bool>, 518 620 #[serde(borrow)] 519 - pub moderation: jacquard_common::types::value::Data<'a>, 621 + pub moderation: crate::tools_ozone::moderation::Moderation<'a>, 520 622 #[serde(borrow)] 521 623 pub related_records: Vec<jacquard_common::types::value::Data<'a>>, 522 624 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 525 627 Vec<crate::com_atproto::admin::ThreatSignature<'a>>, 526 628 >, 527 629 } 630 + 528 631 #[jacquard_derive::lexicon] 529 632 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 530 633 #[serde(rename_all = "camelCase")] ··· 558 661 #[serde(borrow)] 559 662 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 560 663 #[serde(borrow)] 561 - pub moderation: jacquard_common::types::value::Data<'a>, 664 + pub moderation: crate::tools_ozone::moderation::ModerationDetail<'a>, 562 665 #[serde(borrow)] 563 666 pub related_records: Vec<jacquard_common::types::value::Data<'a>>, 564 667 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 567 670 Vec<crate::com_atproto::admin::ThreatSignature<'a>>, 568 671 >, 569 672 } 673 + 570 674 #[jacquard_derive::lexicon] 571 675 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 572 676 #[serde(rename_all = "camelCase")] ··· 574 678 #[serde(borrow)] 575 679 pub did: jacquard_common::types::string::Did<'a>, 576 680 } 681 + 577 682 #[jacquard_derive::lexicon] 578 683 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 579 684 #[serde(rename_all = "camelCase")] 580 685 pub struct ReporterStats<'a> { 686 + ///The total number of reports made by the user on accounts. 581 687 pub account_report_count: i64, 582 688 #[serde(borrow)] 583 689 pub did: jacquard_common::types::string::Did<'a>, 690 + ///The total number of accounts labeled as a result of the user's reports. 584 691 pub labeled_account_count: i64, 692 + ///The total number of records labeled as a result of the user's reports. 585 693 pub labeled_record_count: i64, 694 + ///The total number of reports made by the user on records. 586 695 pub record_report_count: i64, 696 + ///The total number of accounts reported by the user. 587 697 pub reported_account_count: i64, 698 + ///The total number of records reported by the user. 588 699 pub reported_record_count: i64, 700 + ///The total number of accounts taken down as a result of the user's reports. 589 701 pub takendown_account_count: i64, 702 + ///The total number of records taken down as a result of the user's reports. 590 703 pub takendown_record_count: i64, 591 704 } 705 + 592 706 ///Account credentials revocation by moderators. Only works on DID subjects. 593 707 #[jacquard_derive::lexicon] 594 708 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 595 709 #[serde(rename_all = "camelCase")] 596 710 pub struct RevokeAccountCredentialsEvent<'a> { 711 + ///Comment describing the reason for the revocation. 597 712 #[serde(borrow)] 598 713 pub comment: jacquard_common::CowStr<'a>, 599 714 } 715 + 600 716 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 601 717 pub enum SubjectReviewState<'a> { 602 718 ReviewOpen, ··· 605 721 ReviewNone, 606 722 Other(jacquard_common::CowStr<'a>), 607 723 } 724 + 608 725 impl<'a> SubjectReviewState<'a> { 609 726 pub fn as_str(&self) -> &str { 610 727 match self { ··· 616 733 } 617 734 } 618 735 } 736 + 619 737 impl<'a> From<&'a str> for SubjectReviewState<'a> { 620 738 fn from(s: &'a str) -> Self { 621 739 match s { ··· 627 745 } 628 746 } 629 747 } 748 + 630 749 impl<'a> From<String> for SubjectReviewState<'a> { 631 750 fn from(s: String) -> Self { 632 751 match s.as_str() { ··· 638 757 } 639 758 } 640 759 } 760 + 641 761 impl<'a> AsRef<str> for SubjectReviewState<'a> { 642 762 fn as_ref(&self) -> &str { 643 763 self.as_str() 644 764 } 645 765 } 766 + 646 767 impl<'a> serde::Serialize for SubjectReviewState<'a> { 647 768 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 648 769 where ··· 651 772 serializer.serialize_str(self.as_str()) 652 773 } 653 774 } 775 + 654 776 impl<'de, 'a> serde::Deserialize<'de> for SubjectReviewState<'a> 655 777 where 656 778 'de: 'a, ··· 663 785 Ok(Self::from(s)) 664 786 } 665 787 } 788 + 666 789 #[jacquard_derive::lexicon] 667 790 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 668 791 #[serde(rename_all = "camelCase")] 669 792 pub struct SubjectStatusView<'a> { 793 + ///Statistics related to the account subject 670 794 #[serde(skip_serializing_if = "std::option::Option::is_none")] 671 795 #[serde(borrow)] 672 - pub account_stats: std::option::Option<jacquard_common::types::value::Data<'a>>, 796 + pub account_stats: std::option::Option< 797 + crate::tools_ozone::moderation::AccountStats<'a>, 798 + >, 799 + ///Current age assurance state of the subject. 673 800 #[serde(skip_serializing_if = "std::option::Option::is_none")] 674 801 #[serde(borrow)] 675 802 pub age_assurance_state: std::option::Option<jacquard_common::CowStr<'a>>, 803 + ///Whether or not the last successful update to age assurance was made by the user or admin. 676 804 #[serde(skip_serializing_if = "std::option::Option::is_none")] 677 805 #[serde(borrow)] 678 806 pub age_assurance_updated_by: std::option::Option<jacquard_common::CowStr<'a>>, 807 + ///True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators. 679 808 #[serde(skip_serializing_if = "std::option::Option::is_none")] 680 809 pub appealed: std::option::Option<bool>, 810 + ///Sticky comment on the subject. 681 811 #[serde(skip_serializing_if = "std::option::Option::is_none")] 682 812 #[serde(borrow)] 683 813 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 814 + ///Timestamp referencing the first moderation status impacting event was emitted on the subject 684 815 pub created_at: jacquard_common::types::string::Datetime, 685 816 #[serde(skip_serializing_if = "std::option::Option::is_none")] 686 817 #[serde(borrow)] 687 818 pub hosting: std::option::Option<SubjectStatusViewRecordHosting<'a>>, 688 819 pub id: i64, 820 + ///Timestamp referencing when the author of the subject appealed a moderation action 689 821 #[serde(skip_serializing_if = "std::option::Option::is_none")] 690 822 pub last_appealed_at: std::option::Option<jacquard_common::types::string::Datetime>, 691 823 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 701 833 >, 702 834 #[serde(skip_serializing_if = "std::option::Option::is_none")] 703 835 pub mute_until: std::option::Option<jacquard_common::types::string::Datetime>, 836 + ///Numeric value representing the level of priority. Higher score means higher priority. 704 837 #[serde(skip_serializing_if = "std::option::Option::is_none")] 705 838 pub priority_score: std::option::Option<i64>, 839 + ///Statistics related to the record subjects authored by the subject's account 706 840 #[serde(skip_serializing_if = "std::option::Option::is_none")] 707 841 #[serde(borrow)] 708 - pub records_stats: std::option::Option<jacquard_common::types::value::Data<'a>>, 842 + pub records_stats: std::option::Option< 843 + crate::tools_ozone::moderation::RecordsStats<'a>, 844 + >, 709 845 #[serde(borrow)] 710 - pub review_state: jacquard_common::types::value::Data<'a>, 846 + pub review_state: crate::tools_ozone::moderation::SubjectReviewState<'a>, 711 847 #[serde(borrow)] 712 848 pub subject: SubjectStatusViewRecordSubject<'a>, 713 849 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 725 861 pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 726 862 #[serde(skip_serializing_if = "std::option::Option::is_none")] 727 863 pub takendown: std::option::Option<bool>, 864 + ///Timestamp referencing when the last update was made to the moderation status of the subject 728 865 pub updated_at: jacquard_common::types::string::Datetime, 729 866 } 867 + 730 868 #[jacquard_derive::open_union] 731 869 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 732 870 #[serde(tag = "$type")] ··· 744 882 #[serde(rename = "chat.bsky.convo.defs#messageRef")] 745 883 DefsMessageRef(Box<crate::chat_bsky::convo::MessageRef<'a>>), 746 884 } 885 + 747 886 ///Detailed view of a subject. For record subjects, the author's repo and profile will be returned. 748 887 #[jacquard_derive::lexicon] 749 888 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] ··· 754 893 pub profile: std::option::Option<SubjectViewRecordProfile<'a>>, 755 894 #[serde(skip_serializing_if = "std::option::Option::is_none")] 756 895 #[serde(borrow)] 757 - pub record: std::option::Option<jacquard_common::types::value::Data<'a>>, 896 + pub record: std::option::Option< 897 + crate::tools_ozone::moderation::RecordViewDetail<'a>, 898 + >, 758 899 #[serde(skip_serializing_if = "std::option::Option::is_none")] 759 900 #[serde(borrow)] 760 - pub repo: std::option::Option<jacquard_common::types::value::Data<'a>>, 901 + pub repo: std::option::Option<crate::tools_ozone::moderation::RepoViewDetail<'a>>, 761 902 #[serde(skip_serializing_if = "std::option::Option::is_none")] 762 903 #[serde(borrow)] 763 - pub status: std::option::Option<jacquard_common::types::value::Data<'a>>, 904 + pub status: std::option::Option< 905 + crate::tools_ozone::moderation::SubjectStatusView<'a>, 906 + >, 764 907 #[serde(borrow)] 765 908 pub subject: jacquard_common::CowStr<'a>, 766 909 #[serde(borrow)] 767 910 pub r#type: crate::com_atproto::moderation::SubjectType<'a>, 768 911 } 912 + 769 913 #[jacquard_derive::open_union] 770 914 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 771 915 #[serde(tag = "$type")] ··· 778 922 pub height: i64, 779 923 pub length: i64, 780 924 pub width: i64, 781 - } 782 - pub mod emit_event; 783 - pub mod get_account_timeline; 784 - pub mod get_event; 785 - pub mod get_record; 786 - pub mod get_records; 787 - pub mod get_repo; 788 - pub mod get_reporter_stats; 789 - pub mod get_repos; 790 - pub mod get_subjects; 791 - pub mod query_events; 792 - pub mod query_statuses; 793 - pub mod search_repos; 925 + }
+13 -2
crates/jacquard-api/src/tools_ozone/moderation/emit_event.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 pub created_by: jacquard_common::types::string::Did<'a>, 7 12 #[serde(borrow)] 8 13 pub event: EmitEventInputRecordEvent<'a>, 14 + ///An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject. 9 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 10 16 #[serde(borrow)] 11 17 pub external_id: std::option::Option<jacquard_common::CowStr<'a>>, ··· 20 26 Vec<jacquard_common::types::string::Cid<'a>>, 21 27 >, 22 28 } 29 + 23 30 #[jacquard_derive::open_union] 24 31 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 25 32 #[serde(tag = "$type")] ··· 86 93 Box<crate::tools_ozone::moderation::RevokeAccountCredentialsEvent<'a>>, 87 94 ), 88 95 } 96 + 89 97 #[jacquard_derive::open_union] 90 98 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 91 99 #[serde(tag = "$type")] ··· 96 104 #[serde(rename = "com.atproto.repo.strongRef")] 97 105 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 98 106 } 107 + 99 108 #[jacquard_derive::lexicon] 100 109 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 101 110 #[serde(rename_all = "camelCase")] ··· 104 113 #[serde(borrow)] 105 114 pub value: crate::tools_ozone::moderation::ModEventView<'a>, 106 115 } 116 + 107 117 #[jacquard_derive::open_union] 108 118 #[derive( 109 119 serde::Serialize, ··· 124 134 #[serde(rename = "DuplicateExternalId")] 125 135 DuplicateExternalId(std::option::Option<String>), 126 136 } 137 + 127 138 impl std::fmt::Display for EmitEventError<'_> { 128 139 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 129 140 match self { ··· 141 152 } 142 153 Ok(()) 143 154 } 144 - Self::Unknown(_) => write!(f, "Unknown error"), 155 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 145 156 } 146 157 } 147 - } 158 + }
+15 -3
crates/jacquard-api/src/tools_ozone/moderation/get_account_timeline.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetAccountTimelineParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 11 17 #[serde(borrow)] 12 18 pub timeline: Vec<jacquard_common::types::value::Data<'a>>, 13 19 } 20 + 14 21 #[jacquard_derive::open_union] 15 22 #[derive( 16 23 serde::Serialize, ··· 28 35 #[serde(rename = "RepoNotFound")] 29 36 RepoNotFound(std::option::Option<String>), 30 37 } 38 + 31 39 impl std::fmt::Display for GetAccountTimelineError<'_> { 32 40 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 33 41 match self { ··· 38 46 } 39 47 Ok(()) 40 48 } 41 - Self::Unknown(_) => write!(f, "Unknown error"), 49 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 42 50 } 43 51 } 44 52 } 53 + 45 54 #[jacquard_derive::lexicon] 46 55 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 47 56 #[serde(rename_all = "camelCase")] ··· 49 58 #[serde(borrow)] 50 59 pub day: jacquard_common::CowStr<'a>, 51 60 #[serde(borrow)] 52 - pub summary: Vec<jacquard_common::types::value::Data<'a>>, 61 + pub summary: Vec< 62 + crate::tools_ozone::moderation::get_account_timeline::TimelineItemSummary<'a>, 63 + >, 53 64 } 65 + 54 66 #[jacquard_derive::lexicon] 55 67 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 56 68 #[serde(rename_all = "camelCase")] ··· 60 72 pub event_subject_type: jacquard_common::CowStr<'a>, 61 73 #[serde(borrow)] 62 74 pub event_type: jacquard_common::CowStr<'a>, 63 - } 75 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/get_event.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetEventParams { 4 9 pub id: i64, 5 10 } 11 + 6 12 #[jacquard_derive::lexicon] 7 13 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 8 14 #[serde(rename_all = "camelCase")] ··· 10 16 #[serde(flatten)] 11 17 #[serde(borrow)] 12 18 pub value: crate::tools_ozone::moderation::ModEventViewDetail<'a>, 13 - } 19 + }
+10 -2
crates/jacquard-api/src/tools_ozone/moderation/get_record.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRecordParams<'a> { ··· 7 12 #[serde(borrow)] 8 13 pub uri: jacquard_common::types::string::AtUri<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 15 21 #[serde(borrow)] 16 22 pub value: crate::tools_ozone::moderation::RecordViewDetail<'a>, 17 23 } 24 + 18 25 #[jacquard_derive::open_union] 19 26 #[derive( 20 27 serde::Serialize, ··· 32 39 #[serde(rename = "RecordNotFound")] 33 40 RecordNotFound(std::option::Option<String>), 34 41 } 42 + 35 43 impl std::fmt::Display for GetRecordError<'_> { 36 44 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 37 45 match self { ··· 42 50 } 43 51 Ok(()) 44 52 } 45 - Self::Unknown(_) => write!(f, "Unknown error"), 53 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 46 54 } 47 55 } 48 - } 56 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/get_records.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRecordsParams<'a> { 4 9 #[serde(borrow)] 5 10 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetRecordsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub records: Vec<jacquard_common::types::value::Data<'a>>, 13 - } 19 + }
+10 -2
crates/jacquard-api/src/tools_ozone/moderation/get_repo.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetRepoParams<'a> { 4 9 #[serde(borrow)] 5 10 pub did: jacquard_common::types::string::Did<'a>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] ··· 12 18 #[serde(borrow)] 13 19 pub value: crate::tools_ozone::moderation::RepoViewDetail<'a>, 14 20 } 21 + 15 22 #[jacquard_derive::open_union] 16 23 #[derive( 17 24 serde::Serialize, ··· 29 36 #[serde(rename = "RepoNotFound")] 30 37 RepoNotFound(std::option::Option<String>), 31 38 } 39 + 32 40 impl std::fmt::Display for GetRepoError<'_> { 33 41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 34 42 match self { ··· 39 47 } 40 48 Ok(()) 41 49 } 42 - Self::Unknown(_) => write!(f, "Unknown error"), 50 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 43 51 } 44 52 } 45 - } 53 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/get_reporter_stats.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetReporterStatsParams<'a> { 4 9 #[serde(borrow)] 5 10 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetReporterStatsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub stats: Vec<crate::tools_ozone::moderation::ReporterStats<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/get_repos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetReposParams<'a> { 4 9 #[serde(borrow)] 5 10 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetReposOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub repos: Vec<jacquard_common::types::value::Data<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/get_subjects.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetSubjectsParams<'a> { 4 9 #[serde(borrow)] 5 10 pub subjects: Vec<jacquard_common::CowStr<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct GetSubjectsOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub subjects: Vec<crate::tools_ozone::moderation::SubjectView<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/query_events.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct QueryEventsParams<'a> { ··· 63 68 #[serde(borrow)] 64 69 pub types: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 65 70 } 71 + 66 72 #[jacquard_derive::lexicon] 67 73 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 68 74 #[serde(rename_all = "camelCase")] ··· 72 78 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 73 79 #[serde(borrow)] 74 80 pub events: Vec<crate::tools_ozone::moderation::ModEventView<'a>>, 75 - } 81 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/query_statuses.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct QueryStatusesParams<'a> { ··· 97 102 #[serde(skip_serializing_if = "std::option::Option::is_none")] 98 103 pub takendown: std::option::Option<bool>, 99 104 } 105 + 100 106 #[jacquard_derive::lexicon] 101 107 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 102 108 #[serde(rename_all = "camelCase")] ··· 106 112 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 107 113 #[serde(borrow)] 108 114 pub subject_statuses: Vec<crate::tools_ozone::moderation::SubjectStatusView<'a>>, 109 - } 115 + }
+7 -1
crates/jacquard-api/src/tools_ozone/moderation/search_repos.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchReposParams<'a> { ··· 13 18 #[serde(borrow)] 14 19 pub term: std::option::Option<jacquard_common::CowStr<'a>>, 15 20 } 21 + 16 22 #[jacquard_derive::lexicon] 17 23 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 24 #[serde(rename_all = "camelCase")] ··· 22 28 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 23 29 #[serde(borrow)] 24 30 pub repos: Vec<crate::tools_ozone::moderation::RepoView<'a>>, 25 - } 31 + }
+12 -1
crates/jacquard-api/src/tools_ozone/report.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 2 7 pub enum ReasonType<'a> { 3 8 ToolsOzoneReportDefsReasonAppeal, ··· 47 52 ToolsOzoneReportDefsReasonCivicImpersonation, 48 53 Other(jacquard_common::CowStr<'a>), 49 54 } 55 + 50 56 impl<'a> ReasonType<'a> { 51 57 pub fn as_str(&self) -> &str { 52 58 match self { ··· 189 195 } 190 196 } 191 197 } 198 + 192 199 impl<'a> From<&'a str> for ReasonType<'a> { 193 200 fn from(s: &'a str) -> Self { 194 201 match s { ··· 331 338 } 332 339 } 333 340 } 341 + 334 342 impl<'a> From<String> for ReasonType<'a> { 335 343 fn from(s: String) -> Self { 336 344 match s.as_str() { ··· 473 481 } 474 482 } 475 483 } 484 + 476 485 impl<'a> AsRef<str> for ReasonType<'a> { 477 486 fn as_ref(&self) -> &str { 478 487 self.as_str() 479 488 } 480 489 } 490 + 481 491 impl<'a> serde::Serialize for ReasonType<'a> { 482 492 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 483 493 where ··· 486 496 serializer.serialize_str(self.as_str()) 487 497 } 488 498 } 499 + 489 500 impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a> 490 501 where 491 502 'de: 'a, ··· 497 508 let s = <&'de str>::deserialize(deserializer)?; 498 509 Ok(Self::from(s)) 499 510 } 500 - } 511 + }
+57 -13
crates/jacquard-api/src/tools_ozone/safelink.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod add_rule; 7 + pub mod query_events; 8 + pub mod query_rules; 9 + pub mod remove_rule; 10 + pub mod update_rule; 11 + 1 12 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 2 13 pub enum ActionType<'a> { 3 14 Block, ··· 5 16 Whitelist, 6 17 Other(jacquard_common::CowStr<'a>), 7 18 } 19 + 8 20 impl<'a> ActionType<'a> { 9 21 pub fn as_str(&self) -> &str { 10 22 match self { ··· 15 27 } 16 28 } 17 29 } 30 + 18 31 impl<'a> From<&'a str> for ActionType<'a> { 19 32 fn from(s: &'a str) -> Self { 20 33 match s { ··· 25 38 } 26 39 } 27 40 } 41 + 28 42 impl<'a> From<String> for ActionType<'a> { 29 43 fn from(s: String) -> Self { 30 44 match s.as_str() { ··· 35 49 } 36 50 } 37 51 } 52 + 38 53 impl<'a> AsRef<str> for ActionType<'a> { 39 54 fn as_ref(&self) -> &str { 40 55 self.as_str() 41 56 } 42 57 } 58 + 43 59 impl<'a> serde::Serialize for ActionType<'a> { 44 60 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 45 61 where ··· 48 64 serializer.serialize_str(self.as_str()) 49 65 } 50 66 } 67 + 51 68 impl<'de, 'a> serde::Deserialize<'de> for ActionType<'a> 52 69 where 53 70 'de: 'a, ··· 60 77 Ok(Self::from(s)) 61 78 } 62 79 } 80 + 63 81 ///An event for URL safety decisions 64 82 #[jacquard_derive::lexicon] 65 83 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 66 84 #[serde(rename_all = "camelCase")] 67 85 pub struct Event<'a> { 68 86 #[serde(borrow)] 69 - pub action: jacquard_common::types::value::Data<'a>, 87 + pub action: crate::tools_ozone::safelink::ActionType<'a>, 88 + ///Optional comment about the decision 70 89 #[serde(skip_serializing_if = "std::option::Option::is_none")] 71 90 #[serde(borrow)] 72 91 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 73 92 pub created_at: jacquard_common::types::string::Datetime, 93 + ///DID of the user who created this rule 74 94 #[serde(borrow)] 75 95 pub created_by: jacquard_common::types::string::Did<'a>, 76 96 #[serde(borrow)] 77 - pub event_type: jacquard_common::types::value::Data<'a>, 97 + pub event_type: crate::tools_ozone::safelink::EventType<'a>, 98 + ///Auto-incrementing row ID 78 99 pub id: i64, 79 100 #[serde(borrow)] 80 - pub pattern: jacquard_common::types::value::Data<'a>, 101 + pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 81 102 #[serde(borrow)] 82 - pub reason: jacquard_common::types::value::Data<'a>, 103 + pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 104 + ///The URL that this rule applies to 83 105 #[serde(borrow)] 84 106 pub url: jacquard_common::CowStr<'a>, 85 107 } 108 + 86 109 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 87 110 pub enum EventType<'a> { 88 111 AddRule, ··· 90 113 RemoveRule, 91 114 Other(jacquard_common::CowStr<'a>), 92 115 } 116 + 93 117 impl<'a> EventType<'a> { 94 118 pub fn as_str(&self) -> &str { 95 119 match self { ··· 100 124 } 101 125 } 102 126 } 127 + 103 128 impl<'a> From<&'a str> for EventType<'a> { 104 129 fn from(s: &'a str) -> Self { 105 130 match s { ··· 110 135 } 111 136 } 112 137 } 138 + 113 139 impl<'a> From<String> for EventType<'a> { 114 140 fn from(s: String) -> Self { 115 141 match s.as_str() { ··· 120 146 } 121 147 } 122 148 } 149 + 123 150 impl<'a> AsRef<str> for EventType<'a> { 124 151 fn as_ref(&self) -> &str { 125 152 self.as_str() 126 153 } 127 154 } 155 + 128 156 impl<'a> serde::Serialize for EventType<'a> { 129 157 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 130 158 where ··· 133 161 serializer.serialize_str(self.as_str()) 134 162 } 135 163 } 164 + 136 165 impl<'de, 'a> serde::Deserialize<'de> for EventType<'a> 137 166 where 138 167 'de: 'a, ··· 145 174 Ok(Self::from(s)) 146 175 } 147 176 } 177 + 148 178 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 149 179 pub enum PatternType<'a> { 150 180 Domain, 151 181 Url, 152 182 Other(jacquard_common::CowStr<'a>), 153 183 } 184 + 154 185 impl<'a> PatternType<'a> { 155 186 pub fn as_str(&self) -> &str { 156 187 match self { ··· 160 191 } 161 192 } 162 193 } 194 + 163 195 impl<'a> From<&'a str> for PatternType<'a> { 164 196 fn from(s: &'a str) -> Self { 165 197 match s { ··· 169 201 } 170 202 } 171 203 } 204 + 172 205 impl<'a> From<String> for PatternType<'a> { 173 206 fn from(s: String) -> Self { 174 207 match s.as_str() { ··· 178 211 } 179 212 } 180 213 } 214 + 181 215 impl<'a> AsRef<str> for PatternType<'a> { 182 216 fn as_ref(&self) -> &str { 183 217 self.as_str() 184 218 } 185 219 } 220 + 186 221 impl<'a> serde::Serialize for PatternType<'a> { 187 222 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 188 223 where ··· 191 226 serializer.serialize_str(self.as_str()) 192 227 } 193 228 } 229 + 194 230 impl<'de, 'a> serde::Deserialize<'de> for PatternType<'a> 195 231 where 196 232 'de: 'a, ··· 203 239 Ok(Self::from(s)) 204 240 } 205 241 } 242 + 206 243 #[derive(Debug, Clone, PartialEq, Eq, Hash)] 207 244 pub enum ReasonType<'a> { 208 245 Csam, ··· 211 248 None, 212 249 Other(jacquard_common::CowStr<'a>), 213 250 } 251 + 214 252 impl<'a> ReasonType<'a> { 215 253 pub fn as_str(&self) -> &str { 216 254 match self { ··· 222 260 } 223 261 } 224 262 } 263 + 225 264 impl<'a> From<&'a str> for ReasonType<'a> { 226 265 fn from(s: &'a str) -> Self { 227 266 match s { ··· 233 272 } 234 273 } 235 274 } 275 + 236 276 impl<'a> From<String> for ReasonType<'a> { 237 277 fn from(s: String) -> Self { 238 278 match s.as_str() { ··· 244 284 } 245 285 } 246 286 } 287 + 247 288 impl<'a> AsRef<str> for ReasonType<'a> { 248 289 fn as_ref(&self) -> &str { 249 290 self.as_str() 250 291 } 251 292 } 293 + 252 294 impl<'a> serde::Serialize for ReasonType<'a> { 253 295 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 254 296 where ··· 257 299 serializer.serialize_str(self.as_str()) 258 300 } 259 301 } 302 + 260 303 impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a> 261 304 where 262 305 'de: 'a, ··· 269 312 Ok(Self::from(s)) 270 313 } 271 314 } 315 + 272 316 ///Input for creating a URL safety rule 273 317 #[jacquard_derive::lexicon] 274 318 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 275 319 #[serde(rename_all = "camelCase")] 276 320 pub struct UrlRule<'a> { 277 321 #[serde(borrow)] 278 - pub action: jacquard_common::types::value::Data<'a>, 322 + pub action: crate::tools_ozone::safelink::ActionType<'a>, 323 + ///Optional comment about the decision 279 324 #[serde(skip_serializing_if = "std::option::Option::is_none")] 280 325 #[serde(borrow)] 281 326 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 327 + ///Timestamp when the rule was created 282 328 pub created_at: jacquard_common::types::string::Datetime, 329 + ///DID of the user added the rule. 283 330 #[serde(borrow)] 284 331 pub created_by: jacquard_common::types::string::Did<'a>, 285 332 #[serde(borrow)] 286 - pub pattern: jacquard_common::types::value::Data<'a>, 333 + pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 287 334 #[serde(borrow)] 288 - pub reason: jacquard_common::types::value::Data<'a>, 335 + pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 336 + ///Timestamp when the rule was last updated 289 337 pub updated_at: jacquard_common::types::string::Datetime, 338 + ///The URL or domain to apply the rule to 290 339 #[serde(borrow)] 291 340 pub url: jacquard_common::CowStr<'a>, 292 - } 293 - pub mod add_rule; 294 - pub mod query_events; 295 - pub mod query_rules; 296 - pub mod remove_rule; 297 - pub mod update_rule; 341 + }
+13 -2
crates/jacquard-api/src/tools_ozone/safelink/add_rule.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct AddRuleInput<'a> { 5 10 #[serde(borrow)] 6 11 pub action: crate::tools_ozone::safelink::ActionType<'a>, 12 + ///Optional comment about the decision 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 #[serde(borrow)] 9 15 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 16 + ///Author DID. Only respected when using admin auth 10 17 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 18 #[serde(borrow)] 12 19 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, ··· 14 21 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 15 22 #[serde(borrow)] 16 23 pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 24 + ///The URL or domain to apply the rule to 17 25 #[serde(borrow)] 18 26 pub url: jacquard_common::CowStr<'a>, 19 27 } 28 + 20 29 #[jacquard_derive::lexicon] 21 30 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 31 #[serde(rename_all = "camelCase")] ··· 25 34 #[serde(borrow)] 26 35 pub value: crate::tools_ozone::safelink::Event<'a>, 27 36 } 37 + 28 38 #[jacquard_derive::open_union] 29 39 #[derive( 30 40 serde::Serialize, ··· 46 56 #[serde(rename = "RuleAlreadyExists")] 47 57 RuleAlreadyExists(std::option::Option<String>), 48 58 } 59 + 49 60 impl std::fmt::Display for AddRuleError<'_> { 50 61 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 51 62 match self { ··· 63 74 } 64 75 Ok(()) 65 76 } 66 - Self::Unknown(_) => write!(f, "Unknown error"), 77 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 67 78 } 68 79 } 69 - } 80 + }
+13 -1
crates/jacquard-api/src/tools_ozone/safelink/query_events.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct QueryEventsInput<'a> { 10 + ///Cursor for pagination 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 14 + ///Maximum number of results to return 8 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 16 pub limit: std::option::Option<i64>, 17 + ///Filter by pattern type 10 18 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 19 #[serde(borrow)] 12 20 pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>, 21 + ///Sort direction 13 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 14 23 #[serde(borrow)] 15 24 pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>, 25 + ///Filter by specific URLs or domains 16 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 27 #[serde(borrow)] 18 28 pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 19 29 } 30 + 20 31 #[jacquard_derive::lexicon] 21 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 33 #[serde(rename_all = "camelCase")] 23 34 pub struct QueryEventsOutput<'a> { 35 + ///Next cursor for pagination. Only present if there are more results. 24 36 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 37 #[serde(borrow)] 26 38 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 27 39 #[serde(borrow)] 28 40 pub events: Vec<crate::tools_ozone::safelink::Event<'a>>, 29 - } 41 + }
+16 -1
crates/jacquard-api/src/tools_ozone/safelink/query_rules.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct QueryRulesInput<'a> { 10 + ///Filter by action types 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub actions: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 14 + ///Filter by rule creator 8 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 16 #[serde(borrow)] 10 17 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 18 + ///Cursor for pagination 11 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 12 20 #[serde(borrow)] 13 21 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 22 + ///Maximum number of results to return 14 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 24 pub limit: std::option::Option<i64>, 25 + ///Filter by pattern type 16 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 27 #[serde(borrow)] 18 28 pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>, 29 + ///Filter by reason type 19 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 31 #[serde(borrow)] 21 32 pub reason: std::option::Option<jacquard_common::CowStr<'a>>, 33 + ///Sort direction 22 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 35 #[serde(borrow)] 24 36 pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>, 37 + ///Filter by specific URLs or domains 25 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 39 #[serde(borrow)] 27 40 pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 28 41 } 42 + 29 43 #[jacquard_derive::lexicon] 30 44 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 31 45 #[serde(rename_all = "camelCase")] 32 46 pub struct QueryRulesOutput<'a> { 47 + ///Next cursor for pagination. Only present if there are more results. 33 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 49 #[serde(borrow)] 35 50 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 36 51 #[serde(borrow)] 37 52 pub rules: Vec<crate::tools_ozone::safelink::UrlRule<'a>>, 38 - } 53 + }
+13 -2
crates/jacquard-api/src/tools_ozone/safelink/remove_rule.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RemoveRuleInput<'a> { 10 + ///Optional comment about why the rule is being removed 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 14 + ///Optional DID of the user. Only respected when using admin auth. 8 15 #[serde(skip_serializing_if = "std::option::Option::is_none")] 9 16 #[serde(borrow)] 10 17 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 11 18 #[serde(borrow)] 12 19 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 20 + ///The URL or domain to remove the rule for 13 21 #[serde(borrow)] 14 22 pub url: jacquard_common::CowStr<'a>, 15 23 } 24 + 16 25 #[jacquard_derive::lexicon] 17 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 18 27 #[serde(rename_all = "camelCase")] ··· 21 30 #[serde(borrow)] 22 31 pub value: crate::tools_ozone::safelink::Event<'a>, 23 32 } 33 + 24 34 #[jacquard_derive::open_union] 25 35 #[derive( 26 36 serde::Serialize, ··· 39 49 #[serde(rename = "RuleNotFound")] 40 50 RuleNotFound(std::option::Option<String>), 41 51 } 52 + 42 53 impl std::fmt::Display for RemoveRuleError<'_> { 43 54 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 44 55 match self { ··· 49 60 } 50 61 Ok(()) 51 62 } 52 - Self::Unknown(_) => write!(f, "Unknown error"), 63 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 53 64 } 54 65 } 55 - } 66 + }
+13 -2
crates/jacquard-api/src/tools_ozone/safelink/update_rule.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct UpdateRuleInput<'a> { 5 10 #[serde(borrow)] 6 11 pub action: crate::tools_ozone::safelink::ActionType<'a>, 12 + ///Optional comment about the update 7 13 #[serde(skip_serializing_if = "std::option::Option::is_none")] 8 14 #[serde(borrow)] 9 15 pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 16 + ///Optional DID to credit as the creator. Only respected for admin_token authentication. 10 17 #[serde(skip_serializing_if = "std::option::Option::is_none")] 11 18 #[serde(borrow)] 12 19 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, ··· 14 21 pub pattern: crate::tools_ozone::safelink::PatternType<'a>, 15 22 #[serde(borrow)] 16 23 pub reason: crate::tools_ozone::safelink::ReasonType<'a>, 24 + ///The URL or domain to update the rule for 17 25 #[serde(borrow)] 18 26 pub url: jacquard_common::CowStr<'a>, 19 27 } 28 + 20 29 #[jacquard_derive::lexicon] 21 30 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 22 31 #[serde(rename_all = "camelCase")] ··· 25 34 #[serde(borrow)] 26 35 pub value: crate::tools_ozone::safelink::Event<'a>, 27 36 } 37 + 28 38 #[jacquard_derive::open_union] 29 39 #[derive( 30 40 serde::Serialize, ··· 43 53 #[serde(rename = "RuleNotFound")] 44 54 RuleNotFound(std::option::Option<String>), 45 55 } 56 + 46 57 impl std::fmt::Display for UpdateRuleError<'_> { 47 58 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 48 59 match self { ··· 53 64 } 54 65 Ok(()) 55 66 } 56 - Self::Unknown(_) => write!(f, "Unknown error"), 67 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 57 68 } 58 69 } 59 - } 70 + }
+6 -1
crates/jacquard-api/src/tools_ozone/server.rs
··· 1 - pub mod get_config; 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod get_config;
+9 -1
crates/jacquard-api/src/tools_ozone/server/get_config.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 14 19 #[serde(skip_serializing_if = "std::option::Option::is_none")] 15 20 #[serde(borrow)] 16 21 pub pds: std::option::Option<jacquard_common::types::value::Data<'a>>, 22 + ///The did of the verifier used for verification. 17 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 18 24 #[serde(borrow)] 19 25 pub verifier_did: std::option::Option<jacquard_common::types::string::Did<'a>>, ··· 21 27 #[serde(borrow)] 22 28 pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>, 23 29 } 30 + 24 31 #[jacquard_derive::lexicon] 25 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 26 33 #[serde(rename_all = "camelCase")] ··· 29 36 #[serde(borrow)] 30 37 pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>, 31 38 } 39 + 32 40 #[jacquard_derive::lexicon] 33 41 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 34 42 #[serde(rename_all = "camelCase")] ··· 36 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 45 #[serde(borrow)] 38 46 pub role: std::option::Option<jacquard_common::CowStr<'a>>, 39 - } 47 + }
+14 -7
crates/jacquard-api/src/tools_ozone/set.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod add_values; 7 + pub mod delete_set; 8 + pub mod delete_values; 9 + pub mod get_values; 10 + pub mod query_sets; 11 + pub mod upsert_set; 12 + 1 13 #[jacquard_derive::lexicon] 2 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 15 #[serde(rename_all = "camelCase")] ··· 8 20 #[serde(borrow)] 9 21 pub name: jacquard_common::CowStr<'a>, 10 22 } 23 + 11 24 #[jacquard_derive::lexicon] 12 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 26 #[serde(rename_all = "camelCase")] ··· 20 33 pub name: jacquard_common::CowStr<'a>, 21 34 pub set_size: i64, 22 35 pub updated_at: jacquard_common::types::string::Datetime, 23 - } 24 - pub mod add_values; 25 - pub mod delete_set; 26 - pub mod delete_values; 27 - pub mod get_values; 28 - pub mod query_sets; 29 - pub mod upsert_set; 36 + }
+8 -1
crates/jacquard-api/src/tools_ozone/set/add_values.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct AddValuesInput<'a> { 10 + ///Name of the set to add values to 5 11 #[serde(borrow)] 6 12 pub name: jacquard_common::CowStr<'a>, 13 + ///Array of string values to add to the set 7 14 #[serde(borrow)] 8 15 pub values: Vec<jacquard_common::CowStr<'a>>, 9 - } 16 + }
+10 -2
crates/jacquard-api/src/tools_ozone/set/delete_set.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeleteSetInput<'a> { 10 + ///Name of the set to delete 5 11 #[serde(borrow)] 6 12 pub name: jacquard_common::CowStr<'a>, 7 13 } 14 + 8 15 #[jacquard_derive::lexicon] 9 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 10 17 #[serde(rename_all = "camelCase")] ··· 27 34 #[serde(rename = "SetNotFound")] 28 35 SetNotFound(std::option::Option<String>), 29 36 } 37 + 30 38 impl std::fmt::Display for DeleteSetError<'_> { 31 39 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 32 40 match self { ··· 37 45 } 38 46 Ok(()) 39 47 } 40 - Self::Unknown(_) => write!(f, "Unknown error"), 48 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 41 49 } 42 50 } 43 - } 51 + }
+11 -2
crates/jacquard-api/src/tools_ozone/set/delete_values.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct DeleteValuesInput<'a> { 10 + ///Name of the set to delete values from 5 11 #[serde(borrow)] 6 12 pub name: jacquard_common::CowStr<'a>, 13 + ///Array of string values to delete from the set 7 14 #[serde(borrow)] 8 15 pub values: Vec<jacquard_common::CowStr<'a>>, 9 16 } 17 + 10 18 #[jacquard_derive::open_union] 11 19 #[derive( 12 20 serde::Serialize, ··· 25 33 #[serde(rename = "SetNotFound")] 26 34 SetNotFound(std::option::Option<String>), 27 35 } 36 + 28 37 impl std::fmt::Display for DeleteValuesError<'_> { 29 38 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 30 39 match self { ··· 35 44 } 36 45 Ok(()) 37 46 } 38 - Self::Unknown(_) => write!(f, "Unknown error"), 47 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 39 48 } 40 49 } 41 - } 50 + }
+10 -2
crates/jacquard-api/src/tools_ozone/set/get_values.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct GetValuesParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub name: jacquard_common::CowStr<'a>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 21 27 #[serde(borrow)] 22 28 pub values: Vec<jacquard_common::CowStr<'a>>, 23 29 } 30 + 24 31 #[jacquard_derive::open_union] 25 32 #[derive( 26 33 serde::Serialize, ··· 39 46 #[serde(rename = "SetNotFound")] 40 47 SetNotFound(std::option::Option<String>), 41 48 } 49 + 42 50 impl std::fmt::Display for GetValuesError<'_> { 43 51 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 44 52 match self { ··· 49 57 } 50 58 Ok(()) 51 59 } 52 - Self::Unknown(_) => write!(f, "Unknown error"), 60 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 53 61 } 54 62 } 55 - } 63 + }
+7 -1
crates/jacquard-api/src/tools_ozone/set/query_sets.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct QuerySetsParams<'a> { ··· 16 21 #[serde(borrow)] 17 22 pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>, 18 23 } 24 + 19 25 #[jacquard_derive::lexicon] 20 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 27 #[serde(rename_all = "camelCase")] ··· 25 31 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 26 32 #[serde(borrow)] 27 33 pub sets: Vec<crate::tools_ozone::set::SetView<'a>>, 28 - } 34 + }
+7 -1
crates/jacquard-api/src/tools_ozone/set/upsert_set.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 6 11 #[serde(borrow)] 7 12 pub value: crate::tools_ozone::set::Set<'a>, 8 13 } 14 + 9 15 #[jacquard_derive::lexicon] 10 16 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 11 17 #[serde(rename_all = "camelCase")] ··· 13 19 #[serde(flatten)] 14 20 #[serde(borrow)] 15 21 pub value: crate::tools_ozone::set::SetView<'a>, 16 - } 22 + }
+10 -4
crates/jacquard-api/src/tools_ozone/setting.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod list_options; 7 + pub mod remove_options; 8 + pub mod upsert_option; 9 + 1 10 #[jacquard_derive::lexicon] 2 11 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 12 #[serde(rename_all = "camelCase")] ··· 24 33 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 25 34 #[serde(borrow)] 26 35 pub value: jacquard_common::types::value::Data<'a>, 27 - } 28 - pub mod list_options; 29 - pub mod remove_options; 30 - pub mod upsert_option; 36 + }
+7 -1
crates/jacquard-api/src/tools_ozone/setting/list_options.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListOptionsParams<'a> { ··· 16 21 #[serde(borrow)] 17 22 pub scope: std::option::Option<jacquard_common::CowStr<'a>>, 18 23 } 24 + 19 25 #[jacquard_derive::lexicon] 20 26 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 21 27 #[serde(rename_all = "camelCase")] ··· 25 31 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 26 32 #[serde(borrow)] 27 33 pub options: Vec<crate::tools_ozone::setting::Option<'a>>, 28 - } 34 + }
+7 -1
crates/jacquard-api/src/tools_ozone/setting/remove_options.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub scope: jacquard_common::CowStr<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] 13 - pub struct RemoveOptionsOutput<'a> {} 19 + pub struct RemoveOptionsOutput<'a> {}
+7 -1
crates/jacquard-api/src/tools_ozone/setting/upsert_option.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 15 20 #[serde(borrow)] 16 21 pub value: jacquard_common::types::value::Data<'a>, 17 22 } 23 + 18 24 #[jacquard_derive::lexicon] 19 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 26 #[serde(rename_all = "camelCase")] 21 27 pub struct UpsertOptionOutput<'a> { 22 28 #[serde(borrow)] 23 29 pub option: crate::tools_ozone::setting::Option<'a>, 24 - } 30 + }
+10 -4
crates/jacquard-api/src/tools_ozone/signature.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod find_correlation; 7 + pub mod find_related_accounts; 8 + pub mod search_accounts; 9 + 1 10 #[jacquard_derive::lexicon] 2 11 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 12 #[serde(rename_all = "camelCase")] ··· 6 15 pub property: jacquard_common::CowStr<'a>, 7 16 #[serde(borrow)] 8 17 pub value: jacquard_common::CowStr<'a>, 9 - } 10 - pub mod find_correlation; 11 - pub mod find_related_accounts; 12 - pub mod search_accounts; 18 + }
+7 -1
crates/jacquard-api/src/tools_ozone/signature/find_correlation.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct FindCorrelationParams<'a> { 4 9 #[serde(borrow)] 5 10 pub dids: Vec<jacquard_common::types::string::Did<'a>>, 6 11 } 12 + 7 13 #[jacquard_derive::lexicon] 8 14 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 9 15 #[serde(rename_all = "camelCase")] 10 16 pub struct FindCorrelationOutput<'a> { 11 17 #[serde(borrow)] 12 18 pub details: Vec<crate::tools_ozone::signature::SigDetail<'a>>, 13 - } 19 + }
+7 -1
crates/jacquard-api/src/tools_ozone/signature/search_accounts.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct SearchAccountsParams<'a> { ··· 9 14 #[serde(borrow)] 10 15 pub values: Vec<jacquard_common::CowStr<'a>>, 11 16 } 17 + 12 18 #[jacquard_derive::lexicon] 13 19 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 14 20 #[serde(rename_all = "camelCase")] ··· 18 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 19 25 #[serde(borrow)] 20 26 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 21 - } 27 + }
+11 -5
crates/jacquard-api/src/tools_ozone/team.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod add_member; 7 + pub mod delete_member; 8 + pub mod list_members; 9 + pub mod update_member; 10 + 1 11 #[jacquard_derive::lexicon] 2 12 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 13 #[serde(rename_all = "camelCase")] ··· 18 28 pub role: jacquard_common::CowStr<'a>, 19 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 30 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 21 - } 22 - pub mod add_member; 23 - pub mod delete_member; 24 - pub mod list_members; 25 - pub mod update_member; 31 + }
+10 -2
crates/jacquard-api/src/tools_ozone/team/add_member.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 7 12 #[serde(borrow)] 8 13 pub role: jacquard_common::CowStr<'a>, 9 14 } 15 + 10 16 #[jacquard_derive::lexicon] 11 17 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 12 18 #[serde(rename_all = "camelCase")] ··· 15 21 #[serde(borrow)] 16 22 pub value: crate::tools_ozone::team::Member<'a>, 17 23 } 24 + 18 25 #[jacquard_derive::open_union] 19 26 #[derive( 20 27 serde::Serialize, ··· 33 40 #[serde(rename = "MemberAlreadyExists")] 34 41 MemberAlreadyExists(std::option::Option<String>), 35 42 } 43 + 36 44 impl std::fmt::Display for AddMemberError<'_> { 37 45 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 38 46 match self { ··· 43 51 } 44 52 Ok(()) 45 53 } 46 - Self::Unknown(_) => write!(f, "Unknown error"), 54 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 47 55 } 48 56 } 49 - } 57 + }
+9 -2
crates/jacquard-api/src/tools_ozone/team/delete_member.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 5 10 #[serde(borrow)] 6 11 pub did: jacquard_common::types::string::Did<'a>, 7 12 } 13 + 8 14 #[jacquard_derive::open_union] 9 15 #[derive( 10 16 serde::Serialize, ··· 26 32 #[serde(rename = "CannotDeleteSelf")] 27 33 CannotDeleteSelf(std::option::Option<String>), 28 34 } 35 + 29 36 impl std::fmt::Display for DeleteMemberError<'_> { 30 37 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 31 38 match self { ··· 43 50 } 44 51 Ok(()) 45 52 } 46 - Self::Unknown(_) => write!(f, "Unknown error"), 53 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 47 54 } 48 55 } 49 - } 56 + }
+7 -1
crates/jacquard-api/src/tools_ozone/team/list_members.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListMembersParams<'a> { ··· 15 20 #[serde(borrow)] 16 21 pub roles: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 17 22 } 23 + 18 24 #[jacquard_derive::lexicon] 19 25 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 26 #[serde(rename_all = "camelCase")] ··· 24 30 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 25 31 #[serde(borrow)] 26 32 pub members: Vec<crate::tools_ozone::team::Member<'a>>, 27 - } 33 + }
+10 -2
crates/jacquard-api/src/tools_ozone/team/update_member.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] ··· 10 15 #[serde(borrow)] 11 16 pub role: std::option::Option<jacquard_common::CowStr<'a>>, 12 17 } 18 + 13 19 #[jacquard_derive::lexicon] 14 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 15 21 #[serde(rename_all = "camelCase")] ··· 18 24 #[serde(borrow)] 19 25 pub value: crate::tools_ozone::team::Member<'a>, 20 26 } 27 + 21 28 #[jacquard_derive::open_union] 22 29 #[derive( 23 30 serde::Serialize, ··· 36 43 #[serde(rename = "MemberNotFound")] 37 44 MemberNotFound(std::option::Option<String>), 38 45 } 46 + 39 47 impl std::fmt::Display for UpdateMemberError<'_> { 40 48 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 41 49 match self { ··· 46 54 } 47 55 Ok(()) 48 56 } 49 - Self::Unknown(_) => write!(f, "Unknown error"), 57 + Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 50 58 } 51 59 } 52 - } 60 + }
+21 -4
crates/jacquard-api/src/tools_ozone/verification.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 6 + pub mod grant_verifications; 7 + pub mod list_verifications; 8 + pub mod revoke_verifications; 9 + 1 10 ///Verification data for the associated subject. 2 11 #[jacquard_derive::lexicon] 3 12 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 13 #[serde(rename_all = "camelCase")] 5 14 pub struct VerificationView<'a> { 15 + ///Timestamp when the verification was created. 6 16 pub created_at: jacquard_common::types::string::Datetime, 17 + ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. 7 18 #[serde(borrow)] 8 19 pub display_name: jacquard_common::CowStr<'a>, 20 + ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. 9 21 #[serde(borrow)] 10 22 pub handle: jacquard_common::types::string::Handle<'a>, 23 + ///The user who issued this verification. 11 24 #[serde(borrow)] 12 25 pub issuer: jacquard_common::types::string::Did<'a>, 13 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 16 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 17 30 #[serde(borrow)] 18 31 pub issuer_repo: std::option::Option<VerificationViewRecordIssuerRepo<'a>>, 32 + ///Describes the reason for revocation, also indicating that the verification is no longer valid. 19 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 20 34 #[serde(borrow)] 21 35 pub revoke_reason: std::option::Option<jacquard_common::CowStr<'a>>, 36 + ///Timestamp when the verification was revoked. 22 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 38 pub revoked_at: std::option::Option<jacquard_common::types::string::Datetime>, 39 + ///The user who revoked this verification. 24 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 41 #[serde(borrow)] 26 42 pub revoked_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 43 + ///The subject of the verification. 27 44 #[serde(borrow)] 28 45 pub subject: jacquard_common::types::string::Did<'a>, 29 46 #[serde(skip_serializing_if = "std::option::Option::is_none")] ··· 32 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 50 #[serde(borrow)] 34 51 pub subject_repo: std::option::Option<VerificationViewRecordSubjectRepo<'a>>, 52 + ///The AT-URI of the verification record. 35 53 #[serde(borrow)] 36 54 pub uri: jacquard_common::types::string::AtUri<'a>, 37 55 } 56 + 38 57 #[jacquard_derive::open_union] 39 58 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 40 59 #[serde(tag = "$type")] ··· 50 69 #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 51 70 DefsRepoViewNotFound(Box<crate::tools_ozone::moderation::RepoViewNotFound<'a>>), 52 71 } 72 + 53 73 #[jacquard_derive::open_union] 54 74 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 55 75 #[serde(tag = "$type")] ··· 64 84 DefsRepoViewDetail(Box<crate::tools_ozone::moderation::RepoViewDetail<'a>>), 65 85 #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")] 66 86 DefsRepoViewNotFound(Box<crate::tools_ozone::moderation::RepoViewNotFound<'a>>), 67 - } 68 - pub mod grant_verifications; 69 - pub mod list_verifications; 70 - pub mod revoke_verifications; 87 + }
+16 -1
crates/jacquard-api/src/tools_ozone/verification/grant_verifications.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 ///Error object for failed verifications. 2 7 #[jacquard_derive::lexicon] 3 8 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 4 9 #[serde(rename_all = "camelCase")] 5 10 pub struct GrantError<'a> { 11 + ///Error message describing the reason for failure. 6 12 #[serde(borrow)] 7 13 pub error: jacquard_common::CowStr<'a>, 14 + ///The did of the subject being verified 8 15 #[serde(borrow)] 9 16 pub subject: jacquard_common::types::string::Did<'a>, 10 17 } 18 + 11 19 #[jacquard_derive::lexicon] 12 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 21 #[serde(rename_all = "camelCase")] 14 22 pub struct GrantVerificationsInput<'a> { 23 + ///Array of verification requests to process 15 24 #[serde(borrow)] 16 25 pub verifications: Vec<jacquard_common::types::value::Data<'a>>, 17 26 } 27 + 18 28 #[jacquard_derive::lexicon] 19 29 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20 30 #[serde(rename_all = "camelCase")] ··· 24 34 #[serde(borrow)] 25 35 pub verifications: Vec<crate::tools_ozone::verification::VerificationView<'a>>, 26 36 } 37 + 27 38 #[jacquard_derive::lexicon] 28 39 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 40 #[serde(rename_all = "camelCase")] 30 41 pub struct VerificationInput<'a> { 42 + ///Timestamp for verification record. Defaults to current time when not specified. 31 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 44 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 45 + ///Display name of the subject the verification applies to at the moment of verifying. 33 46 #[serde(borrow)] 34 47 pub display_name: jacquard_common::CowStr<'a>, 48 + ///Handle of the subject the verification applies to at the moment of verifying. 35 49 #[serde(borrow)] 36 50 pub handle: jacquard_common::types::string::Handle<'a>, 51 + ///The did of the subject being verified 37 52 #[serde(borrow)] 38 53 pub subject: jacquard_common::types::string::Did<'a>, 39 - } 54 + }
+7 -1
crates/jacquard-api/src/tools_ozone/verification/list_verifications.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 2 7 #[serde(rename_all = "camelCase")] 3 8 pub struct ListVerificationsParams<'a> { ··· 22 27 #[serde(borrow)] 23 28 pub subjects: std::option::Option<Vec<jacquard_common::types::string::Did<'a>>>, 24 29 } 30 + 25 31 #[jacquard_derive::lexicon] 26 32 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 27 33 #[serde(rename_all = "camelCase")] ··· 31 37 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 32 38 #[serde(borrow)] 33 39 pub verifications: Vec<crate::tools_ozone::verification::VerificationView<'a>>, 34 - } 40 + }
+14 -1
crates/jacquard-api/src/tools_ozone/verification/revoke_verifications.rs
··· 1 + // @generated by jacquard-lexicon. DO NOT EDIT. 2 + // 3 + // This file was automatically generated from Lexicon schemas. 4 + // Any manual changes will be overwritten on the next regeneration. 5 + 1 6 #[jacquard_derive::lexicon] 2 7 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 3 8 #[serde(rename_all = "camelCase")] 4 9 pub struct RevokeVerificationsInput<'a> { 10 + ///Reason for revoking the verification. This is optional and can be omitted if not needed. 5 11 #[serde(skip_serializing_if = "std::option::Option::is_none")] 6 12 #[serde(borrow)] 7 13 pub revoke_reason: std::option::Option<jacquard_common::CowStr<'a>>, 14 + ///Array of verification record uris to revoke 8 15 #[serde(borrow)] 9 16 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>, 10 17 } 18 + 11 19 #[jacquard_derive::lexicon] 12 20 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 13 21 #[serde(rename_all = "camelCase")] 14 22 pub struct RevokeVerificationsOutput<'a> { 23 + ///List of verification uris that couldn't be revoked, including failure reasons 15 24 #[serde(borrow)] 16 25 pub failed_revocations: Vec<jacquard_common::types::value::Data<'a>>, 26 + ///List of verification uris successfully revoked 17 27 #[serde(borrow)] 18 28 pub revoked_verifications: Vec<jacquard_common::types::string::AtUri<'a>>, 19 29 } 30 + 20 31 ///Error object for failed revocations 21 32 #[jacquard_derive::lexicon] 22 33 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 34 #[serde(rename_all = "camelCase")] 24 35 pub struct RevokeError<'a> { 36 + ///Description of the error that occurred during revocation. 25 37 #[serde(borrow)] 26 38 pub error: jacquard_common::CowStr<'a>, 39 + ///The AT-URI of the verification record that failed to revoke. 27 40 #[serde(borrow)] 28 41 pub uri: jacquard_common::types::string::AtUri<'a>, 29 - } 42 + }
+5
crates/jacquard-lexicon/Cargo.toml
··· 11 11 exclude.workspace = true 12 12 description.workspace = true 13 13 14 + [[bin]] 15 + name = "jacquard-codegen" 16 + path = "src/bin/codegen.rs" 17 + 14 18 [dependencies] 19 + clap = { workspace = true } 15 20 heck = "0.5.0" 16 21 itertools = "0.14.0" 17 22 jacquard-common = { version = "0.1.0", path = "../jacquard-common" }
+40
crates/jacquard-lexicon/src/bin/codegen.rs
··· 1 + use clap::Parser; 2 + use jacquard_lexicon::codegen::CodeGenerator; 3 + use jacquard_lexicon::corpus::LexiconCorpus; 4 + use std::path::PathBuf; 5 + 6 + #[derive(Parser, Debug)] 7 + #[command(author, version, about = "Generate Rust code from Lexicon schemas")] 8 + struct Args { 9 + /// Directory containing Lexicon JSON files 10 + #[arg(short = 'i', long)] 11 + input: PathBuf, 12 + 13 + /// Output directory for generated Rust code 14 + #[arg(short = 'o', long)] 15 + output: PathBuf, 16 + 17 + /// Root module name (default: "crate") 18 + #[arg(short = 'r', long, default_value = "crate")] 19 + root_module: String, 20 + } 21 + 22 + fn main() -> miette::Result<()> { 23 + let args = Args::parse(); 24 + 25 + println!("Loading lexicons from {:?}...", args.input); 26 + let corpus = LexiconCorpus::load_from_dir(&args.input)?; 27 + 28 + println!( 29 + "Loaded {} lexicon documents", 30 + corpus.iter().count() 31 + ); 32 + 33 + println!("Generating code..."); 34 + let codegen = CodeGenerator::new(&corpus, args.root_module); 35 + codegen.write_to_disk(&args.output)?; 36 + 37 + println!("✨ Generated code to {:?}", args.output); 38 + 39 + Ok(()) 40 + }
+92 -18
crates/jacquard-lexicon/src/codegen.rs
··· 1 1 use crate::corpus::LexiconCorpus; 2 2 use crate::error::{CodegenError, Result}; 3 3 use crate::lexicon::{ 4 - LexArrayItem, LexBlob, LexBoolean, LexBytes, LexCidLink, LexInteger, LexObject, 5 - LexObjectProperty, LexRecord, LexRef, LexRefUnion, LexString, LexStringFormat, LexUnknown, 6 - LexUserType, LexXrpcBody, LexXrpcBodySchema, LexXrpcError, LexXrpcParameters, LexXrpcProcedure, 7 - LexXrpcQuery, LexXrpcSubscription, LexXrpcSubscriptionMessageSchema, 4 + LexArrayItem, LexInteger, LexObject, LexObjectProperty, LexRecord, LexString, LexStringFormat, 5 + LexUserType, LexXrpcBody, LexXrpcBodySchema, LexXrpcError, LexXrpcProcedure, LexXrpcQuery, 6 + LexXrpcSubscription, LexXrpcSubscriptionMessageSchema, 8 7 }; 9 8 use heck::{ToPascalCase, ToSnakeCase}; 10 9 use proc_macro2::TokenStream; ··· 273 272 quote! { std::option::Option<#rust_type> } 274 273 }; 275 274 275 + // Extract description from field type 276 + let description = match field_type { 277 + LexObjectProperty::Ref(r) => r.description.as_ref(), 278 + LexObjectProperty::Union(u) => u.description.as_ref(), 279 + LexObjectProperty::Bytes(b) => b.description.as_ref(), 280 + LexObjectProperty::CidLink(c) => c.description.as_ref(), 281 + LexObjectProperty::Array(a) => a.description.as_ref(), 282 + LexObjectProperty::Blob(b) => b.description.as_ref(), 283 + LexObjectProperty::Boolean(b) => b.description.as_ref(), 284 + LexObjectProperty::Integer(i) => i.description.as_ref(), 285 + LexObjectProperty::String(s) => s.description.as_ref(), 286 + LexObjectProperty::Unknown(u) => u.description.as_ref(), 287 + }; 288 + let doc = self.generate_doc_comment(description); 289 + 276 290 let mut attrs = Vec::new(); 277 291 278 292 if !is_required { ··· 285 299 } 286 300 287 301 Ok(quote! { 302 + #doc 288 303 #(#attrs)* 289 304 pub #field_ident: #rust_type, 290 305 }) ··· 418 433 let item_type = self.array_item_to_rust_type(nsid, &array.items)?; 419 434 Ok(quote! { Vec<#item_type> }) 420 435 } 421 - LexObjectProperty::Ref(ref_type) => self.ref_to_rust_type(&ref_type.r#ref), 436 + LexObjectProperty::Ref(ref_type) => { 437 + // Handle local refs (starting with #) by prepending the current NSID 438 + let ref_str = if ref_type.r#ref.starts_with('#') { 439 + format!("{}{}", nsid, ref_type.r#ref) 440 + } else { 441 + ref_type.r#ref.to_string() 442 + }; 443 + self.ref_to_rust_type(&ref_str) 444 + } 422 445 LexObjectProperty::Union(_union) => { 423 446 // Generate unique union type name: StatusView + embed -> StatusViewRecordEmbed 424 447 let union_name = ··· 430 453 } 431 454 432 455 /// Convert array item to Rust type 433 - fn array_item_to_rust_type(&self, _nsid: &str, item: &LexArrayItem) -> Result<TokenStream> { 456 + fn array_item_to_rust_type(&self, nsid: &str, item: &LexArrayItem) -> Result<TokenStream> { 434 457 match item { 435 458 LexArrayItem::Boolean(_) => Ok(quote! { bool }), 436 459 LexArrayItem::Integer(_) => Ok(quote! { i64 }), ··· 439 462 LexArrayItem::CidLink(_) => Ok(quote! { jacquard_common::types::cid::CidLink<'a> }), 440 463 LexArrayItem::Blob(_) => Ok(quote! { jacquard_common::types::blob::Blob<'a> }), 441 464 LexArrayItem::Unknown(_) => Ok(quote! { jacquard_common::types::value::Data<'a> }), 442 - LexArrayItem::Ref(ref_type) => self.ref_to_rust_type(&ref_type.r#ref), 465 + LexArrayItem::Ref(ref_type) => { 466 + // Handle local refs (starting with #) by prepending the current NSID 467 + let ref_str = if ref_type.r#ref.starts_with('#') { 468 + format!("{}{}", nsid, ref_type.r#ref) 469 + } else { 470 + ref_type.r#ref.to_string() 471 + }; 472 + self.ref_to_rust_type(&ref_str) 473 + } 443 474 LexArrayItem::Union(_) => { 444 475 // For now, use Data 445 476 Ok(quote! { jacquard_common::types::value::Data<'a> }) ··· 835 866 } 836 867 837 868 /// Generate all code for the corpus, organized by file 869 + /// Returns a map of file paths to (tokens, optional NSID) 838 870 pub fn generate_all( 839 871 &self, 840 - ) -> Result<std::collections::BTreeMap<std::path::PathBuf, TokenStream>> { 872 + ) -> Result<std::collections::BTreeMap<std::path::PathBuf, (TokenStream, Option<String>)>> { 841 873 use std::collections::BTreeMap; 842 874 843 875 let mut file_contents: BTreeMap<std::path::PathBuf, Vec<TokenStream>> = BTreeMap::new(); 876 + let mut file_nsids: BTreeMap<std::path::PathBuf, String> = BTreeMap::new(); 844 877 845 878 // Generate code for all lexicons 846 879 for (nsid, doc) in self.corpus.iter() { 847 880 let file_path = self.nsid_to_file_path(nsid.as_ref()); 848 881 882 + // Track which NSID this file is for 883 + file_nsids.insert(file_path.clone(), nsid.to_string()); 884 + 849 885 for (def_name, def) in &doc.defs { 850 886 let tokens = self.generate_def(nsid.as_ref(), def_name.as_ref(), def)?; 851 887 file_contents ··· 858 894 // Combine all tokens for each file 859 895 let mut result = BTreeMap::new(); 860 896 for (path, tokens_vec) in file_contents { 861 - result.insert(path, quote! { #(#tokens_vec)* }); 897 + let nsid = file_nsids.get(&path).cloned(); 898 + result.insert(path, (quote! { #(#tokens_vec)* }, nsid)); 862 899 } 863 900 864 901 Ok(result) ··· 867 904 /// Generate parent module files with pub mod declarations 868 905 pub fn generate_module_tree( 869 906 &self, 870 - file_map: &std::collections::BTreeMap<std::path::PathBuf, TokenStream>, 871 - defs_only: &std::collections::BTreeMap<std::path::PathBuf, TokenStream>, 872 - ) -> std::collections::BTreeMap<std::path::PathBuf, TokenStream> { 907 + file_map: &std::collections::BTreeMap<std::path::PathBuf, (TokenStream, Option<String>)>, 908 + defs_only: &std::collections::BTreeMap<std::path::PathBuf, (TokenStream, Option<String>)>, 909 + ) -> std::collections::BTreeMap<std::path::PathBuf, (TokenStream, Option<String>)> { 873 910 use std::collections::{BTreeMap, BTreeSet}; 874 911 875 912 // Track what modules each directory needs to declare ··· 929 966 930 967 // If this file already exists in defs_only (e.g., from defs), merge the content 931 968 let module_tokens = quote! { #(#mods)* }; 932 - if let Some(existing) = defs_only.get(&mod_file_path) { 933 - // Combine existing defs content with module declarations 934 - result.insert(mod_file_path, quote! { #existing #module_tokens }); 969 + if let Some((existing_tokens, nsid)) = defs_only.get(&mod_file_path) { 970 + // Put module declarations FIRST, then existing defs content 971 + result.insert( 972 + mod_file_path, 973 + (quote! { #module_tokens #existing_tokens }, nsid.clone()), 974 + ); 935 975 } else { 936 - result.insert(mod_file_path, module_tokens); 976 + result.insert(mod_file_path, (module_tokens, None)); 937 977 } 938 978 } 939 979 ··· 963 1003 } 964 1004 965 1005 // Write to disk 966 - for (path, tokens) in all_files { 1006 + for (path, (tokens, nsid)) in all_files { 967 1007 let full_path = output_dir.join(&path); 968 1008 969 1009 // Create parent directories ··· 982 1022 ), 983 1023 source: None, 984 1024 })?; 985 - let formatted = prettyplease::unparse(&file); 1025 + let mut formatted = prettyplease::unparse(&file); 1026 + 1027 + // Add blank lines between top-level items for better readability 1028 + let lines: Vec<&str> = formatted.lines().collect(); 1029 + let mut result_lines = Vec::new(); 1030 + 1031 + for (i, line) in lines.iter().enumerate() { 1032 + result_lines.push(*line); 1033 + 1034 + // Add blank line after closing braces that are at column 0 (top-level items) 1035 + if *line == "}" && i + 1 < lines.len() && !lines[i + 1].is_empty() { 1036 + result_lines.push(""); 1037 + } 1038 + 1039 + // Add blank line after last pub mod declaration before structs/enums 1040 + if line.starts_with("pub mod ") && i + 1 < lines.len() { 1041 + let next_line = lines[i + 1]; 1042 + if !next_line.starts_with("pub mod ") && !next_line.is_empty() { 1043 + result_lines.push(""); 1044 + } 1045 + } 1046 + } 1047 + 1048 + formatted = result_lines.join("\n"); 1049 + 1050 + // Add header comment 1051 + let header = if let Some(nsid) = nsid { 1052 + format!( 1053 + "// @generated by jacquard-lexicon. DO NOT EDIT.\n//\n// Lexicon: {}\n//\n// This file was automatically generated from Lexicon schemas.\n// Any manual changes will be overwritten on the next regeneration.\n\n", 1054 + nsid 1055 + ) 1056 + } else { 1057 + "// @generated by jacquard-lexicon. DO NOT EDIT.\n//\n// This file was automatically generated from Lexicon schemas.\n// Any manual changes will be overwritten on the next regeneration.\n\n".to_string() 1058 + }; 1059 + formatted = format!("{}{}", header, formatted); 986 1060 987 1061 // Write file 988 1062 std::fs::write(&full_path, formatted).map_err(|e| CodegenError::Other {
-6
crates/jacquard-lexicon/src/fs.rs
··· 28 28 })?; 29 29 Ok(results) 30 30 } 31 - 32 - pub(crate) fn find_dirs(path: &Path) -> Result<Vec<impl AsRef<Path>>> { 33 - let mut results = Vec::new(); 34 - walk(path, &mut results, &mut |path| path.is_dir())?; 35 - Ok(results) 36 - }