A better Rust ATProto crate

reworked codegen builder choices, added feature-gated tracing

Orual 4b9139d7 89d3e3e6

Changed files
+1046 -1870
crates
jacquard
jacquard-api
src
app_blebbit
app_bsky
app_ocho
blog_pckt
blue_linkat
blue_zio
chat_bsky
com_atproto
com_shinolabs
pinksea
com_whtwnd
community_lexicon
events_smokesignal
automation
garden_lexicon
ngerakines
helloworld
my_skylights
net_anisota
network_slices
place_stream
pub_leaflet
sh_tangled
sh_weaver
social_clippr
social_psky
richtext
tools_ozone
uk_skyblur
win_tomo_x
jacquard-common
jacquard-identity
jacquard-lexicon
src
jacquard-oauth
+4
Cargo.lock
··· 1757 1757 "smol_str", 1758 1758 "thiserror 2.0.17", 1759 1759 "tokio", 1760 + "tracing", 1760 1761 "url", 1761 1762 ] 1762 1763 ··· 1882 1883 "smol_str", 1883 1884 "thiserror 2.0.17", 1884 1885 "tokio", 1886 + "tracing", 1885 1887 "url", 1886 1888 ] 1887 1889 ··· 1956 1958 "serde_json", 1957 1959 "thiserror 2.0.17", 1958 1960 "tokio", 1961 + "tracing", 1959 1962 "url", 1960 1963 "urlencoding", 1961 1964 ] ··· 2017 2020 "smol_str", 2018 2021 "thiserror 2.0.17", 2019 2022 "tokio", 2023 + "tracing", 2020 2024 "trait-variant", 2021 2025 "url", 2022 2026 "webbrowser",
+3
Cargo.toml
··· 62 62 async-trait = "0.1" 63 63 tokio = "1" 64 64 65 + # Observability 66 + tracing = "0.1" 67 + 65 68 # Encoding and crypto building blocks 66 69 base64 = "0.22" 67 70 percent-encoding = "2.3"
+7 -12
crates/jacquard-api/src/app_blebbit/authr/folder.rs
··· 24 24 PartialEq, 25 25 Eq, 26 26 jacquard_derive::IntoStatic, 27 - bon::Builder 27 + Default 28 28 )] 29 29 #[serde(rename_all = "camelCase")] 30 30 pub struct FolderForm<'a> { 31 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 - #[builder(into)] 33 32 #[serde(borrow)] 34 - pub name: Option<jacquard_common::CowStr<'a>>, 33 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 35 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 - pub public: Option<bool>, 35 + pub public: std::option::Option<bool>, 38 36 } 39 37 40 38 #[jacquard_derive::lexicon] ··· 46 44 PartialEq, 47 45 Eq, 48 46 jacquard_derive::IntoStatic, 49 - bon::Builder 47 + Default 50 48 )] 51 49 #[serde(rename_all = "camelCase")] 52 50 pub struct FolderView<'a> { 53 51 #[serde(skip_serializing_if = "std::option::Option::is_none")] 54 - #[builder(into)] 55 52 #[serde(borrow)] 56 - pub cuid: Option<jacquard_common::CowStr<'a>>, 53 + pub cuid: std::option::Option<jacquard_common::CowStr<'a>>, 57 54 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 - #[builder(into)] 59 55 #[serde(borrow)] 60 - pub name: Option<jacquard_common::CowStr<'a>>, 56 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 61 57 #[serde(skip_serializing_if = "std::option::Option::is_none")] 62 - #[builder(into)] 63 - pub public: Option<bool>, 58 + pub public: std::option::Option<bool>, 64 59 }
+6 -15
crates/jacquard-api/src/app_blebbit/authr/folder/create_folder.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateFolder<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub name: Option<jacquard_common::CowStr<'a>>, 23 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 - pub public: Option<bool>, 29 - #[serde(flatten)] 30 - #[serde(borrow)] 31 - #[builder(default)] 32 - pub extra_data: ::std::collections::BTreeMap< 33 - ::jacquard_common::smol_str::SmolStr, 34 - ::jacquard_common::types::value::Data<'a>, 35 - >, 25 + pub public: std::option::Option<bool>, 36 26 } 37 27 38 28 #[jacquard_derive::lexicon] ··· 43 33 Clone, 44 34 PartialEq, 45 35 Eq, 46 - jacquard_derive::IntoStatic 36 + jacquard_derive::IntoStatic, 37 + Default 47 38 )] 48 39 #[serde(rename_all = "camelCase")] 49 40 pub struct CreateFolderOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/folder/create_folder_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateFolderRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+3 -14
crates/jacquard-api/src/app_blebbit/authr/folder/delete_folder_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteFolderRelationship<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub relation: Option<jacquard_common::CowStr<'a>>, 23 + pub relation: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(borrow)] 27 - #[builder(into)] 28 25 pub resource: jacquard_common::CowStr<'a>, 29 26 #[serde(borrow)] 30 - #[builder(into)] 31 27 pub subject: jacquard_common::CowStr<'a>, 32 - #[serde(flatten)] 33 - #[serde(borrow)] 34 - #[builder(default)] 35 - pub extra_data: ::std::collections::BTreeMap< 36 - ::jacquard_common::smol_str::SmolStr, 37 - ::jacquard_common::types::value::Data<'a>, 38 - >, 39 28 } 40 29 41 30 ///Response type for
+2 -1
crates/jacquard-api/src/app_blebbit/authr/folder/get_folder.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct GetFolderOutput<'a> {
+2 -1
crates/jacquard-api/src/app_blebbit/authr/folder/get_folders.rs
··· 34 34 Clone, 35 35 PartialEq, 36 36 Eq, 37 - jacquard_derive::IntoStatic 37 + jacquard_derive::IntoStatic, 38 + Default 38 39 )] 39 40 #[serde(rename_all = "camelCase")] 40 41 pub struct GetFoldersOutput<'a> {
+6 -15
crates/jacquard-api/src/app_blebbit/authr/folder/update_folder.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - bon::Builder, 36 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 37 37 )] 38 38 #[serde(rename_all = "camelCase")] 39 - #[builder(start_fn = new)] 40 39 pub struct UpdateFolder<'a> { 41 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 - #[builder(into)] 43 41 #[serde(borrow)] 44 - pub name: Option<jacquard_common::CowStr<'a>>, 42 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 45 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 - #[builder(into)] 47 - pub public: Option<bool>, 48 - #[serde(flatten)] 49 - #[serde(borrow)] 50 - #[builder(default)] 51 - pub extra_data: ::std::collections::BTreeMap< 52 - ::jacquard_common::smol_str::SmolStr, 53 - ::jacquard_common::types::value::Data<'a>, 54 - >, 44 + pub public: std::option::Option<bool>, 55 45 } 56 46 57 47 #[jacquard_derive::lexicon] ··· 62 52 Clone, 63 53 PartialEq, 64 54 Eq, 65 - jacquard_derive::IntoStatic 55 + jacquard_derive::IntoStatic, 56 + Default 66 57 )] 67 58 #[serde(rename_all = "camelCase")] 68 59 pub struct UpdateFolderOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/folder/update_folder_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateFolderRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+10 -19
crates/jacquard-api/src/app_blebbit/authr/group.rs
··· 24 24 PartialEq, 25 25 Eq, 26 26 jacquard_derive::IntoStatic, 27 - bon::Builder 27 + Default 28 28 )] 29 29 #[serde(rename_all = "camelCase")] 30 30 pub struct GroupForm<'a> { 31 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 - #[builder(into)] 33 32 #[serde(borrow)] 34 - pub description: Option<jacquard_common::CowStr<'a>>, 33 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 35 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 35 #[serde(borrow)] 38 - pub display: Option<jacquard_common::CowStr<'a>>, 36 + pub display: std::option::Option<jacquard_common::CowStr<'a>>, 39 37 #[serde(borrow)] 40 - #[builder(into)] 41 38 pub name: jacquard_common::CowStr<'a>, 42 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 - pub public: Option<bool>, 40 + pub public: std::option::Option<bool>, 45 41 } 46 42 47 43 #[jacquard_derive::lexicon] ··· 53 49 PartialEq, 54 50 Eq, 55 51 jacquard_derive::IntoStatic, 56 - bon::Builder 52 + Default 57 53 )] 58 54 #[serde(rename_all = "camelCase")] 59 55 pub struct GroupView<'a> { 60 56 #[serde(skip_serializing_if = "std::option::Option::is_none")] 61 - #[builder(into)] 62 57 #[serde(borrow)] 63 - pub cuid: Option<jacquard_common::CowStr<'a>>, 58 + pub cuid: std::option::Option<jacquard_common::CowStr<'a>>, 64 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 65 - #[builder(into)] 66 60 #[serde(borrow)] 67 - pub description: Option<jacquard_common::CowStr<'a>>, 61 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 68 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 69 - #[builder(into)] 70 63 #[serde(borrow)] 71 - pub display: Option<jacquard_common::CowStr<'a>>, 64 + pub display: std::option::Option<jacquard_common::CowStr<'a>>, 72 65 #[serde(skip_serializing_if = "std::option::Option::is_none")] 73 - #[builder(into)] 74 66 #[serde(borrow)] 75 - pub name: Option<jacquard_common::CowStr<'a>>, 67 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 76 68 #[serde(skip_serializing_if = "std::option::Option::is_none")] 77 - #[builder(into)] 78 - pub public: Option<bool>, 69 + pub public: std::option::Option<bool>, 79 70 }
+7 -18
crates/jacquard-api/src/app_blebbit/authr/group/create_group.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateGroup<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub description: Option<jacquard_common::CowStr<'a>>, 23 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 25 #[serde(borrow)] 29 - pub display: Option<jacquard_common::CowStr<'a>>, 26 + pub display: std::option::Option<jacquard_common::CowStr<'a>>, 30 27 #[serde(borrow)] 31 - #[builder(into)] 32 28 pub name: jacquard_common::CowStr<'a>, 33 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 - #[builder(into)] 35 - pub public: Option<bool>, 36 - #[serde(flatten)] 37 - #[serde(borrow)] 38 - #[builder(default)] 39 - pub extra_data: ::std::collections::BTreeMap< 40 - ::jacquard_common::smol_str::SmolStr, 41 - ::jacquard_common::types::value::Data<'a>, 42 - >, 30 + pub public: std::option::Option<bool>, 43 31 } 44 32 45 33 #[jacquard_derive::lexicon] ··· 50 38 Clone, 51 39 PartialEq, 52 40 Eq, 53 - jacquard_derive::IntoStatic 41 + jacquard_derive::IntoStatic, 42 + Default 54 43 )] 55 44 #[serde(rename_all = "camelCase")] 56 45 pub struct CreateGroupOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/group/create_group_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateGroupRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+3 -14
crates/jacquard-api/src/app_blebbit/authr/group/delete_group_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteGroupRelationship<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub relation: Option<jacquard_common::CowStr<'a>>, 23 + pub relation: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(borrow)] 27 - #[builder(into)] 28 25 pub resource: jacquard_common::CowStr<'a>, 29 26 #[serde(borrow)] 30 - #[builder(into)] 31 27 pub subject: jacquard_common::CowStr<'a>, 32 - #[serde(flatten)] 33 - #[serde(borrow)] 34 - #[builder(default)] 35 - pub extra_data: ::std::collections::BTreeMap< 36 - ::jacquard_common::smol_str::SmolStr, 37 - ::jacquard_common::types::value::Data<'a>, 38 - >, 39 28 } 40 29 41 30 ///Response type for
+2 -1
crates/jacquard-api/src/app_blebbit/authr/group/get_group.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct GetGroupOutput<'a> {
+2 -1
crates/jacquard-api/src/app_blebbit/authr/group/get_groups.rs
··· 34 34 Clone, 35 35 PartialEq, 36 36 Eq, 37 - jacquard_derive::IntoStatic 37 + jacquard_derive::IntoStatic, 38 + Default 38 39 )] 39 40 #[serde(rename_all = "camelCase")] 40 41 pub struct GetGroupsOutput<'a> {
+7 -18
crates/jacquard-api/src/app_blebbit/authr/group/update_group.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - bon::Builder, 36 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 37 37 )] 38 38 #[serde(rename_all = "camelCase")] 39 - #[builder(start_fn = new)] 40 39 pub struct UpdateGroup<'a> { 41 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 - #[builder(into)] 43 41 #[serde(borrow)] 44 - pub description: Option<jacquard_common::CowStr<'a>>, 42 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 45 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 - #[builder(into)] 47 44 #[serde(borrow)] 48 - pub display: Option<jacquard_common::CowStr<'a>>, 45 + pub display: std::option::Option<jacquard_common::CowStr<'a>>, 49 46 #[serde(borrow)] 50 - #[builder(into)] 51 47 pub name: jacquard_common::CowStr<'a>, 52 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 - #[builder(into)] 54 - pub public: Option<bool>, 55 - #[serde(flatten)] 56 - #[serde(borrow)] 57 - #[builder(default)] 58 - pub extra_data: ::std::collections::BTreeMap< 59 - ::jacquard_common::smol_str::SmolStr, 60 - ::jacquard_common::types::value::Data<'a>, 61 - >, 49 + pub public: std::option::Option<bool>, 62 50 } 63 51 64 52 #[jacquard_derive::lexicon] ··· 69 57 Clone, 70 58 PartialEq, 71 59 Eq, 72 - jacquard_derive::IntoStatic 60 + jacquard_derive::IntoStatic, 61 + Default 73 62 )] 74 63 #[serde(rename_all = "camelCase")] 75 64 pub struct UpdateGroupOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/group/update_group_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateGroupRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+8 -14
crates/jacquard-api/src/app_blebbit/authr/page.rs
··· 24 24 PartialEq, 25 25 Eq, 26 26 jacquard_derive::IntoStatic, 27 - bon::Builder 27 + Default 28 28 )] 29 29 #[serde(rename_all = "camelCase")] 30 30 pub struct PageForm<'a> { 31 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 - #[builder(into)] 33 32 #[serde(borrow)] 34 - pub name: Option<jacquard_common::CowStr<'a>>, 33 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 35 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 - pub public: Option<bool>, 35 + pub public: std::option::Option<bool>, 38 36 } 39 37 40 38 #[jacquard_derive::lexicon] ··· 46 44 PartialEq, 47 45 Eq, 48 46 jacquard_derive::IntoStatic, 49 - bon::Builder 47 + Default 50 48 )] 51 49 #[serde(rename_all = "camelCase")] 52 50 pub struct PageView<'a> { 53 51 #[serde(skip_serializing_if = "std::option::Option::is_none")] 54 - #[builder(into)] 55 52 #[serde(borrow)] 56 - pub content: Option<jacquard_common::CowStr<'a>>, 53 + pub content: std::option::Option<jacquard_common::CowStr<'a>>, 57 54 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 - #[builder(into)] 59 55 #[serde(borrow)] 60 - pub cuid: Option<jacquard_common::CowStr<'a>>, 56 + pub cuid: std::option::Option<jacquard_common::CowStr<'a>>, 61 57 #[serde(skip_serializing_if = "std::option::Option::is_none")] 62 - #[builder(into)] 63 58 #[serde(borrow)] 64 - pub name: Option<jacquard_common::CowStr<'a>>, 59 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 65 60 #[serde(skip_serializing_if = "std::option::Option::is_none")] 66 - #[builder(into)] 67 - pub public: Option<bool>, 61 + pub public: std::option::Option<bool>, 68 62 }
+6 -15
crates/jacquard-api/src/app_blebbit/authr/page/create_page.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreatePage<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub name: Option<jacquard_common::CowStr<'a>>, 23 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 - pub public: Option<bool>, 29 - #[serde(flatten)] 30 - #[serde(borrow)] 31 - #[builder(default)] 32 - pub extra_data: ::std::collections::BTreeMap< 33 - ::jacquard_common::smol_str::SmolStr, 34 - ::jacquard_common::types::value::Data<'a>, 35 - >, 25 + pub public: std::option::Option<bool>, 36 26 } 37 27 38 28 #[jacquard_derive::lexicon] ··· 43 33 Clone, 44 34 PartialEq, 45 35 Eq, 46 - jacquard_derive::IntoStatic 36 + jacquard_derive::IntoStatic, 37 + Default 47 38 )] 48 39 #[serde(rename_all = "camelCase")] 49 40 pub struct CreatePageOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/page/create_page_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreatePageRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+3 -14
crates/jacquard-api/src/app_blebbit/authr/page/delete_page_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeletePageRelationship<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub relation: Option<jacquard_common::CowStr<'a>>, 23 + pub relation: std::option::Option<jacquard_common::CowStr<'a>>, 26 24 #[serde(borrow)] 27 - #[builder(into)] 28 25 pub resource: jacquard_common::CowStr<'a>, 29 26 #[serde(borrow)] 30 - #[builder(into)] 31 27 pub subject: jacquard_common::CowStr<'a>, 32 - #[serde(flatten)] 33 - #[serde(borrow)] 34 - #[builder(default)] 35 - pub extra_data: ::std::collections::BTreeMap< 36 - ::jacquard_common::smol_str::SmolStr, 37 - ::jacquard_common::types::value::Data<'a>, 38 - >, 39 28 } 40 29 41 30 ///Response type for
+2 -1
crates/jacquard-api/src/app_blebbit/authr/page/get_page.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct GetPageOutput<'a> {
+2 -1
crates/jacquard-api/src/app_blebbit/authr/page/get_pages.rs
··· 34 34 Clone, 35 35 PartialEq, 36 36 Eq, 37 - jacquard_derive::IntoStatic 37 + jacquard_derive::IntoStatic, 38 + Default 38 39 )] 39 40 #[serde(rename_all = "camelCase")] 40 41 pub struct GetPagesOutput<'a> {
+6 -15
crates/jacquard-api/src/app_blebbit/authr/page/update_page.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - bon::Builder, 36 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 37 37 )] 38 38 #[serde(rename_all = "camelCase")] 39 - #[builder(start_fn = new)] 40 39 pub struct UpdatePage<'a> { 41 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 - #[builder(into)] 43 41 #[serde(borrow)] 44 - pub name: Option<jacquard_common::CowStr<'a>>, 42 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 45 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 46 - #[builder(into)] 47 - pub public: Option<bool>, 48 - #[serde(flatten)] 49 - #[serde(borrow)] 50 - #[builder(default)] 51 - pub extra_data: ::std::collections::BTreeMap< 52 - ::jacquard_common::smol_str::SmolStr, 53 - ::jacquard_common::types::value::Data<'a>, 54 - >, 44 + pub public: std::option::Option<bool>, 55 45 } 56 46 57 47 #[jacquard_derive::lexicon] ··· 62 52 Clone, 63 53 PartialEq, 64 54 Eq, 65 - jacquard_derive::IntoStatic 55 + jacquard_derive::IntoStatic, 56 + Default 66 57 )] 67 58 #[serde(rename_all = "camelCase")] 68 59 pub struct UpdatePageOutput<'a> {
+2 -13
crates/jacquard-api/src/app_blebbit/authr/page/update_page_relationship.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdatePageRelationship<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub relation: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub resource: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub subject: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 ///Response type for
+44 -78
crates/jacquard-api/src/app_bsky/actor.rs
··· 41 41 PartialEq, 42 42 Eq, 43 43 jacquard_derive::IntoStatic, 44 - bon::Builder 44 + Default 45 45 )] 46 46 #[serde(rename_all = "camelCase")] 47 47 pub struct BskyAppProgressGuide<'a> { 48 48 #[serde(borrow)] 49 - #[builder(into)] 50 49 pub guide: jacquard_common::CowStr<'a>, 51 50 } 52 51 ··· 60 59 PartialEq, 61 60 Eq, 62 61 jacquard_derive::IntoStatic, 63 - bon::Builder 62 + Default 64 63 )] 65 64 #[serde(rename_all = "camelCase")] 66 65 pub struct BskyAppStatePref<'a> { 67 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 68 - #[builder(into)] 69 67 #[serde(borrow)] 70 - pub active_progress_guide: Option<crate::app_bsky::actor::BskyAppProgressGuide<'a>>, 68 + pub active_progress_guide: std::option::Option< 69 + crate::app_bsky::actor::BskyAppProgressGuide<'a>, 70 + >, 71 71 /// Storage for NUXs the user has encountered. 72 72 #[serde(skip_serializing_if = "std::option::Option::is_none")] 73 - #[builder(into)] 74 73 #[serde(borrow)] 75 - pub nuxs: Option<Vec<crate::app_bsky::actor::Nux<'a>>>, 74 + pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>, 76 75 /// An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. 77 76 #[serde(skip_serializing_if = "std::option::Option::is_none")] 78 - #[builder(into)] 79 77 #[serde(borrow)] 80 - pub queued_nudges: Option<Vec<jacquard_common::CowStr<'a>>>, 78 + pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 81 79 } 82 80 83 81 #[jacquard_derive::lexicon] ··· 89 87 PartialEq, 90 88 Eq, 91 89 jacquard_derive::IntoStatic, 92 - bon::Builder 90 + Default 93 91 )] 94 92 #[serde(rename_all = "camelCase")] 95 93 pub struct ContentLabelPref<'a> { 96 94 #[serde(borrow)] 97 - #[builder(into)] 98 95 pub label: jacquard_common::CowStr<'a>, 99 96 /// Which labeler does this preference apply to? If undefined, applies globally. 100 97 #[serde(skip_serializing_if = "std::option::Option::is_none")] 101 - #[builder(into)] 102 98 #[serde(borrow)] 103 - pub labeler_did: Option<jacquard_common::types::string::Did<'a>>, 99 + pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>, 104 100 #[serde(borrow)] 105 - #[builder(into)] 106 101 pub visibility: jacquard_common::CowStr<'a>, 107 102 } 108 103 ··· 115 110 PartialEq, 116 111 Eq, 117 112 jacquard_derive::IntoStatic, 118 - bon::Builder 113 + Default 119 114 )] 120 115 #[serde(rename_all = "camelCase")] 121 116 pub struct FeedViewPref<'a> { 122 117 /// The URI of the feed, or an identifier which describes the feed. 123 118 #[serde(borrow)] 124 - #[builder(into)] 125 119 pub feed: jacquard_common::CowStr<'a>, 126 120 /// Hide quote posts in the feed. 127 121 #[serde(skip_serializing_if = "std::option::Option::is_none")] 128 - #[builder(into)] 129 - pub hide_quote_posts: Option<bool>, 122 + pub hide_quote_posts: std::option::Option<bool>, 130 123 /// Hide replies in the feed. 131 124 #[serde(skip_serializing_if = "std::option::Option::is_none")] 132 - #[builder(into)] 133 - pub hide_replies: Option<bool>, 125 + pub hide_replies: std::option::Option<bool>, 134 126 /// Hide replies in the feed if they do not have this number of likes. 135 127 #[serde(skip_serializing_if = "std::option::Option::is_none")] 136 - #[builder(into)] 137 - pub hide_replies_by_like_count: Option<i64>, 128 + pub hide_replies_by_like_count: std::option::Option<i64>, 138 129 /// Hide replies in the feed if they are not by followed users. 139 130 #[serde(skip_serializing_if = "std::option::Option::is_none")] 140 - #[builder(into)] 141 - pub hide_replies_by_unfollowed: Option<bool>, 131 + pub hide_replies_by_unfollowed: std::option::Option<bool>, 142 132 /// Hide reposts in the feed. 143 133 #[serde(skip_serializing_if = "std::option::Option::is_none")] 144 - #[builder(into)] 145 - pub hide_reposts: Option<bool>, 134 + pub hide_reposts: std::option::Option<bool>, 146 135 } 147 136 148 137 #[jacquard_derive::lexicon] ··· 402 391 PartialEq, 403 392 Eq, 404 393 jacquard_derive::IntoStatic, 405 - bon::Builder 394 + Default 406 395 )] 407 396 #[serde(rename_all = "camelCase")] 408 397 pub struct PersonalDetailsPref<'a> { 409 398 /// The birth date of account owner. 410 399 #[serde(skip_serializing_if = "std::option::Option::is_none")] 411 - #[builder(into)] 412 - pub birth_date: Option<jacquard_common::types::string::Datetime>, 400 + pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>, 413 401 } 414 402 415 403 /// 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. ··· 422 410 PartialEq, 423 411 Eq, 424 412 jacquard_derive::IntoStatic, 425 - bon::Builder 413 + Default 426 414 )] 427 415 #[serde(rename_all = "camelCase")] 428 416 pub struct PostInteractionSettingsPref<'a> { 429 417 /// 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. 430 418 #[serde(skip_serializing_if = "std::option::Option::is_none")] 431 - #[builder(into)] 432 419 #[serde(borrow)] 433 - pub postgate_embedding_rules: Option< 420 + pub postgate_embedding_rules: std::option::Option< 434 421 Vec<crate::app_bsky::feed::postgate::DisableRule<'a>>, 435 422 >, 436 423 /// 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. 437 424 #[serde(skip_serializing_if = "std::option::Option::is_none")] 438 - #[builder(into)] 439 425 #[serde(borrow)] 440 - pub threadgate_allow_rules: Option< 426 + pub threadgate_allow_rules: std::option::Option< 441 427 Vec<PostInteractionSettingsPrefThreadgateAllowRulesItem<'a>>, 442 428 >, 443 429 } ··· 520 506 PartialEq, 521 507 Eq, 522 508 jacquard_derive::IntoStatic, 523 - bon::Builder 509 + Default 524 510 )] 525 511 #[serde(rename_all = "camelCase")] 526 512 pub struct ProfileAssociated<'a> { 527 513 #[serde(skip_serializing_if = "std::option::Option::is_none")] 528 - #[builder(into)] 529 514 #[serde(borrow)] 530 - pub activity_subscription: Option< 515 + pub activity_subscription: std::option::Option< 531 516 crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>, 532 517 >, 533 518 #[serde(skip_serializing_if = "std::option::Option::is_none")] 534 - #[builder(into)] 535 519 #[serde(borrow)] 536 - pub chat: Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>, 520 + pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>, 537 521 #[serde(skip_serializing_if = "std::option::Option::is_none")] 538 - #[builder(into)] 539 - pub feedgens: Option<i64>, 522 + pub feedgens: std::option::Option<i64>, 540 523 #[serde(skip_serializing_if = "std::option::Option::is_none")] 541 - #[builder(into)] 542 - pub labeler: Option<bool>, 524 + pub labeler: std::option::Option<bool>, 543 525 #[serde(skip_serializing_if = "std::option::Option::is_none")] 544 - #[builder(into)] 545 - pub lists: Option<i64>, 526 + pub lists: std::option::Option<i64>, 546 527 #[serde(skip_serializing_if = "std::option::Option::is_none")] 547 - #[builder(into)] 548 - pub starter_packs: Option<i64>, 528 + pub starter_packs: std::option::Option<i64>, 549 529 } 550 530 551 531 #[jacquard_derive::lexicon] ··· 557 537 PartialEq, 558 538 Eq, 559 539 jacquard_derive::IntoStatic, 560 - bon::Builder 540 + Default 561 541 )] 562 542 #[serde(rename_all = "camelCase")] 563 543 pub struct ProfileAssociatedActivitySubscription<'a> { 564 544 #[serde(borrow)] 565 - #[builder(into)] 566 545 pub allow_subscriptions: jacquard_common::CowStr<'a>, 567 546 } 568 547 ··· 575 554 PartialEq, 576 555 Eq, 577 556 jacquard_derive::IntoStatic, 578 - bon::Builder 557 + Default 579 558 )] 580 559 #[serde(rename_all = "camelCase")] 581 560 pub struct ProfileAssociatedChat<'a> { 582 561 #[serde(borrow)] 583 - #[builder(into)] 584 562 pub allow_incoming: jacquard_common::CowStr<'a>, 585 563 } 586 564 ··· 894 872 PartialEq, 895 873 Eq, 896 874 jacquard_derive::IntoStatic, 897 - bon::Builder 875 + Default 898 876 )] 899 877 #[serde(rename_all = "camelCase")] 900 878 pub struct ThreadViewPref<'a> { 901 879 /// Show followed users at the top of all replies. 902 880 #[serde(skip_serializing_if = "std::option::Option::is_none")] 903 - #[builder(into)] 904 - pub prioritize_followed_users: Option<bool>, 881 + pub prioritize_followed_users: std::option::Option<bool>, 905 882 /// Sorting mode for threads. 906 883 #[serde(skip_serializing_if = "std::option::Option::is_none")] 907 - #[builder(into)] 908 884 #[serde(borrow)] 909 - pub sort: Option<jacquard_common::CowStr<'a>>, 885 + pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 910 886 } 911 887 912 888 /// Preferences for how verified accounts appear in the app. ··· 919 895 PartialEq, 920 896 Eq, 921 897 jacquard_derive::IntoStatic, 922 - bon::Builder 898 + Default 923 899 )] 924 900 #[serde(rename_all = "camelCase")] 925 901 pub struct VerificationPrefs<'a> { 926 902 /// Hide the blue check badges for verified accounts and trusted verifiers. 927 903 #[serde(skip_serializing_if = "std::option::Option::is_none")] 928 - #[builder(into)] 929 - pub hide_badges: Option<bool>, 904 + pub hide_badges: std::option::Option<bool>, 930 905 } 931 906 932 907 /// Represents the verification information about the user this object is attached to. ··· 992 967 PartialEq, 993 968 Eq, 994 969 jacquard_derive::IntoStatic, 995 - bon::Builder 970 + Default 996 971 )] 997 972 #[serde(rename_all = "camelCase")] 998 973 pub struct ViewerState<'a> { 999 974 /// This property is present only in selected cases, as an optimization. 1000 975 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1001 - #[builder(into)] 1002 976 #[serde(borrow)] 1003 - pub activity_subscription: Option< 977 + pub activity_subscription: std::option::Option< 1004 978 crate::app_bsky::notification::ActivitySubscription<'a>, 1005 979 >, 1006 980 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1007 - #[builder(into)] 1008 - pub blocked_by: Option<bool>, 981 + pub blocked_by: std::option::Option<bool>, 1009 982 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1010 - #[builder(into)] 1011 983 #[serde(borrow)] 1012 - pub blocking: Option<jacquard_common::types::string::AtUri<'a>>, 984 + pub blocking: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 1013 985 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1014 - #[builder(into)] 1015 986 #[serde(borrow)] 1016 - pub blocking_by_list: Option<crate::app_bsky::graph::ListViewBasic<'a>>, 987 + pub blocking_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 1017 988 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1018 - #[builder(into)] 1019 989 #[serde(borrow)] 1020 - pub followed_by: Option<jacquard_common::types::string::AtUri<'a>>, 990 + pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 1021 991 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1022 - #[builder(into)] 1023 992 #[serde(borrow)] 1024 - pub following: Option<jacquard_common::types::string::AtUri<'a>>, 993 + pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 1025 994 /// This property is present only in selected cases, as an optimization. 1026 995 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1027 - #[builder(into)] 1028 996 #[serde(borrow)] 1029 - pub known_followers: Option<crate::app_bsky::actor::KnownFollowers<'a>>, 997 + pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>, 1030 998 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1031 - #[builder(into)] 1032 - pub muted: Option<bool>, 999 + pub muted: std::option::Option<bool>, 1033 1000 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1034 - #[builder(into)] 1035 1001 #[serde(borrow)] 1036 - pub muted_by_list: Option<crate::app_bsky::graph::ListViewBasic<'a>>, 1002 + pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 1037 1003 }
+24 -41
crates/jacquard-api/src/app_bsky/feed.rs
··· 299 299 PartialEq, 300 300 Eq, 301 301 jacquard_derive::IntoStatic, 302 - bon::Builder 302 + Default 303 303 )] 304 304 #[serde(rename_all = "camelCase")] 305 305 pub struct GeneratorViewerState<'a> { 306 306 #[serde(skip_serializing_if = "std::option::Option::is_none")] 307 - #[builder(into)] 308 307 #[serde(borrow)] 309 - pub like: Option<jacquard_common::types::string::AtUri<'a>>, 308 + pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 310 309 } 311 310 312 311 #[jacquard_derive::lexicon] ··· 318 317 PartialEq, 319 318 Eq, 320 319 jacquard_derive::IntoStatic, 321 - bon::Builder 320 + Default 322 321 )] 323 322 #[serde(rename_all = "camelCase")] 324 323 pub struct Interaction<'a> { 325 324 #[serde(skip_serializing_if = "std::option::Option::is_none")] 326 - #[builder(into)] 327 325 #[serde(borrow)] 328 - pub event: Option<jacquard_common::CowStr<'a>>, 326 + pub event: std::option::Option<jacquard_common::CowStr<'a>>, 329 327 /// Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. 330 328 #[serde(skip_serializing_if = "std::option::Option::is_none")] 331 - #[builder(into)] 332 329 #[serde(borrow)] 333 - pub feed_context: Option<jacquard_common::CowStr<'a>>, 330 + pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 334 331 #[serde(skip_serializing_if = "std::option::Option::is_none")] 335 - #[builder(into)] 336 332 #[serde(borrow)] 337 - pub item: Option<jacquard_common::types::string::AtUri<'a>>, 333 + pub item: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 338 334 /// Unique identifier per request that may be passed back alongside interactions. 339 335 #[serde(skip_serializing_if = "std::option::Option::is_none")] 340 - #[builder(into)] 341 336 #[serde(borrow)] 342 - pub req_id: Option<jacquard_common::CowStr<'a>>, 337 + pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 343 338 } 344 339 345 340 /// User liked the feed item ··· 557 552 PartialEq, 558 553 Eq, 559 554 jacquard_derive::IntoStatic, 560 - bon::Builder 555 + Default 561 556 )] 562 557 #[serde(rename_all = "camelCase")] 563 558 pub struct ReasonPin<'a> {} ··· 743 738 PartialEq, 744 739 Eq, 745 740 jacquard_derive::IntoStatic, 746 - bon::Builder 741 + Default 747 742 )] 748 743 #[serde(rename_all = "camelCase")] 749 744 pub struct SkeletonReasonPin<'a> {} ··· 774 769 PartialEq, 775 770 Eq, 776 771 jacquard_derive::IntoStatic, 777 - bon::Builder 772 + Default 778 773 )] 779 774 #[serde(rename_all = "camelCase")] 780 775 pub struct ThreadContext<'a> { 781 776 #[serde(skip_serializing_if = "std::option::Option::is_none")] 782 - #[builder(into)] 783 777 #[serde(borrow)] 784 - pub root_author_like: Option<jacquard_common::types::string::AtUri<'a>>, 778 + pub root_author_like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 785 779 } 786 780 787 781 #[jacquard_derive::lexicon] ··· 864 858 PartialEq, 865 859 Eq, 866 860 jacquard_derive::IntoStatic, 867 - bon::Builder 861 + Default 868 862 )] 869 863 #[serde(rename_all = "camelCase")] 870 864 pub struct ThreadgateView<'a> { 871 865 #[serde(skip_serializing_if = "std::option::Option::is_none")] 872 - #[builder(into)] 873 866 #[serde(borrow)] 874 - pub cid: Option<jacquard_common::types::string::Cid<'a>>, 867 + pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 875 868 #[serde(skip_serializing_if = "std::option::Option::is_none")] 876 - #[builder(into)] 877 869 #[serde(borrow)] 878 - pub lists: Option<Vec<crate::app_bsky::graph::ListViewBasic<'a>>>, 870 + pub lists: std::option::Option<Vec<crate::app_bsky::graph::ListViewBasic<'a>>>, 879 871 #[serde(skip_serializing_if = "std::option::Option::is_none")] 880 - #[builder(into)] 881 872 #[serde(borrow)] 882 - pub record: Option<jacquard_common::types::value::Data<'a>>, 873 + pub record: std::option::Option<jacquard_common::types::value::Data<'a>>, 883 874 #[serde(skip_serializing_if = "std::option::Option::is_none")] 884 - #[builder(into)] 885 875 #[serde(borrow)] 886 - pub uri: Option<jacquard_common::types::string::AtUri<'a>>, 876 + pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 887 877 } 888 878 889 879 /// Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. ··· 896 886 PartialEq, 897 887 Eq, 898 888 jacquard_derive::IntoStatic, 899 - bon::Builder 889 + Default 900 890 )] 901 891 #[serde(rename_all = "camelCase")] 902 892 pub struct ViewerState<'a> { 903 893 #[serde(skip_serializing_if = "std::option::Option::is_none")] 904 - #[builder(into)] 905 - pub bookmarked: Option<bool>, 894 + pub bookmarked: std::option::Option<bool>, 906 895 #[serde(skip_serializing_if = "std::option::Option::is_none")] 907 - #[builder(into)] 908 - pub embedding_disabled: Option<bool>, 896 + pub embedding_disabled: std::option::Option<bool>, 909 897 #[serde(skip_serializing_if = "std::option::Option::is_none")] 910 - #[builder(into)] 911 898 #[serde(borrow)] 912 - pub like: Option<jacquard_common::types::string::AtUri<'a>>, 899 + pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 913 900 #[serde(skip_serializing_if = "std::option::Option::is_none")] 914 - #[builder(into)] 915 - pub pinned: Option<bool>, 901 + pub pinned: std::option::Option<bool>, 916 902 #[serde(skip_serializing_if = "std::option::Option::is_none")] 917 - #[builder(into)] 918 - pub reply_disabled: Option<bool>, 903 + pub reply_disabled: std::option::Option<bool>, 919 904 #[serde(skip_serializing_if = "std::option::Option::is_none")] 920 - #[builder(into)] 921 905 #[serde(borrow)] 922 - pub repost: Option<jacquard_common::types::string::AtUri<'a>>, 906 + pub repost: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 923 907 #[serde(skip_serializing_if = "std::option::Option::is_none")] 924 - #[builder(into)] 925 - pub thread_muted: Option<bool>, 908 + pub thread_muted: std::option::Option<bool>, 926 909 }
+3 -5
crates/jacquard-api/src/app_bsky/feed/describe_feed_generator.rs
··· 31 31 PartialEq, 32 32 Eq, 33 33 jacquard_derive::IntoStatic, 34 - bon::Builder 34 + Default 35 35 )] 36 36 #[serde(rename_all = "camelCase")] 37 37 pub struct Links<'a> { 38 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 39 - #[builder(into)] 40 39 #[serde(borrow)] 41 - pub privacy_policy: Option<jacquard_common::CowStr<'a>>, 40 + pub privacy_policy: std::option::Option<jacquard_common::CowStr<'a>>, 42 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 42 #[serde(borrow)] 45 - pub terms_of_service: Option<jacquard_common::CowStr<'a>>, 43 + pub terms_of_service: std::option::Option<jacquard_common::CowStr<'a>>, 46 44 } 47 45 48 46 #[jacquard_derive::lexicon]
+1 -1
crates/jacquard-api/src/app_bsky/feed/postgate.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct DisableRule<'a> {}
+2 -1
crates/jacquard-api/src/app_bsky/feed/send_interactions.rs
··· 38 38 Clone, 39 39 PartialEq, 40 40 Eq, 41 - jacquard_derive::IntoStatic 41 + jacquard_derive::IntoStatic, 42 + Default 42 43 )] 43 44 #[serde(rename_all = "camelCase")] 44 45 pub struct SendInteractionsOutput<'a> {}
+3 -3
crates/jacquard-api/src/app_bsky/feed/threadgate.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct FollowerRule<'a> {} ··· 29 29 PartialEq, 30 30 Eq, 31 31 jacquard_derive::IntoStatic, 32 - bon::Builder 32 + Default 33 33 )] 34 34 #[serde(rename_all = "camelCase")] 35 35 pub struct FollowingRule<'a> {} ··· 156 156 PartialEq, 157 157 Eq, 158 158 jacquard_derive::IntoStatic, 159 - bon::Builder 159 + Default 160 160 )] 161 161 #[serde(rename_all = "camelCase")] 162 162 pub struct MentionRule<'a> {}
+3 -5
crates/jacquard-api/src/app_bsky/graph.rs
··· 259 259 PartialEq, 260 260 Eq, 261 261 jacquard_derive::IntoStatic, 262 - bon::Builder 262 + Default 263 263 )] 264 264 #[serde(rename_all = "camelCase")] 265 265 pub struct ListViewerState<'a> { 266 266 #[serde(skip_serializing_if = "std::option::Option::is_none")] 267 - #[builder(into)] 268 267 #[serde(borrow)] 269 - pub blocked: Option<jacquard_common::types::string::AtUri<'a>>, 268 + pub blocked: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 270 269 #[serde(skip_serializing_if = "std::option::Option::is_none")] 271 - #[builder(into)] 272 - pub muted: Option<bool>, 270 + pub muted: std::option::Option<bool>, 273 271 } 274 272 275 273 /// A list of actors to apply an aggregate moderation action (mute/block) on.
+2 -3
crates/jacquard-api/src/app_bsky/labeler.rs
··· 125 125 PartialEq, 126 126 Eq, 127 127 jacquard_derive::IntoStatic, 128 - bon::Builder 128 + Default 129 129 )] 130 130 #[serde(rename_all = "camelCase")] 131 131 pub struct LabelerViewerState<'a> { 132 132 #[serde(skip_serializing_if = "std::option::Option::is_none")] 133 - #[builder(into)] 134 133 #[serde(borrow)] 135 - pub like: Option<jacquard_common::types::string::AtUri<'a>>, 134 + pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 136 135 }
+1 -1
crates/jacquard-api/src/app_bsky/notification.rs
··· 140 140 PartialEq, 141 141 Eq, 142 142 jacquard_derive::IntoStatic, 143 - bon::Builder 143 + Default 144 144 )] 145 145 #[serde(rename_all = "camelCase")] 146 146 pub struct RecordDeleted<'a> {}
+33 -36
crates/jacquard-api/src/app_bsky/notification/put_preferences_v2.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct PutPreferencesV2<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub chat: Option<crate::app_bsky::notification::ChatPreference<'a>>, 23 + pub chat: std::option::Option<crate::app_bsky::notification::ChatPreference<'a>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 25 #[serde(borrow)] 29 - pub follow: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 26 + pub follow: std::option::Option< 27 + crate::app_bsky::notification::FilterablePreference<'a>, 28 + >, 30 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 - #[builder(into)] 32 30 #[serde(borrow)] 33 - pub like: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 31 + pub like: std::option::Option< 32 + crate::app_bsky::notification::FilterablePreference<'a>, 33 + >, 34 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 35 - #[builder(into)] 36 35 #[serde(borrow)] 37 - pub like_via_repost: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 36 + pub like_via_repost: std::option::Option< 37 + crate::app_bsky::notification::FilterablePreference<'a>, 38 + >, 38 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 39 - #[builder(into)] 40 40 #[serde(borrow)] 41 - pub mention: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 41 + pub mention: std::option::Option< 42 + crate::app_bsky::notification::FilterablePreference<'a>, 43 + >, 42 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 45 #[serde(borrow)] 45 - pub quote: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 46 + pub quote: std::option::Option< 47 + crate::app_bsky::notification::FilterablePreference<'a>, 48 + >, 46 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 47 - #[builder(into)] 48 50 #[serde(borrow)] 49 - pub reply: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 51 + pub reply: std::option::Option< 52 + crate::app_bsky::notification::FilterablePreference<'a>, 53 + >, 50 54 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 - #[builder(into)] 52 55 #[serde(borrow)] 53 - pub repost: Option<crate::app_bsky::notification::FilterablePreference<'a>>, 56 + pub repost: std::option::Option< 57 + crate::app_bsky::notification::FilterablePreference<'a>, 58 + >, 54 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 55 - #[builder(into)] 56 60 #[serde(borrow)] 57 - pub repost_via_repost: Option< 61 + pub repost_via_repost: std::option::Option< 58 62 crate::app_bsky::notification::FilterablePreference<'a>, 59 63 >, 60 64 #[serde(skip_serializing_if = "std::option::Option::is_none")] 61 - #[builder(into)] 62 65 #[serde(borrow)] 63 - pub starterpack_joined: Option<crate::app_bsky::notification::Preference<'a>>, 66 + pub starterpack_joined: std::option::Option< 67 + crate::app_bsky::notification::Preference<'a>, 68 + >, 64 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 65 - #[builder(into)] 66 70 #[serde(borrow)] 67 - pub subscribed_post: Option<crate::app_bsky::notification::Preference<'a>>, 71 + pub subscribed_post: std::option::Option< 72 + crate::app_bsky::notification::Preference<'a>, 73 + >, 68 74 #[serde(skip_serializing_if = "std::option::Option::is_none")] 69 - #[builder(into)] 70 75 #[serde(borrow)] 71 - pub unverified: Option<crate::app_bsky::notification::Preference<'a>>, 76 + pub unverified: std::option::Option<crate::app_bsky::notification::Preference<'a>>, 72 77 #[serde(skip_serializing_if = "std::option::Option::is_none")] 73 - #[builder(into)] 74 78 #[serde(borrow)] 75 - pub verified: Option<crate::app_bsky::notification::Preference<'a>>, 76 - #[serde(flatten)] 77 - #[serde(borrow)] 78 - #[builder(default)] 79 - pub extra_data: ::std::collections::BTreeMap< 80 - ::jacquard_common::smol_str::SmolStr, 81 - ::jacquard_common::types::value::Data<'a>, 82 - >, 79 + pub verified: std::option::Option<crate::app_bsky::notification::Preference<'a>>, 83 80 } 84 81 85 82 #[jacquard_derive::lexicon]
+1 -2
crates/jacquard-api/src/app_bsky/richtext/facet.rs
··· 110 110 PartialEq, 111 111 Eq, 112 112 jacquard_derive::IntoStatic, 113 - bon::Builder 113 + Default 114 114 )] 115 115 #[serde(rename_all = "camelCase")] 116 116 pub struct Tag<'a> { 117 117 #[serde(borrow)] 118 - #[builder(into)] 119 118 pub tag: jacquard_common::CowStr<'a>, 120 119 }
+7 -13
crates/jacquard-api/src/app_bsky/unspecced.rs
··· 89 89 PartialEq, 90 90 Eq, 91 91 jacquard_derive::IntoStatic, 92 - bon::Builder 92 + Default 93 93 )] 94 94 #[serde(rename_all = "camelCase")] 95 95 pub struct AgeAssuranceState<'a> { 96 96 /// The timestamp when this state was last updated. 97 97 #[serde(skip_serializing_if = "std::option::Option::is_none")] 98 - #[builder(into)] 99 - pub last_initiated_at: Option<jacquard_common::types::string::Datetime>, 98 + pub last_initiated_at: std::option::Option<jacquard_common::types::string::Datetime>, 100 99 /// The status of the age assurance process. 101 100 #[serde(borrow)] 102 - #[builder(into)] 103 101 pub status: jacquard_common::CowStr<'a>, 104 102 } 105 103 ··· 216 214 PartialEq, 217 215 Eq, 218 216 jacquard_derive::IntoStatic, 219 - bon::Builder 217 + Default 220 218 )] 221 219 #[serde(rename_all = "camelCase")] 222 220 pub struct ThreadItemNoUnauthenticated<'a> {} ··· 229 227 PartialEq, 230 228 Eq, 231 229 jacquard_derive::IntoStatic, 232 - bon::Builder 230 + Default 233 231 )] 234 232 #[serde(rename_all = "camelCase")] 235 233 pub struct ThreadItemNotFound<'a> {} ··· 305 303 PartialEq, 306 304 Eq, 307 305 jacquard_derive::IntoStatic, 308 - bon::Builder 306 + Default 309 307 )] 310 308 #[serde(rename_all = "camelCase")] 311 309 pub struct TrendingTopic<'a> { 312 310 #[serde(skip_serializing_if = "std::option::Option::is_none")] 313 - #[builder(into)] 314 311 #[serde(borrow)] 315 - pub description: Option<jacquard_common::CowStr<'a>>, 312 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 316 313 #[serde(skip_serializing_if = "std::option::Option::is_none")] 317 - #[builder(into)] 318 314 #[serde(borrow)] 319 - pub display_name: Option<jacquard_common::CowStr<'a>>, 315 + pub display_name: std::option::Option<jacquard_common::CowStr<'a>>, 320 316 #[serde(borrow)] 321 - #[builder(into)] 322 317 pub link: jacquard_common::CowStr<'a>, 323 318 #[serde(borrow)] 324 - #[builder(into)] 325 319 pub topic: jacquard_common::CowStr<'a>, 326 320 }
+2 -1
crates/jacquard-api/src/app_bsky/unspecced/get_config.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 36 37 )] 37 38 #[serde(rename_all = "camelCase")] 38 39 pub struct GetConfigOutput<'a> {
+2 -13
crates/jacquard-api/src/app_bsky/unspecced/init_age_assurance.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct InitAgeAssurance<'a> { 22 21 /// An ISO 3166-1 alpha-2 code of the user's location. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub country_code: jacquard_common::CowStr<'a>, 26 24 /// The user's email address to receive assurance instructions. 27 25 #[serde(borrow)] 28 - #[builder(into)] 29 26 pub email: jacquard_common::CowStr<'a>, 30 27 /// The user's preferred language for communication during the assurance process. 31 28 #[serde(borrow)] 32 - #[builder(into)] 33 29 pub language: jacquard_common::CowStr<'a>, 34 - #[serde(flatten)] 35 - #[serde(borrow)] 36 - #[builder(default)] 37 - pub extra_data: ::std::collections::BTreeMap< 38 - ::jacquard_common::smol_str::SmolStr, 39 - ::jacquard_common::types::value::Data<'a>, 40 - >, 41 30 } 42 31 43 32 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/app_ocho/auth/authorize.rs
··· 41 41 Clone, 42 42 PartialEq, 43 43 Eq, 44 - jacquard_derive::IntoStatic 44 + jacquard_derive::IntoStatic, 45 + Default 45 46 )] 46 47 #[serde(rename_all = "camelCase")] 47 48 pub struct AuthorizeOutput<'a> {
+4 -15
crates/jacquard-api/src/app_ocho/auth/update_email.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateEmail<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub email: jacquard_common::CowStr<'a>, 25 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 - #[builder(into)] 27 - pub email_auth_factor: Option<bool>, 24 + pub email_auth_factor: std::option::Option<bool>, 28 25 /// Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed. 29 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 - #[builder(into)] 31 27 #[serde(borrow)] 32 - pub token: Option<jacquard_common::CowStr<'a>>, 33 - #[serde(flatten)] 34 - #[serde(borrow)] 35 - #[builder(default)] 36 - pub extra_data: ::std::collections::BTreeMap< 37 - ::jacquard_common::smol_str::SmolStr, 38 - ::jacquard_common::types::value::Data<'a>, 39 - >, 28 + pub token: std::option::Option<jacquard_common::CowStr<'a>>, 40 29 } 41 30 42 31 #[jacquard_derive::open_union]
+2 -1
crates/jacquard-api/src/app_ocho/auth/whoami.rs
··· 14 14 Clone, 15 15 PartialEq, 16 16 Eq, 17 - jacquard_derive::IntoStatic 17 + jacquard_derive::IntoStatic, 18 + Default 18 19 )] 19 20 #[serde(rename_all = "camelCase")] 20 21 pub struct WhoamiOutput<'a> {
+2 -1
crates/jacquard-api/src/app_ocho/edu/get_verification_url.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 36 37 )] 37 38 #[serde(rename_all = "camelCase")] 38 39 pub struct GetVerificationUrlOutput<'a> {
+2 -12
crates/jacquard-api/src/app_ocho/message/send.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct Send<'a> { 22 21 /// The user to send the message to. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub did: jacquard_common::CowStr<'a>, 26 24 /// The message to send to the user. 27 25 #[serde(borrow)] 28 - #[builder(into)] 29 26 pub message: jacquard_common::CowStr<'a>, 30 - #[serde(flatten)] 31 - #[serde(borrow)] 32 - #[builder(default)] 33 - pub extra_data: ::std::collections::BTreeMap< 34 - ::jacquard_common::smol_str::SmolStr, 35 - ::jacquard_common::types::value::Data<'a>, 36 - >, 37 27 } 38 28 39 29 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/app_ocho/payment/get_stripe_intent.rs
··· 39 39 Clone, 40 40 PartialEq, 41 41 Eq, 42 - jacquard_derive::IntoStatic 42 + jacquard_derive::IntoStatic, 43 + Default 43 44 )] 44 45 #[serde(rename_all = "camelCase")] 45 46 pub struct GetStripeIntentOutput<'a> {
+39 -66
crates/jacquard-api/src/app_ocho/plugin.rs
··· 19 19 PartialEq, 20 20 Eq, 21 21 jacquard_derive::IntoStatic, 22 - bon::Builder 22 + Default 23 23 )] 24 24 #[serde(rename_all = "camelCase")] 25 25 pub struct AdaptiveIcon<'a> { 26 26 /// The background color of the adaptive icon. 27 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 28 #[serde(borrow)] 30 - pub background_color: Option<jacquard_common::CowStr<'a>>, 29 + pub background_color: std::option::Option<jacquard_common::CowStr<'a>>, 31 30 /// The URL to the foreground image of the adaptive icon. 32 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 32 #[serde(borrow)] 35 - pub foreground_image: Option<jacquard_common::CowStr<'a>>, 33 + pub foreground_image: std::option::Option<jacquard_common::CowStr<'a>>, 36 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 - #[builder(into)] 38 35 #[serde(borrow)] 39 - pub foreground_image_blob: Option<jacquard_common::types::blob::Blob<'a>>, 36 + pub foreground_image_blob: std::option::Option< 37 + jacquard_common::types::blob::Blob<'a>, 38 + >, 40 39 } 41 40 42 41 #[jacquard_derive::lexicon] ··· 48 47 PartialEq, 49 48 Eq, 50 49 jacquard_derive::IntoStatic, 51 - bon::Builder 50 + Default 52 51 )] 53 52 #[serde(rename_all = "camelCase")] 54 53 pub struct Android<'a> { 55 54 /// Configuration for the adaptive icon on Android. 56 55 #[serde(skip_serializing_if = "std::option::Option::is_none")] 57 - #[builder(into)] 58 56 #[serde(borrow)] 59 - pub adaptive_icon: Option<crate::app_ocho::plugin::AdaptiveIcon<'a>>, 57 + pub adaptive_icon: std::option::Option<crate::app_ocho::plugin::AdaptiveIcon<'a>>, 60 58 /// Whether edge-to-edge mode is enabled for the app. 61 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 62 - #[builder(into)] 63 - pub edge_to_edge_enabled: Option<bool>, 60 + pub edge_to_edge_enabled: std::option::Option<bool>, 64 61 } 65 62 66 63 /// Android status bar configuration. ··· 73 70 PartialEq, 74 71 Eq, 75 72 jacquard_derive::IntoStatic, 76 - bon::Builder 73 + Default 77 74 )] 78 75 #[serde(rename_all = "camelCase")] 79 76 pub struct AndroidStatusBar<'a> { 80 77 /// The background color of the Android status bar. 81 78 #[serde(skip_serializing_if = "std::option::Option::is_none")] 82 - #[builder(into)] 83 79 #[serde(borrow)] 84 - pub background_color: Option<jacquard_common::CowStr<'a>>, 80 + pub background_color: std::option::Option<jacquard_common::CowStr<'a>>, 85 81 } 86 82 87 83 #[jacquard_derive::lexicon] ··· 123 119 PartialEq, 124 120 Eq, 125 121 jacquard_derive::IntoStatic, 126 - bon::Builder 122 + Default 127 123 )] 128 124 #[serde(rename_all = "camelCase")] 129 125 pub struct Db<'a> { 130 126 /// The ID of the database. 131 127 #[serde(borrow)] 132 - #[builder(into)] 133 128 pub id: jacquard_common::CowStr<'a>, 134 129 } 135 130 ··· 142 137 PartialEq, 143 138 Eq, 144 139 jacquard_derive::IntoStatic, 145 - bon::Builder 140 + Default 146 141 )] 147 142 #[serde(rename_all = "camelCase")] 148 143 pub struct Developer<'a> { 149 144 /// The tool used for development, e.g., 'expo-cli'. 150 145 #[serde(borrow)] 151 - #[builder(into)] 152 146 pub tool: jacquard_common::CowStr<'a>, 153 147 } 154 148 ··· 161 155 PartialEq, 162 156 Eq, 163 157 jacquard_derive::IntoStatic, 164 - bon::Builder 158 + Default 165 159 )] 166 160 #[serde(rename_all = "camelCase")] 167 161 pub struct ExpoClient<'a> { 168 162 /// Android-specific configuration for the app. 169 163 #[serde(skip_serializing_if = "std::option::Option::is_none")] 170 - #[builder(into)] 171 164 #[serde(borrow)] 172 - pub android: Option<crate::app_ocho::plugin::Android<'a>>, 165 + pub android: std::option::Option<crate::app_ocho::plugin::Android<'a>>, 173 166 /// Configuration for the Android status bar. 174 167 #[serde(skip_serializing_if = "std::option::Option::is_none")] 175 - #[builder(into)] 176 168 #[serde(borrow)] 177 - pub android_status_bar: Option<crate::app_ocho::plugin::AndroidStatusBar<'a>>, 169 + pub android_status_bar: std::option::Option< 170 + crate::app_ocho::plugin::AndroidStatusBar<'a>, 171 + >, 178 172 /// Experimental features enabled for the app. 179 173 #[serde(skip_serializing_if = "std::option::Option::is_none")] 180 - #[builder(into)] 181 174 #[serde(borrow)] 182 - pub expirements: Option<jacquard_common::types::value::Data<'a>>, 175 + pub expirements: std::option::Option<jacquard_common::types::value::Data<'a>>, 183 176 /// Additional configuration for the app. 184 177 #[serde(skip_serializing_if = "std::option::Option::is_none")] 185 - #[builder(into)] 186 178 #[serde(borrow)] 187 - pub extra: Option<jacquard_common::types::value::Data<'a>>, 179 + pub extra: std::option::Option<jacquard_common::types::value::Data<'a>>, 188 180 /// The URL to the app icon. 189 181 #[serde(skip_serializing_if = "std::option::Option::is_none")] 190 - #[builder(into)] 191 182 #[serde(borrow)] 192 - pub icon: Option<jacquard_common::CowStr<'a>>, 183 + pub icon: std::option::Option<jacquard_common::CowStr<'a>>, 193 184 /// ios-specific configuration for the app. 194 185 #[serde(skip_serializing_if = "std::option::Option::is_none")] 195 - #[builder(into)] 196 186 #[serde(borrow)] 197 - pub ios: Option<crate::app_ocho::plugin::Ios<'a>>, 187 + pub ios: std::option::Option<crate::app_ocho::plugin::Ios<'a>>, 198 188 /// Localization settings for the app. 199 189 #[serde(skip_serializing_if = "std::option::Option::is_none")] 200 - #[builder(into)] 201 190 #[serde(borrow)] 202 - pub locales: Option<jacquard_common::types::value::Data<'a>>, 191 + pub locales: std::option::Option<jacquard_common::types::value::Data<'a>>, 203 192 /// The name of the Expo client application. 204 193 #[serde(borrow)] 205 - #[builder(into)] 206 194 pub name: jacquard_common::CowStr<'a>, 207 195 /// Whether the new architecture is enabled for the app. 208 196 #[serde(skip_serializing_if = "std::option::Option::is_none")] 209 - #[builder(into)] 210 - pub new_arch_enabled: Option<bool>, 197 + pub new_arch_enabled: std::option::Option<bool>, 211 198 /// The default orientation of the app. 212 199 #[serde(skip_serializing_if = "std::option::Option::is_none")] 213 - #[builder(into)] 214 200 #[serde(borrow)] 215 - pub orientation: Option<jacquard_common::CowStr<'a>>, 201 + pub orientation: std::option::Option<jacquard_common::CowStr<'a>>, 216 202 /// The platforms supported by the app. 217 203 #[serde(skip_serializing_if = "std::option::Option::is_none")] 218 - #[builder(into)] 219 204 #[serde(borrow)] 220 - pub platforms: Option<Vec<jacquard_common::CowStr<'a>>>, 205 + pub platforms: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 221 206 /// A list of plugins used by the app. 222 207 #[serde(skip_serializing_if = "std::option::Option::is_none")] 223 - #[builder(into)] 224 208 #[serde(borrow)] 225 - pub plugins: Option<jacquard_common::types::value::Data<'a>>, 209 + pub plugins: std::option::Option<jacquard_common::types::value::Data<'a>>, 226 210 /// The custom URI scheme for deep linking. 227 211 #[serde(skip_serializing_if = "std::option::Option::is_none")] 228 - #[builder(into)] 229 212 #[serde(borrow)] 230 - pub scheme: Option<jacquard_common::CowStr<'a>>, 213 + pub scheme: std::option::Option<jacquard_common::CowStr<'a>>, 231 214 /// The SDK version of the Expo client. 232 215 #[serde(skip_serializing_if = "std::option::Option::is_none")] 233 - #[builder(into)] 234 216 #[serde(borrow)] 235 - pub sdk_version: Option<jacquard_common::CowStr<'a>>, 217 + pub sdk_version: std::option::Option<jacquard_common::CowStr<'a>>, 236 218 /// A URL-friendly identifier for the app. 237 219 #[serde(borrow)] 238 - #[builder(into)] 239 220 pub slug: jacquard_common::CowStr<'a>, 240 221 /// The default user interface style. 241 222 #[serde(skip_serializing_if = "std::option::Option::is_none")] 242 - #[builder(into)] 243 223 #[serde(borrow)] 244 - pub user_interface_style: Option<jacquard_common::CowStr<'a>>, 224 + pub user_interface_style: std::option::Option<jacquard_common::CowStr<'a>>, 245 225 /// The version of the app. 246 226 #[serde(skip_serializing_if = "std::option::Option::is_none")] 247 - #[builder(into)] 248 227 #[serde(borrow)] 249 - pub version: Option<jacquard_common::CowStr<'a>>, 228 + pub version: std::option::Option<jacquard_common::CowStr<'a>>, 250 229 /// Web-specific configuration for the app. 251 230 #[serde(skip_serializing_if = "std::option::Option::is_none")] 252 - #[builder(into)] 253 231 #[serde(borrow)] 254 - pub web: Option<crate::app_ocho::plugin::Web<'a>>, 232 + pub web: std::option::Option<crate::app_ocho::plugin::Web<'a>>, 255 233 } 256 234 257 235 #[jacquard_derive::lexicon] ··· 281 259 PartialEq, 282 260 Eq, 283 261 jacquard_derive::IntoStatic, 284 - bon::Builder 262 + Default 285 263 )] 286 264 #[serde(rename_all = "camelCase")] 287 265 pub struct Ios<'a> { 288 266 /// Whether the app supports iPad. 289 267 #[serde(skip_serializing_if = "std::option::Option::is_none")] 290 - #[builder(into)] 291 - pub supports_tablet: Option<bool>, 268 + pub supports_tablet: std::option::Option<bool>, 292 269 } 293 270 294 271 #[jacquard_derive::lexicon] ··· 401 378 PartialEq, 402 379 Eq, 403 380 jacquard_derive::IntoStatic, 404 - bon::Builder 381 + Default 405 382 )] 406 383 #[serde(rename_all = "camelCase")] 407 384 pub struct Web<'a> { 408 385 /// The bundler used for the web app. 409 386 #[serde(skip_serializing_if = "std::option::Option::is_none")] 410 - #[builder(into)] 411 387 #[serde(borrow)] 412 - pub bundler: Option<jacquard_common::CowStr<'a>>, 388 + pub bundler: std::option::Option<jacquard_common::CowStr<'a>>, 413 389 /// The URL to the favicon for the web app. 414 390 #[serde(skip_serializing_if = "std::option::Option::is_none")] 415 - #[builder(into)] 416 391 #[serde(borrow)] 417 - pub favicon: Option<jacquard_common::CowStr<'a>>, 392 + pub favicon: std::option::Option<jacquard_common::CowStr<'a>>, 418 393 #[serde(skip_serializing_if = "std::option::Option::is_none")] 419 - #[builder(into)] 420 394 #[serde(borrow)] 421 - pub favicon_blob: Option<jacquard_common::types::blob::Blob<'a>>, 395 + pub favicon_blob: std::option::Option<jacquard_common::types::blob::Blob<'a>>, 422 396 /// The output directory for the web app. 423 397 #[serde(skip_serializing_if = "std::option::Option::is_none")] 424 - #[builder(into)] 425 398 #[serde(borrow)] 426 - pub output: Option<jacquard_common::CowStr<'a>>, 399 + pub output: std::option::Option<jacquard_common::CowStr<'a>>, 427 400 }
+2 -11
crates/jacquard-api/src/app_ocho/plugin/put_hosting_url.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct PutHostingUrl<'a> { 22 21 /// The expo push token 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub url: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon]
+2 -11
crates/jacquard-api/src/app_ocho/push/register.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct Register<'a> { 22 21 /// The expo push token 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub push_token: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/app_ocho/server/get_launch_token.rs
··· 30 30 Clone, 31 31 PartialEq, 32 32 Eq, 33 - jacquard_derive::IntoStatic 33 + jacquard_derive::IntoStatic, 34 + Default 34 35 )] 35 36 #[serde(rename_all = "camelCase")] 36 37 pub struct GetLaunchTokenOutput<'a> {
+2 -1
crates/jacquard-api/src/app_ocho/server/get_token.rs
··· 30 30 Clone, 31 31 PartialEq, 32 32 Eq, 33 - jacquard_derive::IntoStatic 33 + jacquard_derive::IntoStatic, 34 + Default 34 35 )] 35 36 #[serde(rename_all = "camelCase")] 36 37 pub struct GetTokenOutput<'a> {
+2 -1
crates/jacquard-api/src/app_ocho/server/swap_launch_token.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct SwapLaunchTokenOutput<'a> {
+2 -1
crates/jacquard-api/src/app_ocho/state/get_config.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 17 18 )] 18 19 #[serde(rename_all = "camelCase")] 19 20 pub struct GetConfigOutput<'a> {
+2 -1
crates/jacquard-api/src/app_ocho/state/login.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 17 18 )] 18 19 #[serde(rename_all = "camelCase")] 19 20 pub struct LoginOutput<'a> {
+10 -18
crates/jacquard-api/src/blog_pckt/blog.rs
··· 97 97 PartialEq, 98 98 Eq, 99 99 jacquard_derive::IntoStatic, 100 - bon::Builder 100 + Default 101 101 )] 102 102 #[serde(rename_all = "camelCase")] 103 103 pub struct Palette<'a> { 104 104 #[serde(skip_serializing_if = "std::option::Option::is_none")] 105 - #[builder(into)] 106 105 #[serde(borrow)] 107 - pub accent: Option<jacquard_common::CowStr<'a>>, 106 + pub accent: std::option::Option<jacquard_common::CowStr<'a>>, 108 107 #[serde(skip_serializing_if = "std::option::Option::is_none")] 109 - #[builder(into)] 110 108 #[serde(borrow)] 111 - pub background: Option<jacquard_common::CowStr<'a>>, 109 + pub background: std::option::Option<jacquard_common::CowStr<'a>>, 112 110 #[serde(skip_serializing_if = "std::option::Option::is_none")] 113 - #[builder(into)] 114 111 #[serde(borrow)] 115 - pub link: Option<jacquard_common::CowStr<'a>>, 112 + pub link: std::option::Option<jacquard_common::CowStr<'a>>, 116 113 #[serde(skip_serializing_if = "std::option::Option::is_none")] 117 - #[builder(into)] 118 114 #[serde(borrow)] 119 - pub surface_hover: Option<jacquard_common::CowStr<'a>>, 115 + pub surface_hover: std::option::Option<jacquard_common::CowStr<'a>>, 120 116 #[serde(skip_serializing_if = "std::option::Option::is_none")] 121 - #[builder(into)] 122 117 #[serde(borrow)] 123 - pub text: Option<jacquard_common::CowStr<'a>>, 118 + pub text: std::option::Option<jacquard_common::CowStr<'a>>, 124 119 } 125 120 126 121 #[jacquard_derive::lexicon] ··· 132 127 PartialEq, 133 128 Eq, 134 129 jacquard_derive::IntoStatic, 135 - bon::Builder 130 + Default 136 131 )] 137 132 #[serde(rename_all = "camelCase")] 138 133 pub struct Theme<'a> { 139 134 #[serde(skip_serializing_if = "std::option::Option::is_none")] 140 - #[builder(into)] 141 135 #[serde(borrow)] 142 - pub dark: Option<crate::blog_pckt::blog::Palette<'a>>, 136 + pub dark: std::option::Option<crate::blog_pckt::blog::Palette<'a>>, 143 137 #[serde(skip_serializing_if = "std::option::Option::is_none")] 144 - #[builder(into)] 145 138 #[serde(borrow)] 146 - pub font: Option<jacquard_common::CowStr<'a>>, 139 + pub font: std::option::Option<jacquard_common::CowStr<'a>>, 147 140 #[serde(skip_serializing_if = "std::option::Option::is_none")] 148 - #[builder(into)] 149 141 #[serde(borrow)] 150 - pub light: Option<crate::blog_pckt::blog::Palette<'a>>, 142 + pub light: std::option::Option<crate::blog_pckt::blog::Palette<'a>>, 151 143 }
+1 -6
crates/jacquard-api/src/blog_pckt/theme.rs
··· 84 84 PartialEq, 85 85 Eq, 86 86 jacquard_derive::IntoStatic, 87 - bon::Builder 87 + Default 88 88 )] 89 89 #[serde(rename_all = "camelCase")] 90 90 pub struct Palette<'a> { 91 91 /// Accent color (hex value) 92 92 #[serde(borrow)] 93 - #[builder(into)] 94 93 pub accent: jacquard_common::CowStr<'a>, 95 94 /// Background color (hex value) 96 95 #[serde(borrow)] 97 - #[builder(into)] 98 96 pub background: jacquard_common::CowStr<'a>, 99 97 /// Link color (hex value) 100 98 #[serde(borrow)] 101 - #[builder(into)] 102 99 pub link: jacquard_common::CowStr<'a>, 103 100 /// Surface hover color (hex value) 104 101 #[serde(borrow)] 105 - #[builder(into)] 106 102 pub surface_hover: jacquard_common::CowStr<'a>, 107 103 /// Primary text color (hex value) 108 104 #[serde(borrow)] 109 - #[builder(into)] 110 105 pub text: jacquard_common::CowStr<'a>, 111 106 }
+4 -7
crates/jacquard-api/src/blue_linkat/board.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Card<'a> { 21 21 /// Emoji of the card 22 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 23 #[serde(borrow)] 25 - pub emoji: Option<jacquard_common::CowStr<'a>>, 24 + pub emoji: std::option::Option<jacquard_common::CowStr<'a>>, 26 25 /// Text of the card 27 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 27 #[serde(borrow)] 30 - pub text: Option<jacquard_common::CowStr<'a>>, 28 + pub text: std::option::Option<jacquard_common::CowStr<'a>>, 31 29 /// URL of the link 32 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 31 #[serde(borrow)] 35 - pub url: Option<jacquard_common::CowStr<'a>>, 32 + pub url: std::option::Option<jacquard_common::CowStr<'a>>, 36 33 } 37 34 38 35 /// Record containing a cards of your profile.
+8 -14
crates/jacquard-api/src/blue_zio/atfile/finger.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Browser<'a> { 22 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 23 #[serde(borrow)] 25 - pub id: Option<jacquard_common::CowStr<'a>>, 24 + pub id: std::option::Option<jacquard_common::CowStr<'a>>, 26 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 26 #[serde(borrow)] 29 - pub user_agent: Option<jacquard_common::CowStr<'a>>, 27 + pub user_agent: std::option::Option<jacquard_common::CowStr<'a>>, 30 28 } 31 29 32 30 /// A fingerprint of a machine upload. ··· 39 37 PartialEq, 40 38 Eq, 41 39 jacquard_derive::IntoStatic, 42 - bon::Builder 40 + Default 43 41 )] 44 42 #[serde(rename_all = "camelCase")] 45 43 pub struct Machine<'a> { 46 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 47 - #[builder(into)] 48 45 #[serde(borrow)] 49 - pub app: Option<jacquard_common::CowStr<'a>>, 46 + pub app: std::option::Option<jacquard_common::CowStr<'a>>, 50 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 - #[builder(into)] 52 48 #[serde(borrow)] 53 - pub host: Option<jacquard_common::CowStr<'a>>, 49 + pub host: std::option::Option<jacquard_common::CowStr<'a>>, 54 50 #[serde(skip_serializing_if = "std::option::Option::is_none")] 55 - #[builder(into)] 56 51 #[serde(borrow)] 57 - pub id: Option<jacquard_common::CowStr<'a>>, 52 + pub id: std::option::Option<jacquard_common::CowStr<'a>>, 58 53 #[serde(skip_serializing_if = "std::option::Option::is_none")] 59 - #[builder(into)] 60 54 #[serde(borrow)] 61 - pub os: Option<jacquard_common::CowStr<'a>>, 55 + pub os: std::option::Option<jacquard_common::CowStr<'a>>, 62 56 }
+2 -3
crates/jacquard-api/src/blue_zio/atfile/meta.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Unknown<'a> { 22 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 23 #[serde(borrow)] 25 - pub reason: Option<jacquard_common::CowStr<'a>>, 24 + pub reason: std::option::Option<jacquard_common::CowStr<'a>>, 26 25 }
+2 -1
crates/jacquard-api/src/chat_bsky/actor/delete_account.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 17 18 )] 18 19 #[serde(rename_all = "camelCase")] 19 20 pub struct DeleteAccountOutput<'a> {}
+8 -21
crates/jacquard-api/src/chat_bsky/convo.rs
··· 112 112 PartialEq, 113 113 Eq, 114 114 jacquard_derive::IntoStatic, 115 - bon::Builder 115 + Default 116 116 )] 117 117 #[serde(rename_all = "camelCase")] 118 118 pub struct LogAcceptConvo<'a> { 119 119 #[serde(borrow)] 120 - #[builder(into)] 121 120 pub convo_id: jacquard_common::CowStr<'a>, 122 121 #[serde(borrow)] 123 - #[builder(into)] 124 122 pub rev: jacquard_common::CowStr<'a>, 125 123 } 126 124 ··· 177 175 PartialEq, 178 176 Eq, 179 177 jacquard_derive::IntoStatic, 180 - bon::Builder 178 + Default 181 179 )] 182 180 #[serde(rename_all = "camelCase")] 183 181 pub struct LogBeginConvo<'a> { 184 182 #[serde(borrow)] 185 - #[builder(into)] 186 183 pub convo_id: jacquard_common::CowStr<'a>, 187 184 #[serde(borrow)] 188 - #[builder(into)] 189 185 pub rev: jacquard_common::CowStr<'a>, 190 186 } 191 187 ··· 282 278 PartialEq, 283 279 Eq, 284 280 jacquard_derive::IntoStatic, 285 - bon::Builder 281 + Default 286 282 )] 287 283 #[serde(rename_all = "camelCase")] 288 284 pub struct LogLeaveConvo<'a> { 289 285 #[serde(borrow)] 290 - #[builder(into)] 291 286 pub convo_id: jacquard_common::CowStr<'a>, 292 287 #[serde(borrow)] 293 - #[builder(into)] 294 288 pub rev: jacquard_common::CowStr<'a>, 295 289 } 296 290 ··· 303 297 PartialEq, 304 298 Eq, 305 299 jacquard_derive::IntoStatic, 306 - bon::Builder 300 + Default 307 301 )] 308 302 #[serde(rename_all = "camelCase")] 309 303 pub struct LogMuteConvo<'a> { 310 304 #[serde(borrow)] 311 - #[builder(into)] 312 305 pub convo_id: jacquard_common::CowStr<'a>, 313 306 #[serde(borrow)] 314 - #[builder(into)] 315 307 pub rev: jacquard_common::CowStr<'a>, 316 308 } 317 309 ··· 410 402 PartialEq, 411 403 Eq, 412 404 jacquard_derive::IntoStatic, 413 - bon::Builder 405 + Default 414 406 )] 415 407 #[serde(rename_all = "camelCase")] 416 408 pub struct LogUnmuteConvo<'a> { 417 409 #[serde(borrow)] 418 - #[builder(into)] 419 410 pub convo_id: jacquard_common::CowStr<'a>, 420 411 #[serde(borrow)] 421 - #[builder(into)] 422 412 pub rev: jacquard_common::CowStr<'a>, 423 413 } 424 414 ··· 450 440 PartialEq, 451 441 Eq, 452 442 jacquard_derive::IntoStatic, 453 - bon::Builder 443 + Default 454 444 )] 455 445 #[serde(rename_all = "camelCase")] 456 446 pub struct MessageInput<'a> { 457 447 #[serde(skip_serializing_if = "std::option::Option::is_none")] 458 - #[builder(into)] 459 448 #[serde(borrow)] 460 - pub embed: Option<crate::app_bsky::embed::record::Record<'a>>, 449 + pub embed: std::option::Option<crate::app_bsky::embed::record::Record<'a>>, 461 450 /// Annotations of text (mentions, URLs, hashtags, etc) 462 451 #[serde(skip_serializing_if = "std::option::Option::is_none")] 463 - #[builder(into)] 464 452 #[serde(borrow)] 465 - pub facets: Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 453 + pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 466 454 #[serde(borrow)] 467 - #[builder(into)] 468 455 pub text: jacquard_common::CowStr<'a>, 469 456 } 470 457
+4 -12
crates/jacquard-api/src/chat_bsky/convo/accept_convo.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct AcceptConvo<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon] ··· 39 30 Clone, 40 31 PartialEq, 41 32 Eq, 42 - jacquard_derive::IntoStatic 33 + jacquard_derive::IntoStatic, 34 + Default 43 35 )] 44 36 #[serde(rename_all = "camelCase")] 45 37 pub struct AcceptConvoOutput<'a> {
+2 -13
crates/jacquard-api/src/chat_bsky/convo/add_reaction.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct AddReaction<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub message_id: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub value: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 #[jacquard_derive::lexicon]
+2 -12
crates/jacquard-api/src/chat_bsky/convo/delete_message_for_self.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteMessageForSelf<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub message_id: jacquard_common::CowStr<'a>, 28 - #[serde(flatten)] 29 - #[serde(borrow)] 30 - #[builder(default)] 31 - pub extra_data: ::std::collections::BTreeMap< 32 - ::jacquard_common::smol_str::SmolStr, 33 - ::jacquard_common::types::value::Data<'a>, 34 - >, 35 25 } 36 26 37 27 #[jacquard_derive::lexicon]
+4 -12
crates/jacquard-api/src/chat_bsky/convo/leave_convo.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct LeaveConvo<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon] ··· 39 30 Clone, 40 31 PartialEq, 41 32 Eq, 42 - jacquard_derive::IntoStatic 33 + jacquard_derive::IntoStatic, 34 + Default 43 35 )] 44 36 #[serde(rename_all = "camelCase")] 45 37 pub struct LeaveConvoOutput<'a> {
+2 -11
crates/jacquard-api/src/chat_bsky/convo/mute_convo.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct MuteConvo<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon]
+2 -13
crates/jacquard-api/src/chat_bsky/convo/remove_reaction.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct RemoveReaction<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub message_id: jacquard_common::CowStr<'a>, 28 25 #[serde(borrow)] 29 - #[builder(into)] 30 26 pub value: jacquard_common::CowStr<'a>, 31 - #[serde(flatten)] 32 - #[serde(borrow)] 33 - #[builder(default)] 34 - pub extra_data: ::std::collections::BTreeMap< 35 - ::jacquard_common::smol_str::SmolStr, 36 - ::jacquard_common::types::value::Data<'a>, 37 - >, 38 27 } 39 28 40 29 #[jacquard_derive::lexicon]
+2 -11
crates/jacquard-api/src/chat_bsky/convo/unmute_convo.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UnmuteConvo<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon]
+3 -12
crates/jacquard-api/src/chat_bsky/convo/update_all_read.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateAllRead<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub status: Option<jacquard_common::CowStr<'a>>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 23 + pub status: std::option::Option<jacquard_common::CowStr<'a>>, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon]
+3 -13
crates/jacquard-api/src/chat_bsky/convo/update_read.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateRead<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub convo_id: jacquard_common::CowStr<'a>, 25 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 - #[builder(into)] 27 24 #[serde(borrow)] 28 - pub message_id: Option<jacquard_common::CowStr<'a>>, 29 - #[serde(flatten)] 30 - #[serde(borrow)] 31 - #[builder(default)] 32 - pub extra_data: ::std::collections::BTreeMap< 33 - ::jacquard_common::smol_str::SmolStr, 34 - ::jacquard_common::types::value::Data<'a>, 35 - >, 25 + pub message_id: std::option::Option<jacquard_common::CowStr<'a>>, 36 26 } 37 27 38 28 #[jacquard_derive::lexicon]
+1 -3
crates/jacquard-api/src/com_atproto/admin.rs
··· 143 143 PartialEq, 144 144 Eq, 145 145 jacquard_derive::IntoStatic, 146 - bon::Builder 146 + Default 147 147 )] 148 148 #[serde(rename_all = "camelCase")] 149 149 pub struct ThreatSignature<'a> { 150 150 #[serde(borrow)] 151 - #[builder(into)] 152 151 pub property: jacquard_common::CowStr<'a>, 153 152 #[serde(borrow)] 154 - #[builder(into)] 155 153 pub value: jacquard_common::CowStr<'a>, 156 154 }
+4 -14
crates/jacquard-api/src/com_atproto/admin/disable_invite_codes.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DisableInviteCodes<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub accounts: Option<Vec<jacquard_common::CowStr<'a>>>, 23 + pub accounts: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 25 #[serde(borrow)] 29 - pub codes: Option<Vec<jacquard_common::CowStr<'a>>>, 30 - #[serde(flatten)] 31 - #[serde(borrow)] 32 - #[builder(default)] 33 - pub extra_data: ::std::collections::BTreeMap< 34 - ::jacquard_common::smol_str::SmolStr, 35 - ::jacquard_common::types::value::Data<'a>, 36 - >, 26 + pub codes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 37 27 } 38 28 39 29 ///Response type for
+8 -19
crates/jacquard-api/src/com_atproto/identity/sign_plc_operation.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct SignPlcOperation<'a> { 22 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 22 #[serde(borrow)] 25 - pub also_known_as: Option<Vec<jacquard_common::CowStr<'a>>>, 23 + pub also_known_as: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 25 #[serde(borrow)] 29 - pub rotation_keys: Option<Vec<jacquard_common::CowStr<'a>>>, 26 + pub rotation_keys: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 30 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 - #[builder(into)] 32 28 #[serde(borrow)] 33 - pub services: Option<jacquard_common::types::value::Data<'a>>, 29 + pub services: std::option::Option<jacquard_common::types::value::Data<'a>>, 34 30 /// A token received through com.atproto.identity.requestPlcOperationSignature 35 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 32 #[serde(borrow)] 38 - pub token: Option<jacquard_common::CowStr<'a>>, 33 + pub token: std::option::Option<jacquard_common::CowStr<'a>>, 39 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 - #[builder(into)] 41 35 #[serde(borrow)] 42 - pub verification_methods: Option<jacquard_common::types::value::Data<'a>>, 43 - #[serde(flatten)] 44 - #[serde(borrow)] 45 - #[builder(default)] 46 - pub extra_data: ::std::collections::BTreeMap< 47 - ::jacquard_common::smol_str::SmolStr, 48 - ::jacquard_common::types::value::Data<'a>, 36 + pub verification_methods: std::option::Option< 37 + jacquard_common::types::value::Data<'a>, 49 38 >, 50 39 } 51 40
+1 -2
crates/jacquard-api/src/com_atproto/label.rs
··· 253 253 PartialEq, 254 254 Eq, 255 255 jacquard_derive::IntoStatic, 256 - bon::Builder 256 + Default 257 257 )] 258 258 #[serde(rename_all = "camelCase")] 259 259 pub struct SelfLabel<'a> { 260 260 /// The short string name of the value or type of this label. 261 261 #[serde(borrow)] 262 - #[builder(into)] 263 262 pub val: jacquard_common::CowStr<'a>, 264 263 } 265 264
+2 -4
crates/jacquard-api/src/com_atproto/label/subscribe_labels.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Info<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub message: Option<jacquard_common::CowStr<'a>>, 23 + pub message: std::option::Option<jacquard_common::CowStr<'a>>, 25 24 #[serde(borrow)] 26 - #[builder(into)] 27 25 pub name: jacquard_common::CowStr<'a>, 28 26 } 29 27
+2 -4
crates/jacquard-api/src/com_atproto/moderation/create_report.rs
··· 145 145 PartialEq, 146 146 Eq, 147 147 jacquard_derive::IntoStatic, 148 - bon::Builder 148 + Default 149 149 )] 150 150 #[serde(rename_all = "camelCase")] 151 151 pub struct ModTool<'a> { 152 152 /// Additional arbitrary metadata about the source 153 153 #[serde(skip_serializing_if = "std::option::Option::is_none")] 154 - #[builder(into)] 155 154 #[serde(borrow)] 156 - pub meta: Option<jacquard_common::types::value::Data<'a>>, 155 + pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>, 157 156 /// Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome') 158 157 #[serde(borrow)] 159 - #[builder(into)] 160 158 pub name: jacquard_common::CowStr<'a>, 161 159 }
+3 -2
crates/jacquard-api/src/com_atproto/repo/apply_writes.rs
··· 88 88 PartialEq, 89 89 Eq, 90 90 jacquard_derive::IntoStatic, 91 - bon::Builder 91 + Default 92 92 )] 93 93 #[serde(rename_all = "camelCase")] 94 94 pub struct DeleteResult<'a> {} ··· 157 157 Clone, 158 158 PartialEq, 159 159 Eq, 160 - jacquard_derive::IntoStatic 160 + jacquard_derive::IntoStatic, 161 + Default 161 162 )] 162 163 #[serde(rename_all = "camelCase")] 163 164 pub struct ApplyWritesOutput<'a> {
+2 -1
crates/jacquard-api/src/com_atproto/repo/delete_record.rs
··· 57 57 Clone, 58 58 PartialEq, 59 59 Eq, 60 - jacquard_derive::IntoStatic 60 + jacquard_derive::IntoStatic, 61 + Default 61 62 )] 62 63 #[serde(rename_all = "camelCase")] 63 64 pub struct DeleteRecordOutput<'a> {
+2 -12
crates/jacquard-api/src/com_atproto/server/confirm_email.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct ConfirmEmail<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub email: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub token: jacquard_common::CowStr<'a>, 28 - #[serde(flatten)] 29 - #[serde(borrow)] 30 - #[builder(default)] 31 - pub extra_data: ::std::collections::BTreeMap< 32 - ::jacquard_common::smol_str::SmolStr, 33 - ::jacquard_common::types::value::Data<'a>, 34 - >, 35 25 } 36 26 37 27 #[jacquard_derive::open_union]
+3 -13
crates/jacquard-api/src/com_atproto/server/create_app_password.rs
··· 38 38 Clone, 39 39 PartialEq, 40 40 Eq, 41 - bon::Builder, 42 - jacquard_derive::IntoStatic 41 + jacquard_derive::IntoStatic, 42 + Default 43 43 )] 44 44 #[serde(rename_all = "camelCase")] 45 - #[builder(start_fn = new)] 46 45 pub struct CreateAppPassword<'a> { 47 46 /// A short name for the App Password, to help distinguish them. 48 47 #[serde(borrow)] 49 - #[builder(into)] 50 48 pub name: jacquard_common::CowStr<'a>, 51 49 /// If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients. 52 50 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 - #[builder(into)] 54 - pub privileged: Option<bool>, 55 - #[serde(flatten)] 56 - #[serde(borrow)] 57 - #[builder(default)] 58 - pub extra_data: ::std::collections::BTreeMap< 59 - ::jacquard_common::smol_str::SmolStr, 60 - ::jacquard_common::types::value::Data<'a>, 61 - >, 51 + pub privileged: std::option::Option<bool>, 62 52 } 63 53 64 54 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/com_atproto/server/create_invite_code.rs
··· 41 41 Clone, 42 42 PartialEq, 43 43 Eq, 44 - jacquard_derive::IntoStatic 44 + jacquard_derive::IntoStatic, 45 + Default 45 46 )] 46 47 #[serde(rename_all = "camelCase")] 47 48 pub struct CreateInviteCodeOutput<'a> {
+4 -16
crates/jacquard-api/src/com_atproto/server/create_session.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateSession<'a> { 22 21 /// When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub allow_takendown: Option<bool>, 23 + pub allow_takendown: std::option::Option<bool>, 26 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 25 #[serde(borrow)] 29 - pub auth_factor_token: Option<jacquard_common::CowStr<'a>>, 26 + pub auth_factor_token: std::option::Option<jacquard_common::CowStr<'a>>, 30 27 /// Handle or other identifier supported by the server for the authenticating user. 31 28 #[serde(borrow)] 32 - #[builder(into)] 33 29 pub identifier: jacquard_common::CowStr<'a>, 34 30 #[serde(borrow)] 35 - #[builder(into)] 36 31 pub password: jacquard_common::CowStr<'a>, 37 - #[serde(flatten)] 38 - #[serde(borrow)] 39 - #[builder(default)] 40 - pub extra_data: ::std::collections::BTreeMap< 41 - ::jacquard_common::smol_str::SmolStr, 42 - ::jacquard_common::types::value::Data<'a>, 43 - >, 44 32 } 45 33 46 34 #[jacquard_derive::lexicon]
+3 -12
crates/jacquard-api/src/com_atproto/server/deactivate_account.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeactivateAccount<'a> { 22 21 /// A recommendation to server as to how long they should hold onto the deactivated account before deleting. 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub delete_after: Option<jacquard_common::types::string::Datetime>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 23 + pub delete_after: std::option::Option<jacquard_common::types::string::Datetime>, 33 24 } 34 25 35 26 ///Response type for
+5 -8
crates/jacquard-api/src/com_atproto/server/describe_server.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Contact<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub email: Option<jacquard_common::CowStr<'a>>, 23 + pub email: std::option::Option<jacquard_common::CowStr<'a>>, 25 24 } 26 25 27 26 #[jacquard_derive::lexicon] ··· 33 32 PartialEq, 34 33 Eq, 35 34 jacquard_derive::IntoStatic, 36 - bon::Builder 35 + Default 37 36 )] 38 37 #[serde(rename_all = "camelCase")] 39 38 pub struct Links<'a> { 40 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 41 - #[builder(into)] 42 40 #[serde(borrow)] 43 - pub privacy_policy: Option<jacquard_common::types::string::Uri<'a>>, 41 + pub privacy_policy: std::option::Option<jacquard_common::types::string::Uri<'a>>, 44 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 45 - #[builder(into)] 46 43 #[serde(borrow)] 47 - pub terms_of_service: Option<jacquard_common::types::string::Uri<'a>>, 44 + pub terms_of_service: std::option::Option<jacquard_common::types::string::Uri<'a>>, 48 45 } 49 46 50 47 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/com_atproto/server/get_service_auth.rs
··· 35 35 Clone, 36 36 PartialEq, 37 37 Eq, 38 - jacquard_derive::IntoStatic 38 + jacquard_derive::IntoStatic, 39 + Default 39 40 )] 40 41 #[serde(rename_all = "camelCase")] 41 42 pub struct GetServiceAuthOutput<'a> {
+2 -11
crates/jacquard-api/src/com_atproto/server/request_password_reset.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct RequestPasswordReset<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub email: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 ///Response type for
+5 -13
crates/jacquard-api/src/com_atproto/server/reserve_signing_key.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct ReserveSigningKey<'a> { 22 21 /// The DID to reserve a key for. 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - #[serde(borrow)] 26 - pub did: Option<jacquard_common::types::string::Did<'a>>, 27 - #[serde(flatten)] 28 23 #[serde(borrow)] 29 - #[builder(default)] 30 - pub extra_data: ::std::collections::BTreeMap< 31 - ::jacquard_common::smol_str::SmolStr, 32 - ::jacquard_common::types::value::Data<'a>, 33 - >, 24 + pub did: std::option::Option<jacquard_common::types::string::Did<'a>>, 34 25 } 35 26 36 27 #[jacquard_derive::lexicon] ··· 41 32 Clone, 42 33 PartialEq, 43 34 Eq, 44 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 45 37 )] 46 38 #[serde(rename_all = "camelCase")] 47 39 pub struct ReserveSigningKeyOutput<'a> {
+2 -12
crates/jacquard-api/src/com_atproto/server/reset_password.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct ResetPassword<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub password: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub token: jacquard_common::CowStr<'a>, 28 - #[serde(flatten)] 29 - #[serde(borrow)] 30 - #[builder(default)] 31 - pub extra_data: ::std::collections::BTreeMap< 32 - ::jacquard_common::smol_str::SmolStr, 33 - ::jacquard_common::types::value::Data<'a>, 34 - >, 35 25 } 36 26 37 27 #[jacquard_derive::open_union]
+2 -11
crates/jacquard-api/src/com_atproto/server/revoke_app_password.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct RevokeAppPassword<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub name: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 ///Response type for
+4 -15
crates/jacquard-api/src/com_atproto/server/update_email.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateEmail<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub email: jacquard_common::CowStr<'a>, 25 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 - #[builder(into)] 27 - pub email_auth_factor: Option<bool>, 24 + pub email_auth_factor: std::option::Option<bool>, 28 25 /// Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed. 29 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 - #[builder(into)] 31 27 #[serde(borrow)] 32 - pub token: Option<jacquard_common::CowStr<'a>>, 33 - #[serde(flatten)] 34 - #[serde(borrow)] 35 - #[builder(default)] 36 - pub extra_data: ::std::collections::BTreeMap< 37 - ::jacquard_common::smol_str::SmolStr, 38 - ::jacquard_common::types::value::Data<'a>, 39 - >, 28 + pub token: std::option::Option<jacquard_common::CowStr<'a>>, 40 29 } 41 30 42 31 #[jacquard_derive::open_union]
+2 -1
crates/jacquard-api/src/com_atproto/sync/get_host_status.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct GetHostStatusOutput<'a> {
+4 -8
crates/jacquard-api/src/com_atproto/sync/list_hosts.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Host<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 - pub account_count: Option<i64>, 22 + pub account_count: std::option::Option<i64>, 24 23 /// hostname of server; not a URL (no scheme) 25 24 #[serde(borrow)] 26 - #[builder(into)] 27 25 pub hostname: jacquard_common::CowStr<'a>, 28 26 /// Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor). 29 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 - #[builder(into)] 31 - pub seq: Option<i64>, 28 + pub seq: std::option::Option<i64>, 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 30 #[serde(borrow)] 35 - pub status: Option<crate::com_atproto::sync::HostStatus<'a>>, 31 + pub status: std::option::Option<crate::com_atproto::sync::HostStatus<'a>>, 36 32 } 37 33 38 34 #[derive(
+2 -11
crates/jacquard-api/src/com_atproto/sync/notify_of_update.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct NotifyOfUpdate<'a> { 22 21 /// Hostname of the current service (usually a PDS) that is notifying of update. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub hostname: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 ///Response type for
+2 -11
crates/jacquard-api/src/com_atproto/sync/request_crawl.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct RequestCrawl<'a> { 22 21 /// Hostname of the current service (eg, PDS) that is requesting to be crawled. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub hostname: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::open_union]
+2 -4
crates/jacquard-api/src/com_atproto/sync/subscribe_repos.rs
··· 111 111 PartialEq, 112 112 Eq, 113 113 jacquard_derive::IntoStatic, 114 - bon::Builder 114 + Default 115 115 )] 116 116 #[serde(rename_all = "camelCase")] 117 117 pub struct Info<'a> { 118 118 #[serde(skip_serializing_if = "std::option::Option::is_none")] 119 - #[builder(into)] 120 119 #[serde(borrow)] 121 - pub message: Option<jacquard_common::CowStr<'a>>, 120 + pub message: std::option::Option<jacquard_common::CowStr<'a>>, 122 121 #[serde(borrow)] 123 - #[builder(into)] 124 122 pub name: jacquard_common::CowStr<'a>, 125 123 } 126 124
+4 -12
crates/jacquard-api/src/com_atproto/temp/add_reserved_handle.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct AddReservedHandle<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub handle: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon] ··· 39 30 Clone, 40 31 PartialEq, 41 32 Eq, 42 - jacquard_derive::IntoStatic 33 + jacquard_derive::IntoStatic, 34 + Default 43 35 )] 44 36 #[serde(rename_all = "camelCase")] 45 37 pub struct AddReservedHandleOutput<'a> {}
+1 -1
crates/jacquard-api/src/com_atproto/temp/check_handle_availability.rs
··· 141 141 PartialEq, 142 142 Eq, 143 143 jacquard_derive::IntoStatic, 144 - bon::Builder 144 + Default 145 145 )] 146 146 #[serde(rename_all = "camelCase")] 147 147 pub struct ResultAvailable<'a> {}
+2 -1
crates/jacquard-api/src/com_atproto/temp/dereference_scope.rs
··· 31 31 Clone, 32 32 PartialEq, 33 33 Eq, 34 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 35 36 )] 36 37 #[serde(rename_all = "camelCase")] 37 38 pub struct DereferenceScopeOutput<'a> {
+2 -11
crates/jacquard-api/src/com_atproto/temp/request_phone_verification.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct RequestPhoneVerification<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub phone_number: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 ///Response type for
+2 -3
crates/jacquard-api/src/com_shinolabs/pinksea/oekaki.rs
··· 35 35 PartialEq, 36 36 Eq, 37 37 jacquard_derive::IntoStatic, 38 - bon::Builder 38 + Default 39 39 )] 40 40 #[serde(rename_all = "camelCase")] 41 41 pub struct ImageLink<'a> { 42 42 /// Alt text description of the image, for accessibility. 43 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 - #[builder(into)] 45 44 #[serde(borrow)] 46 - pub alt: Option<jacquard_common::CowStr<'a>>, 45 + pub alt: std::option::Option<jacquard_common::CowStr<'a>>, 47 46 } 48 47 49 48 /// An oekaki post.
+2 -4
crates/jacquard-api/src/com_whtwnd/blog.rs
··· 41 41 PartialEq, 42 42 Eq, 43 43 jacquard_derive::IntoStatic, 44 - bon::Builder 44 + Default 45 45 )] 46 46 #[serde(rename_all = "camelCase")] 47 47 pub struct BlogEntry<'a> { 48 48 #[serde(borrow)] 49 - #[builder(into)] 50 49 pub content: jacquard_common::CowStr<'a>, 51 50 #[serde(skip_serializing_if = "std::option::Option::is_none")] 52 - #[builder(into)] 53 - pub created_at: Option<jacquard_common::types::string::Datetime>, 51 + pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 54 52 } 55 53 56 54 #[jacquard_derive::lexicon]
+2 -1
crates/jacquard-api/src/com_whtwnd/blog/notify_of_new_entry.rs
··· 38 38 Clone, 39 39 PartialEq, 40 40 Eq, 41 - jacquard_derive::IntoStatic 41 + jacquard_derive::IntoStatic, 42 + Default 42 43 )] 43 44 #[serde(rename_all = "camelCase")] 44 45 pub struct NotifyOfNewEntryOutput<'a> {}
+6 -12
crates/jacquard-api/src/community_lexicon/location/address.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Address<'a> { 22 22 /// The ISO 3166 country code. Preferably the 2-letter code. 23 23 #[serde(borrow)] 24 - #[builder(into)] 25 24 pub country: jacquard_common::CowStr<'a>, 26 25 /// The locality of the region. For example, a city in the USA. 27 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 27 #[serde(borrow)] 30 - pub locality: Option<jacquard_common::CowStr<'a>>, 28 + pub locality: std::option::Option<jacquard_common::CowStr<'a>>, 31 29 /// The name of the location. 32 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 31 #[serde(borrow)] 35 - pub name: Option<jacquard_common::CowStr<'a>>, 32 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 36 33 /// The postal code of the location. 37 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 - #[builder(into)] 39 35 #[serde(borrow)] 40 - pub postal_code: Option<jacquard_common::CowStr<'a>>, 36 + pub postal_code: std::option::Option<jacquard_common::CowStr<'a>>, 41 37 /// The administrative region of the country. For example, a state in the USA. 42 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 39 #[serde(borrow)] 45 - pub region: Option<jacquard_common::CowStr<'a>>, 40 + pub region: std::option::Option<jacquard_common::CowStr<'a>>, 46 41 /// The street address. 47 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 - #[builder(into)] 49 43 #[serde(borrow)] 50 - pub street: Option<jacquard_common::CowStr<'a>>, 44 + pub street: std::option::Option<jacquard_common::CowStr<'a>>, 51 45 }
+4 -8
crates/jacquard-api/src/community_lexicon/location/fsq.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Fsq<'a> { 22 22 /// The unique identifier of a Foursquare POI. 23 23 #[serde(borrow)] 24 - #[builder(into)] 25 24 pub fsq_place_id: jacquard_common::CowStr<'a>, 26 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 - #[builder(into)] 28 26 #[serde(borrow)] 29 - pub latitude: Option<jacquard_common::CowStr<'a>>, 27 + pub latitude: std::option::Option<jacquard_common::CowStr<'a>>, 30 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 - #[builder(into)] 32 29 #[serde(borrow)] 33 - pub longitude: Option<jacquard_common::CowStr<'a>>, 30 + pub longitude: std::option::Option<jacquard_common::CowStr<'a>>, 34 31 /// The name of the location. 35 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 33 #[serde(borrow)] 38 - pub name: Option<jacquard_common::CowStr<'a>>, 34 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 39 35 }
+3 -7
crates/jacquard-api/src/community_lexicon/location/geo.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Geo<'a> { 22 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 - #[builder(into)] 24 23 #[serde(borrow)] 25 - pub altitude: Option<jacquard_common::CowStr<'a>>, 24 + pub altitude: std::option::Option<jacquard_common::CowStr<'a>>, 26 25 #[serde(borrow)] 27 - #[builder(into)] 28 26 pub latitude: jacquard_common::CowStr<'a>, 29 27 #[serde(borrow)] 30 - #[builder(into)] 31 28 pub longitude: jacquard_common::CowStr<'a>, 32 29 /// The name of the location. 33 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 - #[builder(into)] 35 31 #[serde(borrow)] 36 - pub name: Option<jacquard_common::CowStr<'a>>, 32 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 37 33 }
+2 -4
crates/jacquard-api/src/community_lexicon/location/hthree.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Hthree<'a> { 22 22 /// The name of the location. 23 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 24 #[serde(borrow)] 26 - pub name: Option<jacquard_common::CowStr<'a>>, 25 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 27 26 /// The h3 encoded location. 28 27 #[serde(borrow)] 29 - #[builder(into)] 30 28 pub value: jacquard_common::CowStr<'a>, 31 29 }
+2 -1
crates/jacquard-api/src/events_smokesignal/automation/invoke_webhook.rs
··· 43 43 Clone, 44 44 PartialEq, 45 45 Eq, 46 - jacquard_derive::IntoStatic 46 + jacquard_derive::IntoStatic, 47 + Default 47 48 )] 48 49 #[serde(rename_all = "camelCase")] 49 50 pub struct InvokeWebhookOutput<'a> {}
+2 -1
crates/jacquard-api/src/garden_lexicon/ngerakines/helloworld/hello.rs
··· 33 33 Clone, 34 34 PartialEq, 35 35 Eq, 36 - jacquard_derive::IntoStatic 36 + jacquard_derive::IntoStatic, 37 + Default 37 38 )] 38 39 #[serde(rename_all = "camelCase")] 39 40 pub struct HelloOutput<'a> {
+1 -3
crates/jacquard-api/src/my_skylights.rs
··· 18 18 PartialEq, 19 19 Eq, 20 20 jacquard_derive::IntoStatic, 21 - bon::Builder 21 + Default 22 22 )] 23 23 #[serde(rename_all = "camelCase")] 24 24 pub struct Item<'a> { 25 25 #[serde(borrow)] 26 - #[builder(into)] 27 26 pub r#ref: jacquard_common::CowStr<'a>, 28 27 #[serde(borrow)] 29 - #[builder(into)] 30 28 pub value: jacquard_common::CowStr<'a>, 31 29 }
+4 -8
crates/jacquard-api/src/my_skylights/list.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct List<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 - pub created_at: Option<jacquard_common::types::string::Datetime>, 22 + pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 24 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 25 - #[builder(into)] 26 24 #[serde(borrow)] 27 - pub description: Option<jacquard_common::CowStr<'a>>, 25 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 28 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 27 #[serde(borrow)] 31 - pub sort_by: Option<jacquard_common::CowStr<'a>>, 28 + pub sort_by: std::option::Option<jacquard_common::CowStr<'a>>, 32 29 #[serde(borrow)] 33 - #[builder(into)] 34 30 pub title: jacquard_common::CowStr<'a>, 35 31 }
+2 -3
crates/jacquard-api/src/my_skylights/list_item.rs
··· 32 32 PartialEq, 33 33 Eq, 34 34 jacquard_derive::IntoStatic, 35 - bon::Builder 35 + Default 36 36 )] 37 37 #[serde(rename_all = "camelCase")] 38 38 pub struct Builtin<'a> { 39 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 - #[builder(into)] 41 40 #[serde(borrow)] 42 - pub r#type: Option<BuiltinType<'a>>, 41 + pub r#type: std::option::Option<BuiltinType<'a>>, 43 42 } 44 43 45 44 #[jacquard_derive::open_union]
+8 -14
crates/jacquard-api/src/net_anisota/beta/game/collection.rs
··· 148 148 PartialEq, 149 149 Eq, 150 150 jacquard_derive::IntoStatic, 151 - bon::Builder 151 + Default 152 152 )] 153 153 #[serde(rename_all = "camelCase")] 154 154 pub struct SourceDetails<'a> { 155 155 /// Number of attempts before successful capture 156 156 #[serde(skip_serializing_if = "std::option::Option::is_none")] 157 - #[builder(into)] 158 - pub attempts: Option<i64>, 157 + pub attempts: std::option::Option<i64>, 159 158 /// Probability used when catching this specimen (decimal string, e.g. '0.75') 160 159 #[serde(skip_serializing_if = "std::option::Option::is_none")] 161 - #[builder(into)] 162 160 #[serde(borrow)] 163 - pub catch_probability: Option<jacquard_common::CowStr<'a>>, 161 + pub catch_probability: std::option::Option<jacquard_common::CowStr<'a>>, 164 162 /// URI of the game card that provided this specimen 165 163 #[serde(skip_serializing_if = "std::option::Option::is_none")] 166 - #[builder(into)] 167 164 #[serde(borrow)] 168 - pub game_card_uri: Option<jacquard_common::CowStr<'a>>, 165 + pub game_card_uri: std::option::Option<jacquard_common::CowStr<'a>>, 169 166 /// Location where specimen was found or observed 170 167 #[serde(skip_serializing_if = "std::option::Option::is_none")] 171 - #[builder(into)] 172 168 #[serde(borrow)] 173 - pub location: Option<jacquard_common::CowStr<'a>>, 169 + pub location: std::option::Option<jacquard_common::CowStr<'a>>, 174 170 } 175 171 176 172 /// Complete specimen information ··· 183 179 PartialEq, 184 180 Eq, 185 181 jacquard_derive::IntoStatic, 186 - bon::Builder 182 + Default 187 183 )] 188 184 #[serde(rename_all = "camelCase")] 189 185 pub struct SpecimenData<'a> { 190 186 /// Scientific authorship of the species 191 187 #[serde(skip_serializing_if = "std::option::Option::is_none")] 192 - #[builder(into)] 193 188 #[serde(borrow)] 194 - pub authorship: Option<jacquard_common::CowStr<'a>>, 189 + pub authorship: std::option::Option<jacquard_common::CowStr<'a>>, 195 190 /// Detailed description of the specimen 196 191 #[serde(skip_serializing_if = "std::option::Option::is_none")] 197 - #[builder(into)] 198 192 #[serde(borrow)] 199 - pub description: Option<jacquard_common::CowStr<'a>>, 193 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 200 194 }
+4 -7
crates/jacquard-api/src/net_anisota/beta/game/inventory.rs
··· 135 135 PartialEq, 136 136 Eq, 137 137 jacquard_derive::IntoStatic, 138 - bon::Builder 138 + Default 139 139 )] 140 140 #[serde(rename_all = "camelCase")] 141 141 pub struct SourceDetails<'a> { 142 142 /// URI of the game card that provided this item 143 143 #[serde(skip_serializing_if = "std::option::Option::is_none")] 144 - #[builder(into)] 145 144 #[serde(borrow)] 146 - pub game_card_uri: Option<jacquard_common::CowStr<'a>>, 145 + pub game_card_uri: std::option::Option<jacquard_common::CowStr<'a>>, 147 146 /// ID of the quest that rewarded this item 148 147 #[serde(skip_serializing_if = "std::option::Option::is_none")] 149 - #[builder(into)] 150 148 #[serde(borrow)] 151 - pub quest_id: Option<jacquard_common::CowStr<'a>>, 149 + pub quest_id: std::option::Option<jacquard_common::CowStr<'a>>, 152 150 /// Daily reward streak when item was acquired 153 151 #[serde(skip_serializing_if = "std::option::Option::is_none")] 154 - #[builder(into)] 155 - pub reward_streak: Option<i64>, 152 + pub reward_streak: std::option::Option<i64>, 156 153 }
+45 -75
crates/jacquard-api/src/net_anisota/beta/game/log.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct CollectionData<'a> { 22 22 /// Catch probability for specimens (decimal string between 0.0 and 1.0) 23 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 24 #[serde(borrow)] 26 - pub catch_probability: Option<jacquard_common::CowStr<'a>>, 25 + pub catch_probability: std::option::Option<jacquard_common::CowStr<'a>>, 27 26 /// URI of the created inventory record 28 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 28 #[serde(borrow)] 31 - pub inventory_record_uri: Option<jacquard_common::CowStr<'a>>, 29 + pub inventory_record_uri: std::option::Option<jacquard_common::CowStr<'a>>, 32 30 /// How the item was obtained 33 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 - #[builder(into)] 35 32 #[serde(borrow)] 36 - pub method: Option<jacquard_common::CowStr<'a>>, 33 + pub method: std::option::Option<jacquard_common::CowStr<'a>>, 37 34 /// URI of the created specimen record 38 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 39 - #[builder(into)] 40 36 #[serde(borrow)] 41 - pub specimen_record_uri: Option<jacquard_common::CowStr<'a>>, 37 + pub specimen_record_uri: std::option::Option<jacquard_common::CowStr<'a>>, 42 38 /// Whether collection was successful 43 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 - #[builder(into)] 45 - pub success: Option<bool>, 40 + pub success: std::option::Option<bool>, 46 41 /// Milliseconds between card generation and collection 47 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 - #[builder(into)] 49 - pub time_since_generation: Option<i64>, 43 + pub time_since_generation: std::option::Option<i64>, 50 44 /// Milliseconds between card being viewed and collected 51 45 #[serde(skip_serializing_if = "std::option::Option::is_none")] 52 - #[builder(into)] 53 - pub time_since_viewed: Option<i64>, 46 + pub time_since_viewed: std::option::Option<i64>, 54 47 } 55 48 56 49 /// Details about daily rewards claim ··· 63 56 PartialEq, 64 57 Eq, 65 58 jacquard_derive::IntoStatic, 66 - bon::Builder 59 + Default 67 60 )] 68 61 #[serde(rename_all = "camelCase")] 69 62 pub struct DailyRewardsData<'a> { 70 63 #[serde(skip_serializing_if = "std::option::Option::is_none")] 71 - #[builder(into)] 72 64 #[serde(borrow)] 73 - pub reward_items: Option<Vec<crate::net_anisota::beta::game::log::RewardItem<'a>>>, 65 + pub reward_items: std::option::Option< 66 + Vec<crate::net_anisota::beta::game::log::RewardItem<'a>>, 67 + >, 74 68 /// Number of rewards claimed 75 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 76 - #[builder(into)] 77 - pub rewards_count: Option<i64>, 70 + pub rewards_count: std::option::Option<i64>, 78 71 /// Current daily reward streak 79 72 #[serde(skip_serializing_if = "std::option::Option::is_none")] 80 - #[builder(into)] 81 - pub streak: Option<i64>, 73 + pub streak: std::option::Option<i64>, 82 74 /// Milliseconds since last claim 83 75 #[serde(skip_serializing_if = "std::option::Option::is_none")] 84 - #[builder(into)] 85 - pub time_since_last_claim: Option<i64>, 76 + pub time_since_last_claim: std::option::Option<i64>, 86 77 } 87 78 88 79 /// Context about the feed when event occurred ··· 95 86 PartialEq, 96 87 Eq, 97 88 jacquard_derive::IntoStatic, 98 - bon::Builder 89 + Default 99 90 )] 100 91 #[serde(rename_all = "camelCase")] 101 92 pub struct FeedContext<'a> { 102 93 /// URI of the feed being viewed 103 94 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 - #[builder(into)] 105 95 #[serde(borrow)] 106 - pub feed_uri: Option<jacquard_common::CowStr<'a>>, 96 + pub feed_uri: std::option::Option<jacquard_common::CowStr<'a>>, 107 97 /// Number of game cards injected 108 98 #[serde(skip_serializing_if = "std::option::Option::is_none")] 109 - #[builder(into)] 110 - pub game_card_count: Option<i64>, 99 + pub game_card_count: std::option::Option<i64>, 111 100 /// Number of posts in the feed 112 101 #[serde(skip_serializing_if = "std::option::Option::is_none")] 113 - #[builder(into)] 114 - pub post_count: Option<i64>, 102 + pub post_count: std::option::Option<i64>, 115 103 /// User's scroll position or card index 116 104 #[serde(skip_serializing_if = "std::option::Option::is_none")] 117 - #[builder(into)] 118 - pub scroll_position: Option<i64>, 105 + pub scroll_position: std::option::Option<i64>, 119 106 } 120 107 121 108 /// Details about game cards generated or interacted with ··· 128 115 PartialEq, 129 116 Eq, 130 117 jacquard_derive::IntoStatic, 131 - bon::Builder 118 + Default 132 119 )] 133 120 #[serde(rename_all = "camelCase")] 134 121 pub struct GameCardData<'a> { 135 122 /// Type of game card 136 123 #[serde(skip_serializing_if = "std::option::Option::is_none")] 137 - #[builder(into)] 138 124 #[serde(borrow)] 139 - pub card_type: Option<jacquard_common::CowStr<'a>>, 125 + pub card_type: std::option::Option<jacquard_common::CowStr<'a>>, 140 126 /// Unique identifier for the game card 141 127 #[serde(skip_serializing_if = "std::option::Option::is_none")] 142 - #[builder(into)] 143 128 #[serde(borrow)] 144 - pub card_uri: Option<jacquard_common::CowStr<'a>>, 129 + pub card_uri: std::option::Option<jacquard_common::CowStr<'a>>, 145 130 /// Random seed used for generation (for verification) 146 131 #[serde(skip_serializing_if = "std::option::Option::is_none")] 147 - #[builder(into)] 148 132 #[serde(borrow)] 149 - pub generation_seed: Option<jacquard_common::CowStr<'a>>, 133 + pub generation_seed: std::option::Option<jacquard_common::CowStr<'a>>, 150 134 /// Position where card was injected in feed 151 135 #[serde(skip_serializing_if = "std::option::Option::is_none")] 152 - #[builder(into)] 153 - pub injection_position: Option<i64>, 136 + pub injection_position: std::option::Option<i64>, 154 137 /// ID of the item/specimen 155 138 #[serde(skip_serializing_if = "std::option::Option::is_none")] 156 - #[builder(into)] 157 139 #[serde(borrow)] 158 - pub item_id: Option<jacquard_common::CowStr<'a>>, 140 + pub item_id: std::option::Option<jacquard_common::CowStr<'a>>, 159 141 /// Quantity of items 160 142 #[serde(skip_serializing_if = "std::option::Option::is_none")] 161 - #[builder(into)] 162 - pub quantity: Option<i64>, 143 + pub quantity: std::option::Option<i64>, 163 144 /// Rarity of the item/specimen 164 145 #[serde(skip_serializing_if = "std::option::Option::is_none")] 165 - #[builder(into)] 166 146 #[serde(borrow)] 167 - pub rarity: Option<jacquard_common::CowStr<'a>>, 147 + pub rarity: std::option::Option<jacquard_common::CowStr<'a>>, 168 148 } 169 149 170 150 /// Details about item usage ··· 177 157 PartialEq, 178 158 Eq, 179 159 jacquard_derive::IntoStatic, 180 - bon::Builder 160 + Default 181 161 )] 182 162 #[serde(rename_all = "camelCase")] 183 163 pub struct ItemUsageData<'a> { 184 164 /// Effect that was applied 185 165 #[serde(skip_serializing_if = "std::option::Option::is_none")] 186 - #[builder(into)] 187 166 #[serde(borrow)] 188 - pub effect_applied: Option<jacquard_common::CowStr<'a>>, 167 + pub effect_applied: std::option::Option<jacquard_common::CowStr<'a>>, 189 168 /// URI of the modified inventory record 190 169 #[serde(skip_serializing_if = "std::option::Option::is_none")] 191 - #[builder(into)] 192 170 #[serde(borrow)] 193 - pub inventory_record_uri: Option<jacquard_common::CowStr<'a>>, 171 + pub inventory_record_uri: std::option::Option<jacquard_common::CowStr<'a>>, 194 172 /// ID of the item used 195 173 #[serde(skip_serializing_if = "std::option::Option::is_none")] 196 - #[builder(into)] 197 174 #[serde(borrow)] 198 - pub item_id: Option<jacquard_common::CowStr<'a>>, 175 + pub item_id: std::option::Option<jacquard_common::CowStr<'a>>, 199 176 /// Quantity of the item used 200 177 #[serde(skip_serializing_if = "std::option::Option::is_none")] 201 - #[builder(into)] 202 - pub quantity_used: Option<i64>, 178 + pub quantity_used: std::option::Option<i64>, 203 179 /// Remaining quantity after use 204 180 #[serde(skip_serializing_if = "std::option::Option::is_none")] 205 - #[builder(into)] 206 - pub remaining_quantity: Option<i64>, 181 + pub remaining_quantity: std::option::Option<i64>, 207 182 } 208 183 209 184 /// A log record for tracking game events and user actions for provenance and anti-bot analysis ··· 334 309 PartialEq, 335 310 Eq, 336 311 jacquard_derive::IntoStatic, 337 - bon::Builder 312 + Default 338 313 )] 339 314 #[serde(rename_all = "camelCase")] 340 315 pub struct Metadata<'a> { 341 316 /// Version of the client application 342 317 #[serde(skip_serializing_if = "std::option::Option::is_none")] 343 - #[builder(into)] 344 318 #[serde(borrow)] 345 - pub client_version: Option<jacquard_common::CowStr<'a>>, 319 + pub client_version: std::option::Option<jacquard_common::CowStr<'a>>, 346 320 /// Network latency in milliseconds 347 321 #[serde(skip_serializing_if = "std::option::Option::is_none")] 348 - #[builder(into)] 349 - pub network_latency: Option<i64>, 322 + pub network_latency: std::option::Option<i64>, 350 323 /// Performance timing data 351 324 #[serde(skip_serializing_if = "std::option::Option::is_none")] 352 - #[builder(into)] 353 325 #[serde(borrow)] 354 - pub performance_timings: Option<jacquard_common::types::value::Data<'a>>, 326 + pub performance_timings: std::option::Option< 327 + jacquard_common::types::value::Data<'a>, 328 + >, 355 329 /// Platform (web, mobile, etc.) 356 330 #[serde(skip_serializing_if = "std::option::Option::is_none")] 357 - #[builder(into)] 358 331 #[serde(borrow)] 359 - pub platform: Option<jacquard_common::CowStr<'a>>, 332 + pub platform: std::option::Option<jacquard_common::CowStr<'a>>, 360 333 } 361 334 362 335 /// Item received as a reward ··· 369 342 PartialEq, 370 343 Eq, 371 344 jacquard_derive::IntoStatic, 372 - bon::Builder 345 + Default 373 346 )] 374 347 #[serde(rename_all = "camelCase")] 375 348 pub struct RewardItem<'a> { 376 349 #[serde(skip_serializing_if = "std::option::Option::is_none")] 377 - #[builder(into)] 378 350 #[serde(borrow)] 379 - pub item_id: Option<jacquard_common::CowStr<'a>>, 351 + pub item_id: std::option::Option<jacquard_common::CowStr<'a>>, 380 352 #[serde(skip_serializing_if = "std::option::Option::is_none")] 381 - #[builder(into)] 382 - pub quantity: Option<i64>, 353 + pub quantity: std::option::Option<i64>, 383 354 #[serde(skip_serializing_if = "std::option::Option::is_none")] 384 - #[builder(into)] 385 355 #[serde(borrow)] 386 - pub rarity: Option<jacquard_common::CowStr<'a>>, 356 + pub rarity: std::option::Option<jacquard_common::CowStr<'a>>, 387 357 }
+8 -14
crates/jacquard-api/src/net_anisota/beta/game/pack.rs
··· 96 96 PartialEq, 97 97 Eq, 98 98 jacquard_derive::IntoStatic, 99 - bon::Builder 99 + Default 100 100 )] 101 101 #[serde(rename_all = "camelCase")] 102 102 pub struct PackHistoryEntry<'a> { 103 103 /// Items received from this pack 104 104 #[serde(skip_serializing_if = "std::option::Option::is_none")] 105 - #[builder(into)] 106 105 #[serde(borrow)] 107 - pub items_received: Option< 106 + pub items_received: std::option::Option< 108 107 Vec<crate::net_anisota::beta::game::pack::ReceivedItem<'a>>, 109 108 >, 110 109 /// When this pack was opened 111 110 #[serde(skip_serializing_if = "std::option::Option::is_none")] 112 - #[builder(into)] 113 - pub open_time: Option<jacquard_common::types::string::Datetime>, 111 + pub open_time: std::option::Option<jacquard_common::types::string::Datetime>, 114 112 /// Streak count at time of opening 115 113 #[serde(skip_serializing_if = "std::option::Option::is_none")] 116 - #[builder(into)] 117 - pub streak_count: Option<i64>, 114 + pub streak_count: std::option::Option<i64>, 118 115 } 119 116 120 117 /// An item received from a pack opening ··· 127 124 PartialEq, 128 125 Eq, 129 126 jacquard_derive::IntoStatic, 130 - bon::Builder 127 + Default 131 128 )] 132 129 #[serde(rename_all = "camelCase")] 133 130 pub struct ReceivedItem<'a> { 134 131 /// ID of the item received 135 132 #[serde(skip_serializing_if = "std::option::Option::is_none")] 136 - #[builder(into)] 137 133 #[serde(borrow)] 138 - pub item_id: Option<jacquard_common::CowStr<'a>>, 134 + pub item_id: std::option::Option<jacquard_common::CowStr<'a>>, 139 135 /// Quantity received 140 136 #[serde(skip_serializing_if = "std::option::Option::is_none")] 141 - #[builder(into)] 142 - pub quantity: Option<i64>, 137 + pub quantity: std::option::Option<i64>, 143 138 /// Rarity of the item 144 139 #[serde(skip_serializing_if = "std::option::Option::is_none")] 145 - #[builder(into)] 146 140 #[serde(borrow)] 147 - pub rarity: Option<jacquard_common::CowStr<'a>>, 141 + pub rarity: std::option::Option<jacquard_common::CowStr<'a>>, 148 142 }
+14 -22
crates/jacquard-api/src/net_anisota/beta/game/progress.rs
··· 131 131 PartialEq, 132 132 Eq, 133 133 jacquard_derive::IntoStatic, 134 - bon::Builder 134 + Default 135 135 )] 136 136 #[serde(rename_all = "camelCase")] 137 137 pub struct Metadata<'a> { 138 138 /// Version of the client when this progress was recorded 139 139 #[serde(skip_serializing_if = "std::option::Option::is_none")] 140 - #[builder(into)] 141 140 #[serde(borrow)] 142 - pub client_version: Option<jacquard_common::CowStr<'a>>, 141 + pub client_version: std::option::Option<jacquard_common::CowStr<'a>>, 143 142 /// Platform where the level up occurred (web, mobile, etc.) 144 143 #[serde(skip_serializing_if = "std::option::Option::is_none")] 145 - #[builder(into)] 146 144 #[serde(borrow)] 147 - pub platform: Option<jacquard_common::CowStr<'a>>, 145 + pub platform: std::option::Option<jacquard_common::CowStr<'a>>, 148 146 } 149 147 150 148 /// Game-specific statistics and metrics ··· 157 155 PartialEq, 158 156 Eq, 159 157 jacquard_derive::IntoStatic, 160 - bon::Builder 158 + Default 161 159 )] 162 160 #[serde(rename_all = "camelCase")] 163 161 pub struct Stats<'a> { 164 162 /// Total daily rewards claimed 165 163 #[serde(skip_serializing_if = "std::option::Option::is_none")] 166 - #[builder(into)] 167 - pub daily_rewards_claimed: Option<i64>, 164 + pub daily_rewards_claimed: std::option::Option<i64>, 168 165 /// Total items collected 169 166 #[serde(skip_serializing_if = "std::option::Option::is_none")] 170 - #[builder(into)] 171 - pub items_collected: Option<i64>, 167 + pub items_collected: std::option::Option<i64>, 172 168 /// Date when posts read today was last updated (for daily reset tracking) 173 169 #[serde(skip_serializing_if = "std::option::Option::is_none")] 174 - #[builder(into)] 175 - pub last_post_read_date: Option<jacquard_common::types::string::Datetime>, 170 + pub last_post_read_date: std::option::Option< 171 + jacquard_common::types::string::Datetime, 172 + >, 176 173 /// Posts read today (resets daily) 177 174 #[serde(skip_serializing_if = "std::option::Option::is_none")] 178 - #[builder(into)] 179 - pub posts_read_today: Option<i64>, 175 + pub posts_read_today: std::option::Option<i64>, 180 176 /// Total posts read (all time, cumulative) 181 177 #[serde(skip_serializing_if = "std::option::Option::is_none")] 182 - #[builder(into)] 183 - pub posts_read_total: Option<i64>, 178 + pub posts_read_total: std::option::Option<i64>, 184 179 /// Total posts viewed 185 180 #[serde(skip_serializing_if = "std::option::Option::is_none")] 186 - #[builder(into)] 187 - pub posts_viewed: Option<i64>, 181 + pub posts_viewed: std::option::Option<i64>, 188 182 /// Total shuffles performed 189 183 #[serde(skip_serializing_if = "std::option::Option::is_none")] 190 - #[builder(into)] 191 - pub shuffles_performed: Option<i64>, 184 + pub shuffles_performed: std::option::Option<i64>, 192 185 /// Total specimens collected 193 186 #[serde(skip_serializing_if = "std::option::Option::is_none")] 194 - #[builder(into)] 195 - pub specimens_collected: Option<i64>, 187 + pub specimens_collected: std::option::Option<i64>, 196 188 }
+28 -47
crates/jacquard-api/src/net_anisota/beta/game/session.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct ActivitySummary<'a> { 22 22 /// Player's current level at the time of this session update 23 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub current_level: Option<i64>, 24 + pub current_level: std::option::Option<i64>, 26 25 /// Player's total XP at the time of this session update 27 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 - pub current_xp: Option<i64>, 27 + pub current_xp: std::option::Option<i64>, 30 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 - #[builder(into)] 32 29 #[serde(borrow)] 33 - pub game_actions: Option<crate::net_anisota::beta::game::session::GameActions<'a>>, 30 + pub game_actions: std::option::Option< 31 + crate::net_anisota::beta::game::session::GameActions<'a>, 32 + >, 34 33 /// List of unique pages/routes visited 35 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 35 #[serde(borrow)] 38 - pub pages_visited: Option<Vec<jacquard_common::CowStr<'a>>>, 36 + pub pages_visited: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 39 37 /// Total number of events logged in this session 40 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 41 - #[builder(into)] 42 - pub total_events: Option<i64>, 39 + pub total_events: std::option::Option<i64>, 43 40 /// Total XP gained during this specific session 44 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 45 - #[builder(into)] 46 - pub xp_gained_this_session: Option<i64>, 42 + pub xp_gained_this_session: std::option::Option<i64>, 47 43 } 48 44 49 45 /// Game-specific actions performed ··· 56 52 PartialEq, 57 53 Eq, 58 54 jacquard_derive::IntoStatic, 59 - bon::Builder 55 + Default 60 56 )] 61 57 #[serde(rename_all = "camelCase")] 62 58 pub struct GameActions<'a> { 63 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 64 - #[builder(into)] 65 - pub daily_rewards_claimed: Option<i64>, 60 + pub daily_rewards_claimed: std::option::Option<i64>, 66 61 #[serde(skip_serializing_if = "std::option::Option::is_none")] 67 - #[builder(into)] 68 - pub feeds_loaded: Option<i64>, 62 + pub feeds_loaded: std::option::Option<i64>, 69 63 #[serde(skip_serializing_if = "std::option::Option::is_none")] 70 - #[builder(into)] 71 - pub items_collected: Option<i64>, 64 + pub items_collected: std::option::Option<i64>, 72 65 #[serde(skip_serializing_if = "std::option::Option::is_none")] 73 - #[builder(into)] 74 - pub level_ups: Option<i64>, 66 + pub level_ups: std::option::Option<i64>, 75 67 #[serde(skip_serializing_if = "std::option::Option::is_none")] 76 - #[builder(into)] 77 - pub posts_viewed: Option<i64>, 68 + pub posts_viewed: std::option::Option<i64>, 78 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 79 - #[builder(into)] 80 - pub specimens_collected: Option<i64>, 70 + pub specimens_collected: std::option::Option<i64>, 81 71 } 82 72 83 73 /// A game session record tracking a continuous period of user engagement with the application ··· 223 213 PartialEq, 224 214 Eq, 225 215 jacquard_derive::IntoStatic, 226 - bon::Builder 216 + Default 227 217 )] 228 218 #[serde(rename_all = "camelCase")] 229 219 pub struct Metadata<'a> { 230 220 /// List of features used during the session 231 221 #[serde(skip_serializing_if = "std::option::Option::is_none")] 232 - #[builder(into)] 233 222 #[serde(borrow)] 234 - pub features: Option<Vec<jacquard_common::CowStr<'a>>>, 223 + pub features: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 235 224 /// Network condition during session 236 225 #[serde(skip_serializing_if = "std::option::Option::is_none")] 237 - #[builder(into)] 238 226 #[serde(borrow)] 239 - pub network_condition: Option<jacquard_common::CowStr<'a>>, 227 + pub network_condition: std::option::Option<jacquard_common::CowStr<'a>>, 240 228 #[serde(skip_serializing_if = "std::option::Option::is_none")] 241 - #[builder(into)] 242 229 #[serde(borrow)] 243 - pub performance_metrics: Option< 230 + pub performance_metrics: std::option::Option< 244 231 crate::net_anisota::beta::game::session::PerformanceMetrics<'a>, 245 232 >, 246 233 } ··· 255 242 PartialEq, 256 243 Eq, 257 244 jacquard_derive::IntoStatic, 258 - bon::Builder 245 + Default 259 246 )] 260 247 #[serde(rename_all = "camelCase")] 261 248 pub struct PerformanceMetrics<'a> { 262 249 /// Average API response time in milliseconds (rounded to nearest integer) 263 250 #[serde(skip_serializing_if = "std::option::Option::is_none")] 264 - #[builder(into)] 265 - pub average_response_time: Option<i64>, 251 + pub average_response_time: std::option::Option<i64>, 266 252 /// Number of errors encountered 267 253 #[serde(skip_serializing_if = "std::option::Option::is_none")] 268 - #[builder(into)] 269 - pub error_count: Option<i64>, 254 + pub error_count: std::option::Option<i64>, 270 255 } 271 256 272 257 /// Context about how the session started ··· 279 264 PartialEq, 280 265 Eq, 281 266 jacquard_derive::IntoStatic, 282 - bon::Builder 267 + Default 283 268 )] 284 269 #[serde(rename_all = "camelCase")] 285 270 pub struct SessionContext<'a> { 286 271 /// How the user was authenticated 287 272 #[serde(skip_serializing_if = "std::option::Option::is_none")] 288 - #[builder(into)] 289 273 #[serde(borrow)] 290 - pub authentication_method: Option<jacquard_common::CowStr<'a>>, 274 + pub authentication_method: std::option::Option<jacquard_common::CowStr<'a>>, 291 275 /// How the user entered the app 292 276 #[serde(skip_serializing_if = "std::option::Option::is_none")] 293 - #[builder(into)] 294 277 #[serde(borrow)] 295 - pub entry_point: Option<jacquard_common::CowStr<'a>>, 278 + pub entry_point: std::option::Option<jacquard_common::CowStr<'a>>, 296 279 /// Whether this was a new user's first session 297 280 #[serde(skip_serializing_if = "std::option::Option::is_none")] 298 - #[builder(into)] 299 - pub is_new_user: Option<bool>, 281 + pub is_new_user: std::option::Option<bool>, 300 282 /// Referrer URL if applicable 301 283 #[serde(skip_serializing_if = "std::option::Option::is_none")] 302 - #[builder(into)] 303 284 #[serde(borrow)] 304 - pub referrer: Option<jacquard_common::CowStr<'a>>, 285 + pub referrer: std::option::Option<jacquard_common::CowStr<'a>>, 305 286 }
+5 -9
crates/jacquard-api/src/net_anisota/graph/list_mute.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct ContentTypes<'a> { 22 22 /// Mute regular posts from accounts on this list 23 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub posts: Option<bool>, 24 + pub posts: std::option::Option<bool>, 26 25 /// Mute quote posts from accounts on this list 27 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 - pub quotes: Option<bool>, 27 + pub quotes: std::option::Option<bool>, 30 28 /// Mute replies from accounts on this list 31 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 - #[builder(into)] 33 - pub replies: Option<bool>, 30 + pub replies: std::option::Option<bool>, 34 31 /// Mute reposts from accounts on this list 35 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 - pub reposts: Option<bool>, 33 + pub reposts: std::option::Option<bool>, 38 34 } 39 35 40 36 /// A record for muting content from all accounts on a list with fine-grained control over content types, duration, and feed targeting
+5 -9
crates/jacquard-api/src/net_anisota/graph/mute.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct ContentTypes<'a> { 22 22 /// Mute regular posts from this account 23 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub posts: Option<bool>, 24 + pub posts: std::option::Option<bool>, 26 25 /// Mute quote posts from this account 27 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 - pub quotes: Option<bool>, 27 + pub quotes: std::option::Option<bool>, 30 28 /// Mute replies from this account 31 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 - #[builder(into)] 33 - pub replies: Option<bool>, 30 + pub replies: std::option::Option<bool>, 34 31 /// Mute reposts from this account 35 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 - pub reposts: Option<bool>, 33 + pub reposts: std::option::Option<bool>, 38 34 } 39 35 40 36 /// A record for muting content from a specific account with fine-grained control over content types and duration
+4 -12
crates/jacquard-api/src/network_slices/slice/clear_slice_records.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct ClearSliceRecords<'a> { 22 21 /// AT-URI of the slice to clear 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub slice: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon] ··· 40 31 Clone, 41 32 PartialEq, 42 33 Eq, 43 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 44 36 )] 45 37 #[serde(rename_all = "camelCase")] 46 38 pub struct ClearSliceRecordsOutput<'a> {
+4 -12
crates/jacquard-api/src/network_slices/slice/delete_o_auth_client.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteOAuthClient<'a> { 22 21 /// OAuth client ID to delete 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub client_id: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon] ··· 40 31 Clone, 41 32 PartialEq, 42 33 Eq, 43 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 44 36 )] 45 37 #[serde(rename_all = "camelCase")] 46 38 pub struct DeleteOAuthClientOutput<'a> {
+5 -17
crates/jacquard-api/src/network_slices/slice/get_actors.rs
··· 42 42 Clone, 43 43 PartialEq, 44 44 Eq, 45 - bon::Builder, 46 - jacquard_derive::IntoStatic 45 + jacquard_derive::IntoStatic, 46 + Default 47 47 )] 48 48 #[serde(rename_all = "camelCase")] 49 - #[builder(start_fn = new)] 50 49 pub struct GetActors<'a> { 51 50 /// Pagination cursor from previous response 52 51 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 - #[builder(into)] 54 52 #[serde(borrow)] 55 - pub cursor: Option<jacquard_common::CowStr<'a>>, 53 + pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 56 54 /// Maximum number of actors to return 57 55 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 - #[builder(into)] 59 - pub limit: Option<i64>, 56 + pub limit: std::option::Option<i64>, 60 57 /// AT-URI of the slice to query 61 58 #[serde(borrow)] 62 - #[builder(into)] 63 59 pub slice: jacquard_common::CowStr<'a>, 64 60 /// Flexible filtering conditions for querying actors 65 61 #[serde(skip_serializing_if = "std::option::Option::is_none")] 66 - #[builder(into)] 67 62 #[serde(borrow)] 68 - pub r#where: Option<jacquard_common::types::value::Data<'a>>, 69 - #[serde(flatten)] 70 - #[serde(borrow)] 71 - #[builder(default)] 72 - pub extra_data: ::std::collections::BTreeMap< 73 - ::jacquard_common::smol_str::SmolStr, 74 - ::jacquard_common::types::value::Data<'a>, 75 - >, 63 + pub r#where: std::option::Option<jacquard_common::types::value::Data<'a>>, 76 64 } 77 65 78 66 #[jacquard_derive::lexicon]
+6 -19
crates/jacquard-api/src/network_slices/slice/get_slice_records.rs
··· 45 45 Clone, 46 46 PartialEq, 47 47 Eq, 48 - bon::Builder, 49 - jacquard_derive::IntoStatic 48 + jacquard_derive::IntoStatic, 49 + Default 50 50 )] 51 51 #[serde(rename_all = "camelCase")] 52 - #[builder(start_fn = new)] 53 52 pub struct GetSliceRecords<'a> { 54 53 /// Pagination cursor from previous response 55 54 #[serde(skip_serializing_if = "std::option::Option::is_none")] 56 - #[builder(into)] 57 55 #[serde(borrow)] 58 - pub cursor: Option<jacquard_common::CowStr<'a>>, 56 + pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 59 57 /// Maximum number of records to return 60 58 #[serde(skip_serializing_if = "std::option::Option::is_none")] 61 - #[builder(into)] 62 - pub limit: Option<i64>, 59 + pub limit: std::option::Option<i64>, 63 60 /// AT-URI of the slice to query 64 61 #[serde(borrow)] 65 - #[builder(into)] 66 62 pub slice: jacquard_common::CowStr<'a>, 67 63 /// Sorting configuration for result ordering 68 64 #[serde(skip_serializing_if = "std::option::Option::is_none")] 69 - #[builder(into)] 70 65 #[serde(borrow)] 71 - pub sort_by: Option<jacquard_common::types::value::Data<'a>>, 66 + pub sort_by: std::option::Option<jacquard_common::types::value::Data<'a>>, 72 67 /// Flexible filtering conditions for querying records 73 68 #[serde(skip_serializing_if = "std::option::Option::is_none")] 74 - #[builder(into)] 75 - #[serde(borrow)] 76 - pub r#where: Option<jacquard_common::types::value::Data<'a>>, 77 - #[serde(flatten)] 78 69 #[serde(borrow)] 79 - #[builder(default)] 80 - pub extra_data: ::std::collections::BTreeMap< 81 - ::jacquard_common::smol_str::SmolStr, 82 - ::jacquard_common::types::value::Data<'a>, 83 - >, 70 + pub r#where: std::option::Option<jacquard_common::types::value::Data<'a>>, 84 71 } 85 72 86 73 #[jacquard_derive::lexicon]
+11 -22
crates/jacquard-api/src/network_slices/slice/start_sync.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct StartSync<'a> { 22 21 /// List of collection NSIDs to sync (primary collections matching slice domain) 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 23 #[serde(borrow)] 26 - pub collections: Option<Vec<jacquard_common::types::string::Nsid<'a>>>, 24 + pub collections: std::option::Option<Vec<jacquard_common::types::string::Nsid<'a>>>, 27 25 /// List of external collection NSIDs to sync (collections outside slice domain) 28 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 27 #[serde(borrow)] 31 - pub external_collections: Option<Vec<jacquard_common::types::string::Nsid<'a>>>, 28 + pub external_collections: std::option::Option< 29 + Vec<jacquard_common::types::string::Nsid<'a>>, 30 + >, 32 31 /// Maximum number of records to sync per repository 33 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 - #[builder(into)] 35 - pub limit_per_repo: Option<i64>, 33 + pub limit_per_repo: std::option::Option<i64>, 36 34 /// List of specific repository DIDs to sync from 37 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 - #[builder(into)] 39 36 #[serde(borrow)] 40 - pub repos: Option<Vec<jacquard_common::types::string::Did<'a>>>, 37 + pub repos: std::option::Option<Vec<jacquard_common::types::string::Did<'a>>>, 41 38 /// Skip lexicon validation during sync 42 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 - pub skip_validation: Option<bool>, 40 + pub skip_validation: std::option::Option<bool>, 45 41 /// AT-URI of the slice to sync data into 46 42 #[serde(borrow)] 47 - #[builder(into)] 48 43 pub slice: jacquard_common::CowStr<'a>, 49 - #[serde(flatten)] 50 - #[serde(borrow)] 51 - #[builder(default)] 52 - pub extra_data: ::std::collections::BTreeMap< 53 - ::jacquard_common::smol_str::SmolStr, 54 - ::jacquard_common::types::value::Data<'a>, 55 - >, 56 44 } 57 45 58 46 #[jacquard_derive::lexicon] ··· 63 51 Clone, 64 52 PartialEq, 65 53 Eq, 66 - jacquard_derive::IntoStatic 54 + jacquard_derive::IntoStatic, 55 + Default 67 56 )] 68 57 #[serde(rename_all = "camelCase")] 69 58 pub struct StartSyncOutput<'a> {
+3 -13
crates/jacquard-api/src/network_slices/slice/sync_user_collections.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct SyncUserCollections<'a> { 22 21 /// AT-URI of the slice to sync user data into 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub slice: jacquard_common::CowStr<'a>, 26 24 /// Timeout in seconds for the sync operation 27 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 - pub timeout_seconds: Option<i64>, 30 - #[serde(flatten)] 31 - #[serde(borrow)] 32 - #[builder(default)] 33 - pub extra_data: ::std::collections::BTreeMap< 34 - ::jacquard_common::smol_str::SmolStr, 35 - ::jacquard_common::types::value::Data<'a>, 36 - >, 26 + pub timeout_seconds: std::option::Option<i64>, 37 27 } 38 28 39 29 #[jacquard_derive::lexicon]
+9 -25
crates/jacquard-api/src/network_slices/slice/update_o_auth_client.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateOAuthClient<'a> { 22 21 /// OAuth client ID to update 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub client_id: jacquard_common::CowStr<'a>, 26 24 /// New human-readable name of the OAuth client 27 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 26 #[serde(borrow)] 30 - pub client_name: Option<jacquard_common::CowStr<'a>>, 27 + pub client_name: std::option::Option<jacquard_common::CowStr<'a>>, 31 28 /// New URI of the client application 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 30 #[serde(borrow)] 35 - pub client_uri: Option<jacquard_common::types::string::Uri<'a>>, 31 + pub client_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>, 36 32 /// New URI of the client logo 37 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 - #[builder(into)] 39 34 #[serde(borrow)] 40 - pub logo_uri: Option<jacquard_common::types::string::Uri<'a>>, 35 + pub logo_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>, 41 36 /// New URI of the privacy policy 42 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 38 #[serde(borrow)] 45 - pub policy_uri: Option<jacquard_common::types::string::Uri<'a>>, 39 + pub policy_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>, 46 40 /// New allowed redirect URIs for OAuth flow 47 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 - #[builder(into)] 49 42 #[serde(borrow)] 50 - pub redirect_uris: Option<Vec<jacquard_common::types::string::Uri<'a>>>, 43 + pub redirect_uris: std::option::Option<Vec<jacquard_common::types::string::Uri<'a>>>, 51 44 /// New OAuth scope 52 45 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 - #[builder(into)] 54 46 #[serde(borrow)] 55 - pub scope: Option<jacquard_common::CowStr<'a>>, 47 + pub scope: std::option::Option<jacquard_common::CowStr<'a>>, 56 48 /// New URI of the terms of service 57 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 - #[builder(into)] 59 50 #[serde(borrow)] 60 - pub tos_uri: Option<jacquard_common::types::string::Uri<'a>>, 61 - #[serde(flatten)] 62 - #[serde(borrow)] 63 - #[builder(default)] 64 - pub extra_data: ::std::collections::BTreeMap< 65 - ::jacquard_common::smol_str::SmolStr, 66 - ::jacquard_common::types::value::Data<'a>, 67 - >, 51 + pub tos_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>, 68 52 } 69 53 70 54 #[jacquard_derive::lexicon]
+1 -2
crates/jacquard-api/src/place_stream.rs
··· 47 47 PartialEq, 48 48 Eq, 49 49 jacquard_derive::IntoStatic, 50 - bon::Builder 50 + Default 51 51 )] 52 52 #[serde(rename_all = "camelCase")] 53 53 pub struct Rendition<'a> { 54 54 #[serde(borrow)] 55 - #[builder(into)] 56 55 pub name: jacquard_common::CowStr<'a>, 57 56 } 58 57
+2 -1
crates/jacquard-api/src/place_stream/graph/get_following_user.rs
··· 32 32 Clone, 33 33 PartialEq, 34 34 Eq, 35 - jacquard_derive::IntoStatic 35 + jacquard_derive::IntoStatic, 36 + Default 36 37 )] 37 38 #[serde(rename_all = "camelCase")] 38 39 pub struct GetFollowingUserOutput<'a> {
+2 -1
crates/jacquard-api/src/place_stream/live/get_live_users.rs
··· 33 33 Clone, 34 34 PartialEq, 35 35 Eq, 36 - jacquard_derive::IntoStatic 36 + jacquard_derive::IntoStatic, 37 + Default 37 38 )] 38 39 #[serde(rename_all = "camelCase")] 39 40 pub struct GetLiveUsersOutput<'a> {
+2 -1
crates/jacquard-api/src/place_stream/live/get_segments.rs
··· 35 35 Clone, 36 36 PartialEq, 37 37 Eq, 38 - jacquard_derive::IntoStatic 38 + jacquard_derive::IntoStatic, 39 + Default 39 40 )] 40 41 #[serde(rename_all = "camelCase")] 41 42 pub struct GetSegmentsOutput<'a> {
+1 -3
crates/jacquard-api/src/place_stream/server.rs
··· 21 21 PartialEq, 22 22 Eq, 23 23 jacquard_derive::IntoStatic, 24 - bon::Builder 24 + Default 25 25 )] 26 26 #[serde(rename_all = "camelCase")] 27 27 pub struct RewriteRule<'a> { 28 28 /// Text to search for and replace. 29 29 #[serde(borrow)] 30 - #[builder(into)] 31 30 pub from: jacquard_common::CowStr<'a>, 32 31 /// Text to replace with. 33 32 #[serde(borrow)] 34 - #[builder(into)] 35 33 pub to: jacquard_common::CowStr<'a>, 36 34 } 37 35
+2 -11
crates/jacquard-api/src/place_stream/server/delete_webhook.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteWebhook<'a> { 22 21 /// The ID of the webhook to delete. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub id: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon]
+11 -29
crates/jacquard-api/src/place_stream/server/update_webhook.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateWebhook<'a> { 22 21 /// Whether this webhook should be active. 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 - pub active: Option<bool>, 23 + pub active: std::option::Option<bool>, 26 24 /// A description of what this webhook is used for. 27 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 26 #[serde(borrow)] 30 - pub description: Option<jacquard_common::CowStr<'a>>, 27 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 31 28 /// The types of events this webhook should receive. 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 30 #[serde(borrow)] 35 - pub events: Option<Vec<jacquard_common::CowStr<'a>>>, 31 + pub events: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 36 32 /// The ID of the webhook to update. 37 33 #[serde(borrow)] 38 - #[builder(into)] 39 34 pub id: jacquard_common::CowStr<'a>, 40 35 /// Words to filter out from chat messages. Messages containing any of these words will not be forwarded. 41 36 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 - #[builder(into)] 43 37 #[serde(borrow)] 44 - pub mute_words: Option<Vec<jacquard_common::CowStr<'a>>>, 38 + pub mute_words: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 45 39 /// A user-friendly name for this webhook. 46 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 47 - #[builder(into)] 48 41 #[serde(borrow)] 49 - pub name: Option<jacquard_common::CowStr<'a>>, 42 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 50 43 /// Text to prepend to webhook messages. 51 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 52 - #[builder(into)] 53 45 #[serde(borrow)] 54 - pub prefix: Option<jacquard_common::CowStr<'a>>, 46 + pub prefix: std::option::Option<jacquard_common::CowStr<'a>>, 55 47 /// Text replacement rules for webhook messages. 56 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 57 - #[builder(into)] 58 49 #[serde(borrow)] 59 - pub rewrite: Option<Vec<crate::place_stream::server::RewriteRule<'a>>>, 50 + pub rewrite: std::option::Option<Vec<crate::place_stream::server::RewriteRule<'a>>>, 60 51 /// Text to append to webhook messages. 61 52 #[serde(skip_serializing_if = "std::option::Option::is_none")] 62 - #[builder(into)] 63 53 #[serde(borrow)] 64 - pub suffix: Option<jacquard_common::CowStr<'a>>, 54 + pub suffix: std::option::Option<jacquard_common::CowStr<'a>>, 65 55 /// The webhook URL where events will be sent. 66 56 #[serde(skip_serializing_if = "std::option::Option::is_none")] 67 - #[builder(into)] 68 57 #[serde(borrow)] 69 - pub url: Option<jacquard_common::types::string::Uri<'a>>, 70 - #[serde(flatten)] 71 - #[serde(borrow)] 72 - #[builder(default)] 73 - pub extra_data: ::std::collections::BTreeMap< 74 - ::jacquard_common::smol_str::SmolStr, 75 - ::jacquard_common::types::value::Data<'a>, 76 - >, 58 + pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>, 77 59 } 78 60 79 61 #[jacquard_derive::lexicon]
+2 -4
crates/jacquard-api/src/pub_leaflet/blocks/blockquote.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Blockquote<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub facets: Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 23 + pub facets: std::option::Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 25 24 #[serde(borrow)] 26 - #[builder(into)] 27 25 pub plaintext: jacquard_common::CowStr<'a>, 28 26 }
+3 -6
crates/jacquard-api/src/pub_leaflet/blocks/code.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Code<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub language: Option<jacquard_common::CowStr<'a>>, 23 + pub language: std::option::Option<jacquard_common::CowStr<'a>>, 25 24 #[serde(borrow)] 26 - #[builder(into)] 27 25 pub plaintext: jacquard_common::CowStr<'a>, 28 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 27 #[serde(borrow)] 31 - pub syntax_highlighting_theme: Option<jacquard_common::CowStr<'a>>, 28 + pub syntax_highlighting_theme: std::option::Option<jacquard_common::CowStr<'a>>, 32 29 }
+3 -6
crates/jacquard-api/src/pub_leaflet/blocks/header.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Header<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub facets: Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 23 + pub facets: std::option::Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 25 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 - #[builder(into)] 27 - pub level: Option<i64>, 25 + pub level: std::option::Option<i64>, 28 26 #[serde(borrow)] 29 - #[builder(into)] 30 27 pub plaintext: jacquard_common::CowStr<'a>, 31 28 }
+1 -1
crates/jacquard-api/src/pub_leaflet/blocks/horizontal_rule.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct HorizontalRule<'a> {}
+1 -2
crates/jacquard-api/src/pub_leaflet/blocks/math.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Math<'a> { 21 21 #[serde(borrow)] 22 - #[builder(into)] 23 22 pub tex: jacquard_common::CowStr<'a>, 24 23 }
+2 -4
crates/jacquard-api/src/pub_leaflet/blocks/text.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct Text<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub facets: Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 23 + pub facets: std::option::Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>, 25 24 #[serde(borrow)] 26 - #[builder(into)] 27 25 pub plaintext: jacquard_common::CowStr<'a>, 28 26 }
+4 -3
crates/jacquard-api/src/pub_leaflet/pages/linear_document.rs
··· 72 72 PartialEq, 73 73 Eq, 74 74 jacquard_derive::IntoStatic, 75 - bon::Builder 75 + Default 76 76 )] 77 77 #[serde(rename_all = "camelCase")] 78 78 pub struct LinearDocument<'a> { 79 79 #[serde(skip_serializing_if = "std::option::Option::is_none")] 80 - #[builder(into)] 81 80 #[serde(borrow)] 82 - pub blocks: Option<Vec<crate::pub_leaflet::pages::linear_document::Block<'a>>>, 81 + pub blocks: std::option::Option< 82 + Vec<crate::pub_leaflet::pages::linear_document::Block<'a>>, 83 + >, 83 84 } 84 85 85 86 #[jacquard_derive::lexicon]
+11 -20
crates/jacquard-api/src/pub_leaflet/publication.rs
··· 95 95 PartialEq, 96 96 Eq, 97 97 jacquard_derive::IntoStatic, 98 - bon::Builder 98 + Default 99 99 )] 100 100 #[serde(rename_all = "camelCase")] 101 101 pub struct Preferences<'a> { 102 102 #[serde(skip_serializing_if = "std::option::Option::is_none")] 103 - #[builder(into)] 104 - pub show_comments: Option<bool>, 103 + pub show_comments: std::option::Option<bool>, 105 104 #[serde(skip_serializing_if = "std::option::Option::is_none")] 106 - #[builder(into)] 107 - pub show_in_discover: Option<bool>, 105 + pub show_in_discover: std::option::Option<bool>, 108 106 } 109 107 110 108 #[jacquard_derive::lexicon] ··· 116 114 PartialEq, 117 115 Eq, 118 116 jacquard_derive::IntoStatic, 119 - bon::Builder 117 + Default 120 118 )] 121 119 #[serde(rename_all = "camelCase")] 122 120 pub struct Theme<'a> { 123 121 #[serde(skip_serializing_if = "std::option::Option::is_none")] 124 - #[builder(into)] 125 122 #[serde(borrow)] 126 - pub accent_background: Option<ThemeAccentBackground<'a>>, 123 + pub accent_background: std::option::Option<ThemeAccentBackground<'a>>, 127 124 #[serde(skip_serializing_if = "std::option::Option::is_none")] 128 - #[builder(into)] 129 125 #[serde(borrow)] 130 - pub accent_text: Option<ThemeAccentText<'a>>, 126 + pub accent_text: std::option::Option<ThemeAccentText<'a>>, 131 127 #[serde(skip_serializing_if = "std::option::Option::is_none")] 132 - #[builder(into)] 133 128 #[serde(borrow)] 134 - pub background_color: Option<ThemeBackgroundColor<'a>>, 129 + pub background_color: std::option::Option<ThemeBackgroundColor<'a>>, 135 130 #[serde(skip_serializing_if = "std::option::Option::is_none")] 136 - #[builder(into)] 137 131 #[serde(borrow)] 138 - pub background_image: Option< 132 + pub background_image: std::option::Option< 139 133 crate::pub_leaflet::theme::background_image::BackgroundImage<'a>, 140 134 >, 141 135 #[serde(skip_serializing_if = "std::option::Option::is_none")] 142 - #[builder(into)] 143 136 #[serde(borrow)] 144 - pub page_background: Option<ThemePageBackground<'a>>, 137 + pub page_background: std::option::Option<ThemePageBackground<'a>>, 145 138 #[serde(skip_serializing_if = "std::option::Option::is_none")] 146 - #[builder(into)] 147 139 #[serde(borrow)] 148 - pub primary: Option<ThemePrimary<'a>>, 140 + pub primary: std::option::Option<ThemePrimary<'a>>, 149 141 #[serde(skip_serializing_if = "std::option::Option::is_none")] 150 - #[builder(into)] 151 - pub show_page_background: Option<bool>, 142 + pub show_page_background: std::option::Option<bool>, 152 143 } 153 144 154 145 #[jacquard_derive::open_union]
+8 -9
crates/jacquard-api/src/pub_leaflet/richtext/facet.rs
··· 15 15 PartialEq, 16 16 Eq, 17 17 jacquard_derive::IntoStatic, 18 - bon::Builder 18 + Default 19 19 )] 20 20 #[serde(rename_all = "camelCase")] 21 21 pub struct Bold<'a> {} ··· 47 47 PartialEq, 48 48 Eq, 49 49 jacquard_derive::IntoStatic, 50 - bon::Builder 50 + Default 51 51 )] 52 52 #[serde(rename_all = "camelCase")] 53 53 pub struct Code<'a> {} ··· 61 61 PartialEq, 62 62 Eq, 63 63 jacquard_derive::IntoStatic, 64 - bon::Builder 64 + Default 65 65 )] 66 66 #[serde(rename_all = "camelCase")] 67 67 pub struct Highlight<'a> {} ··· 75 75 PartialEq, 76 76 Eq, 77 77 jacquard_derive::IntoStatic, 78 - bon::Builder 78 + Default 79 79 )] 80 80 #[serde(rename_all = "camelCase")] 81 81 pub struct Id<'a> { 82 82 #[serde(skip_serializing_if = "std::option::Option::is_none")] 83 - #[builder(into)] 84 83 #[serde(borrow)] 85 - pub id: Option<jacquard_common::CowStr<'a>>, 84 + pub id: std::option::Option<jacquard_common::CowStr<'a>>, 86 85 } 87 86 88 87 /// Facet feature for italic text ··· 95 94 PartialEq, 96 95 Eq, 97 96 jacquard_derive::IntoStatic, 98 - bon::Builder 97 + Default 99 98 )] 100 99 #[serde(rename_all = "camelCase")] 101 100 pub struct Italic<'a> {} ··· 178 177 PartialEq, 179 178 Eq, 180 179 jacquard_derive::IntoStatic, 181 - bon::Builder 180 + Default 182 181 )] 183 182 #[serde(rename_all = "camelCase")] 184 183 pub struct Strikethrough<'a> {} ··· 192 191 PartialEq, 193 192 Eq, 194 193 jacquard_derive::IntoStatic, 195 - bon::Builder 194 + Default 196 195 )] 197 196 #[serde(rename_all = "camelCase")] 198 197 pub struct Underline<'a> {}
+4 -6
crates/jacquard-api/src/sh_tangled/git/ref_update.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct CommitCountBreakdown<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub by_email: Option< 23 + pub by_email: std::option::Option< 25 24 Vec<crate::sh_tangled::git::ref_update::IndividualEmailCommitCount<'a>>, 26 25 >, 27 26 } ··· 73 72 PartialEq, 74 73 Eq, 75 74 jacquard_derive::IntoStatic, 76 - bon::Builder 75 + Default 77 76 )] 78 77 #[serde(rename_all = "camelCase")] 79 78 pub struct LangBreakdown<'a> { 80 79 #[serde(skip_serializing_if = "std::option::Option::is_none")] 81 - #[builder(into)] 82 80 #[serde(borrow)] 83 - pub inputs: Option< 81 + pub inputs: std::option::Option< 84 82 Vec<crate::sh_tangled::git::ref_update::IndividualLanguageSize<'a>>, 85 83 >, 86 84 }
+2 -1
crates/jacquard-api/src/sh_tangled/knot/version.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 17 18 )] 18 19 #[serde(rename_all = "camelCase")] 19 20 pub struct VersionOutput<'a> {
+2 -5
crates/jacquard-api/src/sh_tangled/label/definition.rs
··· 91 91 PartialEq, 92 92 Eq, 93 93 jacquard_derive::IntoStatic, 94 - bon::Builder 94 + Default 95 95 )] 96 96 #[serde(rename_all = "camelCase")] 97 97 pub struct ValueType<'a> { 98 98 /// Closed set of values that this label can take. 99 99 #[serde(skip_serializing_if = "std::option::Option::is_none")] 100 - #[builder(into)] 101 100 #[serde(borrow)] 102 - pub r#enum: Option<Vec<jacquard_common::CowStr<'a>>>, 101 + pub r#enum: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 103 102 /// An optional constraint that can be applied on string concrete types. 104 103 #[serde(borrow)] 105 - #[builder(into)] 106 104 pub format: jacquard_common::CowStr<'a>, 107 105 /// The concrete type of this label's value. 108 106 #[serde(borrow)] 109 - #[builder(into)] 110 107 pub r#type: jacquard_common::CowStr<'a>, 111 108 }
+5 -15
crates/jacquard-api/src/sh_tangled/pipeline.rs
··· 95 95 PartialEq, 96 96 Eq, 97 97 jacquard_derive::IntoStatic, 98 - bon::Builder 98 + Default 99 99 )] 100 100 #[serde(rename_all = "camelCase")] 101 101 pub struct ManualTriggerData<'a> { 102 102 #[serde(skip_serializing_if = "std::option::Option::is_none")] 103 - #[builder(into)] 104 103 #[serde(borrow)] 105 - pub inputs: Option<Vec<crate::sh_tangled::pipeline::Pair<'a>>>, 104 + pub inputs: std::option::Option<Vec<crate::sh_tangled::pipeline::Pair<'a>>>, 106 105 } 107 106 108 107 #[jacquard_derive::lexicon] ··· 114 113 PartialEq, 115 114 Eq, 116 115 jacquard_derive::IntoStatic, 117 - bon::Builder 116 + Default 118 117 )] 119 118 #[serde(rename_all = "camelCase")] 120 119 pub struct Pair<'a> { 121 120 #[serde(borrow)] 122 - #[builder(into)] 123 121 pub key: jacquard_common::CowStr<'a>, 124 122 #[serde(borrow)] 125 - #[builder(into)] 126 123 pub value: jacquard_common::CowStr<'a>, 127 124 } 128 125 ··· 135 132 PartialEq, 136 133 Eq, 137 134 jacquard_derive::IntoStatic, 138 - bon::Builder 135 + Default 139 136 )] 140 137 #[serde(rename_all = "camelCase")] 141 138 pub struct PullRequestTriggerData<'a> { 142 139 #[serde(borrow)] 143 - #[builder(into)] 144 140 pub action: jacquard_common::CowStr<'a>, 145 141 #[serde(borrow)] 146 - #[builder(into)] 147 142 pub source_branch: jacquard_common::CowStr<'a>, 148 143 #[serde(borrow)] 149 - #[builder(into)] 150 144 pub source_sha: jacquard_common::CowStr<'a>, 151 145 #[serde(borrow)] 152 - #[builder(into)] 153 146 pub target_branch: jacquard_common::CowStr<'a>, 154 147 } 155 148 ··· 162 155 PartialEq, 163 156 Eq, 164 157 jacquard_derive::IntoStatic, 165 - bon::Builder 158 + Default 166 159 )] 167 160 #[serde(rename_all = "camelCase")] 168 161 pub struct PushTriggerData<'a> { 169 162 #[serde(borrow)] 170 - #[builder(into)] 171 163 pub new_sha: jacquard_common::CowStr<'a>, 172 164 #[serde(borrow)] 173 - #[builder(into)] 174 165 pub old_sha: jacquard_common::CowStr<'a>, 175 166 #[serde(borrow)] 176 - #[builder(into)] 177 167 pub r#ref: jacquard_common::CowStr<'a>, 178 168 } 179 169
+2 -1
crates/jacquard-api/src/sh_tangled/repo/blob.rs
··· 74 74 Clone, 75 75 PartialEq, 76 76 Eq, 77 - jacquard_derive::IntoStatic 77 + jacquard_derive::IntoStatic, 78 + Default 78 79 )] 79 80 #[serde(rename_all = "camelCase")] 80 81 pub struct BlobOutput<'a> {
+4 -15
crates/jacquard-api/src/sh_tangled/repo/create.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct Create<'a> { 22 21 /// Default branch to push to 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 23 #[serde(borrow)] 26 - pub default_branch: Option<jacquard_common::CowStr<'a>>, 24 + pub default_branch: std::option::Option<jacquard_common::CowStr<'a>>, 27 25 /// Rkey of the repository record 28 26 #[serde(borrow)] 29 - #[builder(into)] 30 27 pub rkey: jacquard_common::CowStr<'a>, 31 28 /// A source URL to clone from, populate this when forking or importing a repository. 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 30 #[serde(borrow)] 35 - pub source: Option<jacquard_common::CowStr<'a>>, 36 - #[serde(flatten)] 37 - #[serde(borrow)] 38 - #[builder(default)] 39 - pub extra_data: ::std::collections::BTreeMap< 40 - ::jacquard_common::smol_str::SmolStr, 41 - ::jacquard_common::types::value::Data<'a>, 42 - >, 31 + pub source: std::option::Option<jacquard_common::CowStr<'a>>, 43 32 } 44 33 45 34 ///Response type for
+1 -3
crates/jacquard-api/src/sh_tangled/repo/merge_check.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct ConflictInfo<'a> { 21 21 /// Name of the conflicted file 22 22 #[serde(borrow)] 23 - #[builder(into)] 24 23 pub filename: jacquard_common::CowStr<'a>, 25 24 /// Reason for the conflict 26 25 #[serde(borrow)] 27 - #[builder(into)] 28 26 pub reason: jacquard_common::CowStr<'a>, 29 27 } 30 28
+2 -5
crates/jacquard-api/src/sh_tangled/repo/pull.rs
··· 91 91 PartialEq, 92 92 Eq, 93 93 jacquard_derive::IntoStatic, 94 - bon::Builder 94 + Default 95 95 )] 96 96 #[serde(rename_all = "camelCase")] 97 97 pub struct Source<'a> { 98 98 #[serde(borrow)] 99 - #[builder(into)] 100 99 pub branch: jacquard_common::CowStr<'a>, 101 100 #[serde(skip_serializing_if = "std::option::Option::is_none")] 102 - #[builder(into)] 103 101 #[serde(borrow)] 104 - pub repo: Option<jacquard_common::types::string::AtUri<'a>>, 102 + pub repo: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 105 103 #[serde(borrow)] 106 - #[builder(into)] 107 104 pub sha: jacquard_common::CowStr<'a>, 108 105 } 109 106
+1 -3
crates/jacquard-api/src/sh_tangled/repo/tree.rs
··· 187 187 PartialEq, 188 188 Eq, 189 189 jacquard_derive::IntoStatic, 190 - bon::Builder 190 + Default 191 191 )] 192 192 #[serde(rename_all = "camelCase")] 193 193 pub struct Readme<'a> { 194 194 /// Contents of the readme file 195 195 #[serde(borrow)] 196 - #[builder(into)] 197 196 pub contents: jacquard_common::CowStr<'a>, 198 197 /// Name of the readme file 199 198 #[serde(borrow)] 200 - #[builder(into)] 201 199 pub filename: jacquard_common::CowStr<'a>, 202 200 } 203 201
+1 -3
crates/jacquard-api/src/sh_weaver/edit/cursor.rs
··· 172 172 PartialEq, 173 173 Eq, 174 174 jacquard_derive::IntoStatic, 175 - bon::Builder 175 + Default 176 176 )] 177 177 #[serde(rename_all = "camelCase")] 178 178 pub struct RootContainerId<'a> { 179 179 #[serde(borrow)] 180 - #[builder(into)] 181 180 pub container_type: jacquard_common::CowStr<'a>, 182 181 #[serde(borrow)] 183 - #[builder(into)] 184 182 pub name: jacquard_common::CowStr<'a>, 185 183 }
+2 -3
crates/jacquard-api/src/sh_weaver/notebook.rs
··· 92 92 PartialEq, 93 93 Eq, 94 94 jacquard_derive::IntoStatic, 95 - bon::Builder 95 + Default 96 96 )] 97 97 #[serde(rename_all = "camelCase")] 98 98 pub struct ContentFormat<'a> { 99 99 /// The format of the content. This is used to determine how to render the content. 100 100 #[serde(skip_serializing_if = "std::option::Option::is_none")] 101 - #[builder(into)] 102 101 #[serde(borrow)] 103 - pub markdown: Option<jacquard_common::CowStr<'a>>, 102 + pub markdown: std::option::Option<jacquard_common::CowStr<'a>>, 104 103 } 105 104 106 105 #[jacquard_derive::lexicon]
+1 -2
crates/jacquard-api/src/social_clippr/actor.rs
··· 82 82 PartialEq, 83 83 Eq, 84 84 jacquard_derive::IntoStatic, 85 - bon::Builder 85 + Default 86 86 )] 87 87 #[serde(rename_all = "camelCase")] 88 88 pub struct PublishingScopesPref<'a> { 89 89 /// What publishing scope to mark a clip as by default 90 90 #[serde(borrow)] 91 - #[builder(into)] 92 91 pub default_scope: jacquard_common::CowStr<'a>, 93 92 }
+1 -2
crates/jacquard-api/src/social_psky/richtext/facet.rs
··· 110 110 PartialEq, 111 111 Eq, 112 112 jacquard_derive::IntoStatic, 113 - bon::Builder 113 + Default 114 114 )] 115 115 #[serde(rename_all = "camelCase")] 116 116 pub struct Room<'a> { 117 117 #[serde(borrow)] 118 - #[builder(into)] 119 118 pub room: jacquard_common::CowStr<'a>, 120 119 }
+4 -17
crates/jacquard-api/src/tools_ozone/communication/create_template.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct CreateTemplate<'a> { 22 21 /// Content of the template, markdown supported, can contain variable placeholders. 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub content_markdown: jacquard_common::CowStr<'a>, 26 24 /// DID of the user who is creating the template. 27 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 26 #[serde(borrow)] 30 - pub created_by: Option<jacquard_common::types::string::Did<'a>>, 27 + pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 31 28 /// Message language. 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 - pub lang: Option<jacquard_common::types::string::Language>, 30 + pub lang: std::option::Option<jacquard_common::types::string::Language>, 35 31 /// Name of the template. 36 32 #[serde(borrow)] 37 - #[builder(into)] 38 33 pub name: jacquard_common::CowStr<'a>, 39 34 /// Subject of the message, used in emails. 40 35 #[serde(borrow)] 41 - #[builder(into)] 42 36 pub subject: jacquard_common::CowStr<'a>, 43 - #[serde(flatten)] 44 - #[serde(borrow)] 45 - #[builder(default)] 46 - pub extra_data: ::std::collections::BTreeMap< 47 - ::jacquard_common::smol_str::SmolStr, 48 - ::jacquard_common::types::value::Data<'a>, 49 - >, 50 37 } 51 38 52 39 #[jacquard_derive::lexicon]
+2 -11
crates/jacquard-api/src/tools_ozone/communication/delete_template.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteTemplate<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub id: jacquard_common::CowStr<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 ///Response type for
+8 -23
crates/jacquard-api/src/tools_ozone/communication/update_template.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct UpdateTemplate<'a> { 22 21 /// Content of the template, markdown supported, can contain variable placeholders. 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 23 #[serde(borrow)] 26 - pub content_markdown: Option<jacquard_common::CowStr<'a>>, 24 + pub content_markdown: std::option::Option<jacquard_common::CowStr<'a>>, 27 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 - #[builder(into)] 29 - pub disabled: Option<bool>, 26 + pub disabled: std::option::Option<bool>, 30 27 /// ID of the template to be updated. 31 28 #[serde(borrow)] 32 - #[builder(into)] 33 29 pub id: jacquard_common::CowStr<'a>, 34 30 /// Message language. 35 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 - #[builder(into)] 37 - pub lang: Option<jacquard_common::types::string::Language>, 32 + pub lang: std::option::Option<jacquard_common::types::string::Language>, 38 33 /// Name of the template. 39 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 - #[builder(into)] 41 35 #[serde(borrow)] 42 - pub name: Option<jacquard_common::CowStr<'a>>, 36 + pub name: std::option::Option<jacquard_common::CowStr<'a>>, 43 37 /// Subject of the message, used in emails. 44 38 #[serde(skip_serializing_if = "std::option::Option::is_none")] 45 - #[builder(into)] 46 39 #[serde(borrow)] 47 - pub subject: Option<jacquard_common::CowStr<'a>>, 40 + pub subject: std::option::Option<jacquard_common::CowStr<'a>>, 48 41 /// DID of the user who is updating the template. 49 42 #[serde(skip_serializing_if = "std::option::Option::is_none")] 50 - #[builder(into)] 51 43 #[serde(borrow)] 52 - pub updated_by: Option<jacquard_common::types::string::Did<'a>>, 53 - #[serde(flatten)] 54 - #[serde(borrow)] 55 - #[builder(default)] 56 - pub extra_data: ::std::collections::BTreeMap< 57 - ::jacquard_common::smol_str::SmolStr, 58 - ::jacquard_common::types::value::Data<'a>, 59 - >, 44 + pub updated_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 60 45 } 61 46 62 47 #[jacquard_derive::lexicon]
+6 -10
crates/jacquard-api/src/tools_ozone/hosting/get_account_history.rs
··· 14 14 PartialEq, 15 15 Eq, 16 16 jacquard_derive::IntoStatic, 17 - bon::Builder 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 20 pub struct AccountCreated<'a> { 21 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 - #[builder(into)] 23 22 #[serde(borrow)] 24 - pub email: Option<jacquard_common::CowStr<'a>>, 23 + pub email: std::option::Option<jacquard_common::CowStr<'a>>, 25 24 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 - #[builder(into)] 27 25 #[serde(borrow)] 28 - pub handle: Option<jacquard_common::types::string::Handle<'a>>, 26 + pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>, 29 27 } 30 28 31 29 #[jacquard_derive::lexicon] ··· 37 35 PartialEq, 38 36 Eq, 39 37 jacquard_derive::IntoStatic, 40 - bon::Builder 38 + Default 41 39 )] 42 40 #[serde(rename_all = "camelCase")] 43 41 pub struct EmailConfirmed<'a> { 44 42 #[serde(borrow)] 45 - #[builder(into)] 46 43 pub email: jacquard_common::CowStr<'a>, 47 44 } 48 45 ··· 55 52 PartialEq, 56 53 Eq, 57 54 jacquard_derive::IntoStatic, 58 - bon::Builder 55 + Default 59 56 )] 60 57 #[serde(rename_all = "camelCase")] 61 58 pub struct EmailUpdated<'a> { 62 59 #[serde(borrow)] 63 - #[builder(into)] 64 60 pub email: jacquard_common::CowStr<'a>, 65 61 } 66 62 ··· 218 214 PartialEq, 219 215 Eq, 220 216 jacquard_derive::IntoStatic, 221 - bon::Builder 217 + Default 222 218 )] 223 219 #[serde(rename_all = "camelCase")] 224 220 pub struct PasswordUpdated<'a> {}
+73 -123
crates/jacquard-api/src/tools_ozone/moderation.rs
··· 57 57 PartialEq, 58 58 Eq, 59 59 jacquard_derive::IntoStatic, 60 - bon::Builder 60 + Default 61 61 )] 62 62 #[serde(rename_all = "camelCase")] 63 63 pub struct AccountHosting<'a> { 64 64 #[serde(skip_serializing_if = "std::option::Option::is_none")] 65 - #[builder(into)] 66 - pub created_at: Option<jacquard_common::types::string::Datetime>, 65 + pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 67 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 68 - #[builder(into)] 69 - pub deactivated_at: Option<jacquard_common::types::string::Datetime>, 67 + pub deactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 70 68 #[serde(skip_serializing_if = "std::option::Option::is_none")] 71 - #[builder(into)] 72 - pub deleted_at: Option<jacquard_common::types::string::Datetime>, 69 + pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>, 73 70 #[serde(skip_serializing_if = "std::option::Option::is_none")] 74 - #[builder(into)] 75 - pub reactivated_at: Option<jacquard_common::types::string::Datetime>, 71 + pub reactivated_at: std::option::Option<jacquard_common::types::string::Datetime>, 76 72 #[serde(borrow)] 77 - #[builder(into)] 78 73 pub status: jacquard_common::CowStr<'a>, 79 74 #[serde(skip_serializing_if = "std::option::Option::is_none")] 80 - #[builder(into)] 81 - pub updated_at: Option<jacquard_common::types::string::Datetime>, 75 + pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 82 76 } 83 77 84 78 /// Statistics about a particular account subject ··· 91 85 PartialEq, 92 86 Eq, 93 87 jacquard_derive::IntoStatic, 94 - bon::Builder 88 + Default 95 89 )] 96 90 #[serde(rename_all = "camelCase")] 97 91 pub struct AccountStats<'a> { 98 92 /// Total number of appeals against a moderation action on the account 99 93 #[serde(skip_serializing_if = "std::option::Option::is_none")] 100 - #[builder(into)] 101 - pub appeal_count: Option<i64>, 94 + pub appeal_count: std::option::Option<i64>, 102 95 /// Number of times the account was escalated 103 96 #[serde(skip_serializing_if = "std::option::Option::is_none")] 104 - #[builder(into)] 105 - pub escalate_count: Option<i64>, 97 + pub escalate_count: std::option::Option<i64>, 106 98 /// Total number of reports on the account 107 99 #[serde(skip_serializing_if = "std::option::Option::is_none")] 108 - #[builder(into)] 109 - pub report_count: Option<i64>, 100 + pub report_count: std::option::Option<i64>, 110 101 /// Number of times the account was suspended 111 102 #[serde(skip_serializing_if = "std::option::Option::is_none")] 112 - #[builder(into)] 113 - pub suspend_count: Option<i64>, 103 + pub suspend_count: std::option::Option<i64>, 114 104 /// Number of times the account was taken down 115 105 #[serde(skip_serializing_if = "std::option::Option::is_none")] 116 - #[builder(into)] 117 - pub takedown_count: Option<i64>, 106 + pub takedown_count: std::option::Option<i64>, 118 107 } 119 108 120 109 /// Age assurance info coming directly from users. Only works on DID subjects. ··· 173 162 PartialEq, 174 163 Eq, 175 164 jacquard_derive::IntoStatic, 176 - bon::Builder 165 + Default 177 166 )] 178 167 #[serde(rename_all = "camelCase")] 179 168 pub struct AgeAssuranceOverrideEvent<'a> { 180 169 /// Comment describing the reason for the override. 181 170 #[serde(borrow)] 182 - #[builder(into)] 183 171 pub comment: jacquard_common::CowStr<'a>, 184 172 /// 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. 185 173 #[serde(borrow)] 186 - #[builder(into)] 187 174 pub status: jacquard_common::CowStr<'a>, 188 175 } 189 176 ··· 246 233 PartialEq, 247 234 Eq, 248 235 jacquard_derive::IntoStatic, 249 - bon::Builder 236 + Default 250 237 )] 251 238 #[serde(rename_all = "camelCase")] 252 239 pub struct CancelScheduledTakedownEvent<'a> { 253 240 #[serde(skip_serializing_if = "std::option::Option::is_none")] 254 - #[builder(into)] 255 241 #[serde(borrow)] 256 - pub comment: Option<jacquard_common::CowStr<'a>>, 242 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 257 243 } 258 244 259 245 /// Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. ··· 314 300 PartialEq, 315 301 Eq, 316 302 jacquard_derive::IntoStatic, 317 - bon::Builder 303 + Default 318 304 )] 319 305 #[serde(rename_all = "camelCase")] 320 306 pub struct ModEventAcknowledge<'a> { 321 307 /// If true, all other reports on content authored by this account will be resolved (acknowledged). 322 308 #[serde(skip_serializing_if = "std::option::Option::is_none")] 323 - #[builder(into)] 324 - pub acknowledge_account_subjects: Option<bool>, 309 + pub acknowledge_account_subjects: std::option::Option<bool>, 325 310 #[serde(skip_serializing_if = "std::option::Option::is_none")] 326 - #[builder(into)] 327 311 #[serde(borrow)] 328 - pub comment: Option<jacquard_common::CowStr<'a>>, 312 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 329 313 } 330 314 331 315 /// Add a comment to a subject. An empty comment will clear any previously set sticky comment. ··· 338 322 PartialEq, 339 323 Eq, 340 324 jacquard_derive::IntoStatic, 341 - bon::Builder 325 + Default 342 326 )] 343 327 #[serde(rename_all = "camelCase")] 344 328 pub struct ModEventComment<'a> { 345 329 #[serde(skip_serializing_if = "std::option::Option::is_none")] 346 - #[builder(into)] 347 330 #[serde(borrow)] 348 - pub comment: Option<jacquard_common::CowStr<'a>>, 331 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 349 332 /// Make the comment persistent on the subject 350 333 #[serde(skip_serializing_if = "std::option::Option::is_none")] 351 - #[builder(into)] 352 - pub sticky: Option<bool>, 334 + pub sticky: std::option::Option<bool>, 353 335 } 354 336 355 337 /// Divert a record's blobs to a 3rd party service for further scanning/tagging ··· 362 344 PartialEq, 363 345 Eq, 364 346 jacquard_derive::IntoStatic, 365 - bon::Builder 347 + Default 366 348 )] 367 349 #[serde(rename_all = "camelCase")] 368 350 pub struct ModEventDivert<'a> { 369 351 #[serde(skip_serializing_if = "std::option::Option::is_none")] 370 - #[builder(into)] 371 352 #[serde(borrow)] 372 - pub comment: Option<jacquard_common::CowStr<'a>>, 353 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 373 354 } 374 355 375 356 /// Keep a log of outgoing email to a user ··· 382 363 PartialEq, 383 364 Eq, 384 365 jacquard_derive::IntoStatic, 385 - bon::Builder 366 + Default 386 367 )] 387 368 #[serde(rename_all = "camelCase")] 388 369 pub struct ModEventEmail<'a> { 389 370 /// Additional comment about the outgoing comm. 390 371 #[serde(skip_serializing_if = "std::option::Option::is_none")] 391 - #[builder(into)] 392 372 #[serde(borrow)] 393 - pub comment: Option<jacquard_common::CowStr<'a>>, 373 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 394 374 /// The content of the email sent to the user. 395 375 #[serde(skip_serializing_if = "std::option::Option::is_none")] 396 - #[builder(into)] 397 376 #[serde(borrow)] 398 - pub content: Option<jacquard_common::CowStr<'a>>, 377 + pub content: std::option::Option<jacquard_common::CowStr<'a>>, 399 378 /// The subject line of the email sent to the user. 400 379 #[serde(borrow)] 401 - #[builder(into)] 402 380 pub subject_line: jacquard_common::CowStr<'a>, 403 381 } 404 382 ··· 411 389 PartialEq, 412 390 Eq, 413 391 jacquard_derive::IntoStatic, 414 - bon::Builder 392 + Default 415 393 )] 416 394 #[serde(rename_all = "camelCase")] 417 395 pub struct ModEventEscalate<'a> { 418 396 #[serde(skip_serializing_if = "std::option::Option::is_none")] 419 - #[builder(into)] 420 397 #[serde(borrow)] 421 - pub comment: Option<jacquard_common::CowStr<'a>>, 398 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 422 399 } 423 400 424 401 /// Apply/Negate labels on a subject ··· 481 458 PartialEq, 482 459 Eq, 483 460 jacquard_derive::IntoStatic, 484 - bon::Builder 461 + Default 485 462 )] 486 463 #[serde(rename_all = "camelCase")] 487 464 pub struct ModEventMuteReporter<'a> { 488 465 #[serde(skip_serializing_if = "std::option::Option::is_none")] 489 - #[builder(into)] 490 466 #[serde(borrow)] 491 - pub comment: Option<jacquard_common::CowStr<'a>>, 467 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 492 468 /// Indicates how long the account should remain muted. Falsy value here means a permanent mute. 493 469 #[serde(skip_serializing_if = "std::option::Option::is_none")] 494 - #[builder(into)] 495 - pub duration_in_hours: Option<i64>, 470 + pub duration_in_hours: std::option::Option<i64>, 496 471 } 497 472 498 473 /// Set priority score of the subject. Higher score means higher priority. ··· 552 527 PartialEq, 553 528 Eq, 554 529 jacquard_derive::IntoStatic, 555 - bon::Builder 530 + Default 556 531 )] 557 532 #[serde(rename_all = "camelCase")] 558 533 pub struct ModEventResolveAppeal<'a> { 559 534 /// Describe resolution. 560 535 #[serde(skip_serializing_if = "std::option::Option::is_none")] 561 - #[builder(into)] 562 536 #[serde(borrow)] 563 - pub comment: Option<jacquard_common::CowStr<'a>>, 537 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 564 538 } 565 539 566 540 /// Revert take down action on a subject ··· 573 547 PartialEq, 574 548 Eq, 575 549 jacquard_derive::IntoStatic, 576 - bon::Builder 550 + Default 577 551 )] 578 552 #[serde(rename_all = "camelCase")] 579 553 pub struct ModEventReverseTakedown<'a> { 580 554 /// Describe reasoning behind the reversal. 581 555 #[serde(skip_serializing_if = "std::option::Option::is_none")] 582 - #[builder(into)] 583 556 #[serde(borrow)] 584 - pub comment: Option<jacquard_common::CowStr<'a>>, 557 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 585 558 } 586 559 587 560 /// Add/Remove a tag on a subject ··· 621 594 PartialEq, 622 595 Eq, 623 596 jacquard_derive::IntoStatic, 624 - bon::Builder 597 + Default 625 598 )] 626 599 #[serde(rename_all = "camelCase")] 627 600 pub struct ModEventTakedown<'a> { 628 601 /// If true, all other reports on content authored by this account will be resolved (acknowledged). 629 602 #[serde(skip_serializing_if = "std::option::Option::is_none")] 630 - #[builder(into)] 631 - pub acknowledge_account_subjects: Option<bool>, 603 + pub acknowledge_account_subjects: std::option::Option<bool>, 632 604 #[serde(skip_serializing_if = "std::option::Option::is_none")] 633 - #[builder(into)] 634 605 #[serde(borrow)] 635 - pub comment: Option<jacquard_common::CowStr<'a>>, 606 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 636 607 /// Indicates how long the takedown should be in effect before automatically expiring. 637 608 #[serde(skip_serializing_if = "std::option::Option::is_none")] 638 - #[builder(into)] 639 - pub duration_in_hours: Option<i64>, 609 + pub duration_in_hours: std::option::Option<i64>, 640 610 /// Names/Keywords of the policies that drove the decision. 641 611 #[serde(skip_serializing_if = "std::option::Option::is_none")] 642 - #[builder(into)] 643 612 #[serde(borrow)] 644 - pub policies: Option<Vec<jacquard_common::CowStr<'a>>>, 613 + pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 645 614 } 646 615 647 616 /// Unmute action on a subject ··· 654 623 PartialEq, 655 624 Eq, 656 625 jacquard_derive::IntoStatic, 657 - bon::Builder 626 + Default 658 627 )] 659 628 #[serde(rename_all = "camelCase")] 660 629 pub struct ModEventUnmute<'a> { 661 630 /// Describe reasoning behind the reversal. 662 631 #[serde(skip_serializing_if = "std::option::Option::is_none")] 663 - #[builder(into)] 664 632 #[serde(borrow)] 665 - pub comment: Option<jacquard_common::CowStr<'a>>, 633 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 666 634 } 667 635 668 636 /// Unmute incoming reports from an account ··· 675 643 PartialEq, 676 644 Eq, 677 645 jacquard_derive::IntoStatic, 678 - bon::Builder 646 + Default 679 647 )] 680 648 #[serde(rename_all = "camelCase")] 681 649 pub struct ModEventUnmuteReporter<'a> { 682 650 /// Describe reasoning behind the reversal. 683 651 #[serde(skip_serializing_if = "std::option::Option::is_none")] 684 - #[builder(into)] 685 652 #[serde(borrow)] 686 - pub comment: Option<jacquard_common::CowStr<'a>>, 653 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 687 654 } 688 655 689 656 #[jacquard_derive::lexicon] ··· 964 931 PartialEq, 965 932 Eq, 966 933 jacquard_derive::IntoStatic, 967 - bon::Builder 934 + Default 968 935 )] 969 936 #[serde(rename_all = "camelCase")] 970 937 pub struct ModTool<'a> { 971 938 /// Additional arbitrary metadata about the source 972 939 #[serde(skip_serializing_if = "std::option::Option::is_none")] 973 - #[builder(into)] 974 940 #[serde(borrow)] 975 - pub meta: Option<jacquard_common::types::value::Data<'a>>, 941 + pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>, 976 942 /// Name/identifier of the source (e.g., 'automod', 'ozone/workspace') 977 943 #[serde(borrow)] 978 - #[builder(into)] 979 944 pub name: jacquard_common::CowStr<'a>, 980 945 } 981 946 ··· 988 953 PartialEq, 989 954 Eq, 990 955 jacquard_derive::IntoStatic, 991 - bon::Builder 956 + Default 992 957 )] 993 958 #[serde(rename_all = "camelCase")] 994 959 pub struct Moderation<'a> { 995 960 #[serde(skip_serializing_if = "std::option::Option::is_none")] 996 - #[builder(into)] 997 961 #[serde(borrow)] 998 - pub subject_status: Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>, 962 + pub subject_status: std::option::Option< 963 + crate::tools_ozone::moderation::SubjectStatusView<'a>, 964 + >, 999 965 } 1000 966 1001 967 #[jacquard_derive::lexicon] ··· 1007 973 PartialEq, 1008 974 Eq, 1009 975 jacquard_derive::IntoStatic, 1010 - bon::Builder 976 + Default 1011 977 )] 1012 978 #[serde(rename_all = "camelCase")] 1013 979 pub struct ModerationDetail<'a> { 1014 980 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1015 - #[builder(into)] 1016 981 #[serde(borrow)] 1017 - pub subject_status: Option<crate::tools_ozone::moderation::SubjectStatusView<'a>>, 982 + pub subject_status: std::option::Option< 983 + crate::tools_ozone::moderation::SubjectStatusView<'a>, 984 + >, 1018 985 } 1019 986 1020 987 /// Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. ··· 1054 1021 PartialEq, 1055 1022 Eq, 1056 1023 jacquard_derive::IntoStatic, 1057 - bon::Builder 1024 + Default 1058 1025 )] 1059 1026 #[serde(rename_all = "camelCase")] 1060 1027 pub struct RecordHosting<'a> { 1061 1028 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1062 - #[builder(into)] 1063 - pub created_at: Option<jacquard_common::types::string::Datetime>, 1029 + pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 1064 1030 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1065 - #[builder(into)] 1066 - pub deleted_at: Option<jacquard_common::types::string::Datetime>, 1031 + pub deleted_at: std::option::Option<jacquard_common::types::string::Datetime>, 1067 1032 #[serde(borrow)] 1068 - #[builder(into)] 1069 1033 pub status: jacquard_common::CowStr<'a>, 1070 1034 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1071 - #[builder(into)] 1072 - pub updated_at: Option<jacquard_common::types::string::Datetime>, 1035 + pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 1073 1036 } 1074 1037 1075 1038 #[jacquard_derive::lexicon] ··· 1159 1122 PartialEq, 1160 1123 Eq, 1161 1124 jacquard_derive::IntoStatic, 1162 - bon::Builder 1125 + Default 1163 1126 )] 1164 1127 #[serde(rename_all = "camelCase")] 1165 1128 pub struct RecordsStats<'a> { 1166 1129 /// Number of items that were appealed at least once 1167 1130 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1168 - #[builder(into)] 1169 - pub appealed_count: Option<i64>, 1131 + pub appealed_count: std::option::Option<i64>, 1170 1132 /// Number of items that were escalated at least once 1171 1133 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1172 - #[builder(into)] 1173 - pub escalated_count: Option<i64>, 1134 + pub escalated_count: std::option::Option<i64>, 1174 1135 /// Number of item currently in "reviewOpen" or "reviewEscalated" state 1175 1136 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1176 - #[builder(into)] 1177 - pub pending_count: Option<i64>, 1137 + pub pending_count: std::option::Option<i64>, 1178 1138 /// Number of item currently in "reviewNone" or "reviewClosed" state 1179 1139 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1180 - #[builder(into)] 1181 - pub processed_count: Option<i64>, 1140 + pub processed_count: std::option::Option<i64>, 1182 1141 /// Number of items that were reported at least once 1183 1142 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1184 - #[builder(into)] 1185 - pub reported_count: Option<i64>, 1143 + pub reported_count: std::option::Option<i64>, 1186 1144 /// Total number of item in the set 1187 1145 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1188 - #[builder(into)] 1189 - pub subject_count: Option<i64>, 1146 + pub subject_count: std::option::Option<i64>, 1190 1147 /// Number of item currently taken down 1191 1148 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1192 - #[builder(into)] 1193 - pub takendown_count: Option<i64>, 1149 + pub takendown_count: std::option::Option<i64>, 1194 1150 /// Cumulative sum of the number of reports on the items in the set 1195 1151 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1196 - #[builder(into)] 1197 - pub total_reports: Option<i64>, 1152 + pub total_reports: std::option::Option<i64>, 1198 1153 } 1199 1154 1200 1155 #[jacquard_derive::lexicon] ··· 1432 1387 PartialEq, 1433 1388 Eq, 1434 1389 jacquard_derive::IntoStatic, 1435 - bon::Builder 1390 + Default 1436 1391 )] 1437 1392 #[serde(rename_all = "camelCase")] 1438 1393 pub struct RevokeAccountCredentialsEvent<'a> { 1439 1394 /// Comment describing the reason for the revocation. 1440 1395 #[serde(borrow)] 1441 - #[builder(into)] 1442 1396 pub comment: jacquard_common::CowStr<'a>, 1443 1397 } 1444 1398 ··· 1452 1406 PartialEq, 1453 1407 Eq, 1454 1408 jacquard_derive::IntoStatic, 1455 - bon::Builder 1409 + Default 1456 1410 )] 1457 1411 #[serde(rename_all = "camelCase")] 1458 1412 pub struct ScheduleTakedownEvent<'a> { 1459 1413 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1460 - #[builder(into)] 1461 1414 #[serde(borrow)] 1462 - pub comment: Option<jacquard_common::CowStr<'a>>, 1415 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 1463 1416 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1464 - #[builder(into)] 1465 - pub execute_after: Option<jacquard_common::types::string::Datetime>, 1417 + pub execute_after: std::option::Option<jacquard_common::types::string::Datetime>, 1466 1418 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1467 - #[builder(into)] 1468 - pub execute_at: Option<jacquard_common::types::string::Datetime>, 1419 + pub execute_at: std::option::Option<jacquard_common::types::string::Datetime>, 1469 1420 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1470 - #[builder(into)] 1471 - pub execute_until: Option<jacquard_common::types::string::Datetime>, 1421 + pub execute_until: std::option::Option<jacquard_common::types::string::Datetime>, 1472 1422 } 1473 1423 1474 1424 /// View of a scheduled moderation action
+9 -16
crates/jacquard-api/src/tools_ozone/moderation/schedule_action.rs
··· 144 144 PartialEq, 145 145 Eq, 146 146 jacquard_derive::IntoStatic, 147 - bon::Builder 147 + Default 148 148 )] 149 149 #[serde(rename_all = "camelCase")] 150 150 pub struct SchedulingConfig<'a> { 151 151 /// Earliest time to execute the action (for randomized scheduling) 152 152 #[serde(skip_serializing_if = "std::option::Option::is_none")] 153 - #[builder(into)] 154 - pub execute_after: Option<jacquard_common::types::string::Datetime>, 153 + pub execute_after: std::option::Option<jacquard_common::types::string::Datetime>, 155 154 /// Exact time to execute the action 156 155 #[serde(skip_serializing_if = "std::option::Option::is_none")] 157 - #[builder(into)] 158 - pub execute_at: Option<jacquard_common::types::string::Datetime>, 156 + pub execute_at: std::option::Option<jacquard_common::types::string::Datetime>, 159 157 /// Latest time to execute the action (for randomized scheduling) 160 158 #[serde(skip_serializing_if = "std::option::Option::is_none")] 161 - #[builder(into)] 162 - pub execute_until: Option<jacquard_common::types::string::Datetime>, 159 + pub execute_until: std::option::Option<jacquard_common::types::string::Datetime>, 163 160 } 164 161 165 162 /// Schedule a takedown action ··· 172 169 PartialEq, 173 170 Eq, 174 171 jacquard_derive::IntoStatic, 175 - bon::Builder 172 + Default 176 173 )] 177 174 #[serde(rename_all = "camelCase")] 178 175 pub struct Takedown<'a> { 179 176 /// If true, all other reports on content authored by this account will be resolved (acknowledged). 180 177 #[serde(skip_serializing_if = "std::option::Option::is_none")] 181 - #[builder(into)] 182 - pub acknowledge_account_subjects: Option<bool>, 178 + pub acknowledge_account_subjects: std::option::Option<bool>, 183 179 #[serde(skip_serializing_if = "std::option::Option::is_none")] 184 - #[builder(into)] 185 180 #[serde(borrow)] 186 - pub comment: Option<jacquard_common::CowStr<'a>>, 181 + pub comment: std::option::Option<jacquard_common::CowStr<'a>>, 187 182 /// Indicates how long the takedown should be in effect before automatically expiring. 188 183 #[serde(skip_serializing_if = "std::option::Option::is_none")] 189 - #[builder(into)] 190 - pub duration_in_hours: Option<i64>, 184 + pub duration_in_hours: std::option::Option<i64>, 191 185 /// Names/Keywords of the policies that drove the decision. 192 186 #[serde(skip_serializing_if = "std::option::Option::is_none")] 193 - #[builder(into)] 194 187 #[serde(borrow)] 195 - pub policies: Option<Vec<jacquard_common::CowStr<'a>>>, 188 + pub policies: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 196 189 }
+7 -20
crates/jacquard-api/src/tools_ozone/safelink/query_events.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct QueryEvents<'a> { 22 21 /// Cursor for pagination 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 23 #[serde(borrow)] 26 - pub cursor: Option<jacquard_common::CowStr<'a>>, 24 + pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 27 25 /// Maximum number of results to return 28 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 - pub limit: Option<i64>, 27 + pub limit: std::option::Option<i64>, 31 28 /// Filter by pattern type 32 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 - #[builder(into)] 34 30 #[serde(borrow)] 35 - pub pattern_type: Option<jacquard_common::CowStr<'a>>, 31 + pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>, 36 32 /// Sort direction 37 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 - #[builder(into)] 39 34 #[serde(borrow)] 40 - pub sort_direction: Option<jacquard_common::CowStr<'a>>, 35 + pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>, 41 36 /// Filter by specific URLs or domains 42 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 38 #[serde(borrow)] 45 - pub urls: Option<Vec<jacquard_common::CowStr<'a>>>, 46 - #[serde(flatten)] 47 - #[serde(borrow)] 48 - #[builder(default)] 49 - pub extra_data: ::std::collections::BTreeMap< 50 - ::jacquard_common::smol_str::SmolStr, 51 - ::jacquard_common::types::value::Data<'a>, 52 - >, 39 + pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 53 40 } 54 41 55 42 #[jacquard_derive::lexicon]
+10 -26
crates/jacquard-api/src/tools_ozone/safelink/query_rules.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct QueryRules<'a> { 22 21 /// Filter by action types 23 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 - #[builder(into)] 25 23 #[serde(borrow)] 26 - pub actions: Option<Vec<jacquard_common::CowStr<'a>>>, 24 + pub actions: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 27 25 /// Filter by rule creator 28 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 27 #[serde(borrow)] 31 - pub created_by: Option<jacquard_common::types::string::Did<'a>>, 28 + pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>, 32 29 /// Cursor for pagination 33 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 - #[builder(into)] 35 31 #[serde(borrow)] 36 - pub cursor: Option<jacquard_common::CowStr<'a>>, 32 + pub cursor: std::option::Option<jacquard_common::CowStr<'a>>, 37 33 /// Maximum number of results to return 38 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 39 - #[builder(into)] 40 - pub limit: Option<i64>, 35 + pub limit: std::option::Option<i64>, 41 36 /// Filter by pattern type 42 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 43 - #[builder(into)] 44 38 #[serde(borrow)] 45 - pub pattern_type: Option<jacquard_common::CowStr<'a>>, 39 + pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>, 46 40 /// Filter by reason type 47 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 - #[builder(into)] 49 42 #[serde(borrow)] 50 - pub reason: Option<jacquard_common::CowStr<'a>>, 43 + pub reason: std::option::Option<jacquard_common::CowStr<'a>>, 51 44 /// Sort direction 52 45 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 - #[builder(into)] 54 46 #[serde(borrow)] 55 - pub sort_direction: Option<jacquard_common::CowStr<'a>>, 47 + pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>, 56 48 /// Filter by specific URLs or domains 57 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 - #[builder(into)] 59 50 #[serde(borrow)] 60 - pub urls: Option<Vec<jacquard_common::CowStr<'a>>>, 61 - #[serde(flatten)] 62 - #[serde(borrow)] 63 - #[builder(default)] 64 - pub extra_data: ::std::collections::BTreeMap< 65 - ::jacquard_common::smol_str::SmolStr, 66 - ::jacquard_common::types::value::Data<'a>, 67 - >, 51 + pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 68 52 } 69 53 70 54 #[jacquard_derive::lexicon]
+6 -7
crates/jacquard-api/src/tools_ozone/server/get_config.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 17 18 )] 18 19 #[serde(rename_all = "camelCase")] 19 20 pub struct GetConfigOutput<'a> { ··· 85 86 PartialEq, 86 87 Eq, 87 88 jacquard_derive::IntoStatic, 88 - bon::Builder 89 + Default 89 90 )] 90 91 #[serde(rename_all = "camelCase")] 91 92 pub struct ServiceConfig<'a> { 92 93 #[serde(skip_serializing_if = "std::option::Option::is_none")] 93 - #[builder(into)] 94 94 #[serde(borrow)] 95 - pub url: Option<jacquard_common::types::string::Uri<'a>>, 95 + pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>, 96 96 } 97 97 98 98 #[jacquard_derive::lexicon] ··· 104 104 PartialEq, 105 105 Eq, 106 106 jacquard_derive::IntoStatic, 107 - bon::Builder 107 + Default 108 108 )] 109 109 #[serde(rename_all = "camelCase")] 110 110 pub struct ViewerConfig<'a> { 111 111 #[serde(skip_serializing_if = "std::option::Option::is_none")] 112 - #[builder(into)] 113 112 #[serde(borrow)] 114 - pub role: Option<jacquard_common::CowStr<'a>>, 113 + pub role: std::option::Option<jacquard_common::CowStr<'a>>, 115 114 }
+2 -4
crates/jacquard-api/src/tools_ozone/set.rs
··· 21 21 PartialEq, 22 22 Eq, 23 23 jacquard_derive::IntoStatic, 24 - bon::Builder 24 + Default 25 25 )] 26 26 #[serde(rename_all = "camelCase")] 27 27 pub struct Set<'a> { 28 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 - #[builder(into)] 30 29 #[serde(borrow)] 31 - pub description: Option<jacquard_common::CowStr<'a>>, 30 + pub description: std::option::Option<jacquard_common::CowStr<'a>>, 32 31 #[serde(borrow)] 33 - #[builder(into)] 34 32 pub name: jacquard_common::CowStr<'a>, 35 33 } 36 34
+4 -12
crates/jacquard-api/src/tools_ozone/set/delete_set.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct DeleteSet<'a> { 22 21 /// Name of the set to delete 23 22 #[serde(borrow)] 24 - #[builder(into)] 25 23 pub name: jacquard_common::CowStr<'a>, 26 - #[serde(flatten)] 27 - #[serde(borrow)] 28 - #[builder(default)] 29 - pub extra_data: ::std::collections::BTreeMap< 30 - ::jacquard_common::smol_str::SmolStr, 31 - ::jacquard_common::types::value::Data<'a>, 32 - >, 33 24 } 34 25 35 26 #[jacquard_derive::lexicon] ··· 40 31 Clone, 41 32 PartialEq, 42 33 Eq, 43 - jacquard_derive::IntoStatic 34 + jacquard_derive::IntoStatic, 35 + Default 44 36 )] 45 37 #[serde(rename_all = "camelCase")] 46 38 pub struct DeleteSetOutput<'a> {}
-9
crates/jacquard-api/src/tools_ozone/set/upsert_set.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 16 jacquard_derive::IntoStatic 18 17 )] 19 18 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 19 pub struct UpsertSet<'a> { 22 20 #[serde(flatten)] 23 21 #[serde(borrow)] 24 22 pub value: crate::tools_ozone::set::Set<'a>, 25 - #[serde(flatten)] 26 - #[serde(borrow)] 27 - #[builder(default)] 28 - pub extra_data: ::std::collections::BTreeMap< 29 - ::jacquard_common::smol_str::SmolStr, 30 - ::jacquard_common::types::value::Data<'a>, 31 - >, 32 23 } 33 24 34 25 #[jacquard_derive::lexicon]
+8 -2
crates/jacquard-api/src/tools_ozone/setting.rs
··· 11 11 12 12 #[jacquard_derive::lexicon] 13 13 #[derive( 14 - serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, 14 + serde::Serialize, 15 + serde::Deserialize, 16 + Debug, 17 + Clone, 18 + PartialEq, 19 + Eq, 20 + jacquard_derive::IntoStatic 15 21 )] 16 22 #[serde(rename_all = "camelCase")] 17 23 pub struct Option<'a> { ··· 37 43 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 38 44 #[serde(borrow)] 39 45 pub value: jacquard_common::types::value::Data<'a>, 40 - } 46 + }
+2 -1
crates/jacquard-api/src/tools_ozone/setting/remove_options.rs
··· 41 41 Clone, 42 42 PartialEq, 43 43 Eq, 44 - jacquard_derive::IntoStatic 44 + jacquard_derive::IntoStatic, 45 + Default 45 46 )] 46 47 #[serde(rename_all = "camelCase")] 47 48 pub struct RemoveOptionsOutput<'a> {}
+1 -3
crates/jacquard-api/src/tools_ozone/signature.rs
··· 18 18 PartialEq, 19 19 Eq, 20 20 jacquard_derive::IntoStatic, 21 - bon::Builder 21 + Default 22 22 )] 23 23 #[serde(rename_all = "camelCase")] 24 24 pub struct SigDetail<'a> { 25 25 #[serde(borrow)] 26 - #[builder(into)] 27 26 pub property: jacquard_common::CowStr<'a>, 28 27 #[serde(borrow)] 29 - #[builder(into)] 30 28 pub value: jacquard_common::CowStr<'a>, 31 29 }
+2 -1
crates/jacquard-api/src/uk_skyblur/post/decrypt_by_cid.rs
··· 46 46 Clone, 47 47 PartialEq, 48 48 Eq, 49 - jacquard_derive::IntoStatic 49 + jacquard_derive::IntoStatic, 50 + Default 50 51 )] 51 52 #[serde(rename_all = "camelCase")] 52 53 pub struct DecryptByCidOutput<'a> {
+4 -13
crates/jacquard-api/src/uk_skyblur/post/encrypt.rs
··· 13 13 Clone, 14 14 PartialEq, 15 15 Eq, 16 - bon::Builder, 17 - jacquard_derive::IntoStatic 16 + jacquard_derive::IntoStatic, 17 + Default 18 18 )] 19 19 #[serde(rename_all = "camelCase")] 20 - #[builder(start_fn = new)] 21 20 pub struct Encrypt<'a> { 22 21 #[serde(borrow)] 23 - #[builder(into)] 24 22 pub body: jacquard_common::CowStr<'a>, 25 23 #[serde(borrow)] 26 - #[builder(into)] 27 24 pub password: jacquard_common::CowStr<'a>, 28 - #[serde(flatten)] 29 - #[serde(borrow)] 30 - #[builder(default)] 31 - pub extra_data: ::std::collections::BTreeMap< 32 - ::jacquard_common::smol_str::SmolStr, 33 - ::jacquard_common::types::value::Data<'a>, 34 - >, 35 25 } 36 26 37 27 /// Returns the encrypted result. ··· 43 33 Clone, 44 34 PartialEq, 45 35 Eq, 46 - jacquard_derive::IntoStatic 36 + jacquard_derive::IntoStatic, 37 + Default 47 38 )] 48 39 #[serde(rename_all = "camelCase")] 49 40 pub struct EncryptOutput<'a> {
+2 -1
crates/jacquard-api/src/uk_skyblur/post/get_post.rs
··· 44 44 Clone, 45 45 PartialEq, 46 46 Eq, 47 - jacquard_derive::IntoStatic 47 + jacquard_derive::IntoStatic, 48 + Default 48 49 )] 49 50 #[serde(rename_all = "camelCase")] 50 51 pub struct GetPostOutput<'a> {
+3 -7
crates/jacquard-api/src/win_tomo_x/pushat.rs
··· 38 38 PartialEq, 39 39 Eq, 40 40 jacquard_derive::IntoStatic, 41 - bon::Builder 41 + Default 42 42 )] 43 43 #[serde(rename_all = "camelCase")] 44 44 pub struct NotifyBody<'a> { 45 45 /// Body text of the notification. 46 46 #[serde(borrow)] 47 - #[builder(into)] 48 47 pub body: jacquard_common::CowStr<'a>, 49 48 /// The URI of the icon displayed in the notification. 50 49 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 - #[builder(into)] 52 50 #[serde(borrow)] 53 - pub icon: Option<jacquard_common::types::string::Uri<'a>>, 51 + pub icon: std::option::Option<jacquard_common::types::string::Uri<'a>>, 54 52 /// Experimental — do not use. The URI to open when the notification is clicked. 55 53 #[serde(skip_serializing_if = "std::option::Option::is_none")] 56 - #[builder(into)] 57 54 #[serde(borrow)] 58 - pub link: Option<jacquard_common::types::string::Uri<'a>>, 55 + pub link: std::option::Option<jacquard_common::types::string::Uri<'a>>, 59 56 /// Title text of the notification. 60 57 #[serde(borrow)] 61 - #[builder(into)] 62 58 pub title: jacquard_common::CowStr<'a>, 63 59 }
+2 -1
crates/jacquard-api/src/win_tomo_x/pushat/push_notify.rs
··· 41 41 Clone, 42 42 PartialEq, 43 43 Eq, 44 - jacquard_derive::IntoStatic 44 + jacquard_derive::IntoStatic, 45 + Default 45 46 )] 46 47 #[serde(rename_all = "camelCase")] 47 48 pub struct PushNotifyOutput<'a> {}
+2
crates/jacquard-common/Cargo.toml
··· 38 38 reqwest = { workspace = true, optional = true, features = ["charset", "http2", "json", "system-proxy", "gzip", "rustls-tls"] } 39 39 serde_ipld_dagcbor.workspace = true 40 40 signature = { version = "2", optional = true } 41 + tracing = { workspace = true, optional = true } 41 42 42 43 [features] 43 44 default = ["service-auth", "reqwest-client", "crypto"] ··· 47 48 crypto-p256 = ["crypto", "dep:p256", "p256/ecdsa"] 48 49 service-auth = ["crypto-k256", "crypto-p256", "dep:signature"] 49 50 reqwest-client = ["dep:reqwest"] 51 + tracing = ["dep:tracing"] 50 52 51 53 [dependencies.ed25519-dalek] 52 54 version = "2"
+1
crates/jacquard-common/src/xrpc.rs
··· 305 305 /// inspect the header for `error="invalid_token"` or `error="use_dpop_nonce"` and react 306 306 /// (refresh/retry). If the header is absent, the 401 body flows through to `Response` and 307 307 /// can be parsed/mapped to `AuthError` as appropriate. 308 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip(self, request), fields(nsid = R::NSID)))] 308 309 pub async fn send<R>(self, request: &R) -> XrpcResult<Response<<R as XrpcRequest>::Response>> 309 310 where 310 311 R: XrpcRequest + Send + Sync,
+2
crates/jacquard-identity/Cargo.toml
··· 14 14 15 15 [features] 16 16 dns = ["dep:hickory-resolver"] 17 + tracing = ["dep:tracing"] 17 18 18 19 [dependencies] 19 20 async-trait.workspace = true ··· 33 34 http.workspace = true 34 35 serde_html_form.workspace = true 35 36 urlencoding.workspace = true 37 + tracing = { workspace = true, optional = true }
+10
crates/jacquard-identity/src/lib.rs
··· 102 102 impl JacquardResolver { 103 103 /// Create a new instance of the default resolver with all options (except DNS) up front 104 104 pub fn new(http: reqwest::Client, opts: ResolverOptions) -> Self { 105 + #[cfg(feature = "tracing")] 106 + tracing::info!( 107 + public_fallback = opts.public_fallback_for_handle, 108 + validate_doc_id = opts.validate_doc_id, 109 + plc_source = ?opts.plc_source, 110 + "jacquard resolver created" 111 + ); 112 + 105 113 Self { 106 114 http, 107 115 opts, ··· 333 341 fn options(&self) -> &ResolverOptions { 334 342 &self.opts 335 343 } 344 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip(self), fields(handle = %handle)))] 336 345 async fn resolve_handle(&self, handle: &Handle<'_>) -> Result<Did<'static>, IdentityError> { 337 346 let host = handle.as_str(); 338 347 for step in &self.opts.handle_order { ··· 421 430 Err(IdentityError::InvalidWellKnown) 422 431 } 423 432 433 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip(self), fields(did = %did)))] 424 434 async fn resolve_did_doc(&self, did: &Did<'_>) -> Result<DidDocResponse, IdentityError> { 425 435 let s = did.as_str(); 426 436 for step in &self.opts.did_order {
+48 -3
crates/jacquard-lexicon/src/codegen/structs.rs
··· 21 21 /// Check if a type name conflicts with types referenced by bon::Builder macro. 22 22 /// bon::Builder generates code that uses unqualified `Option` and `Result`, 23 23 /// so structs with these names cause compilation errors. 24 - fn conflicts_with_builder_macro(type_name: &str) -> bool { 24 + pub(crate) fn conflicts_with_builder_macro(type_name: &str) -> bool { 25 25 matches!(type_name, "Option" | "Result") 26 + } 27 + 28 + /// Count the number of required fields in a lexicon object. 29 + /// Used to determine whether to generate builders or Default impls. 30 + pub(crate) fn count_required_fields(obj: &LexObject<'static>) -> usize { 31 + let required = obj.required.as_ref().map(|r| r.as_slice()).unwrap_or(&[]); 32 + required.len() 33 + } 34 + 35 + /// Check if a field property is a plain string that can default to empty. 36 + /// Returns true for bare CowStr fields (no format constraints). 37 + fn is_defaultable_string(prop: &LexObjectProperty<'static>) -> bool { 38 + matches!(prop, LexObjectProperty::String(s) if s.format.is_none()) 39 + } 40 + 41 + /// Check if all required fields in an object are defaultable strings. 42 + pub(crate) fn all_required_are_defaultable_strings(obj: &LexObject<'static>) -> bool { 43 + let required = obj.required.as_ref().map(|r| r.as_slice()).unwrap_or(&[]); 44 + 45 + if required.is_empty() { 46 + return false; // Handled separately by count check 47 + } 48 + 49 + required.iter().all(|field_name| { 50 + let field_name_str: &str = field_name.as_ref(); 51 + obj.properties.get(field_name_str) 52 + .map(is_defaultable_string) 53 + .unwrap_or(false) 54 + }) 26 55 } 27 56 28 57 impl<'c> CodeGenerator<'c> { ··· 199 228 200 229 // Objects always get a lifetime since they have the #[lexicon] attribute 201 230 // which adds extra_data: BTreeMap<..., Data<'a>> 202 - // Skip bon::Builder for types that conflict with the macro's unqualified type references 203 - let has_builder = !conflicts_with_builder_macro(&type_name); 231 + 232 + // Smart heuristics for builder generation: 233 + // - 0 required fields: Default instead of builder 234 + // - All required fields are bare strings: Default instead of builder 235 + // - 1+ required fields (not all strings): bon::Builder (but not if name conflicts) 236 + let required_count = count_required_fields(obj); 237 + let has_default = required_count == 0 || all_required_are_defaultable_strings(obj); 238 + let has_builder = required_count >= 1 && !has_default && !conflicts_with_builder_macro(&type_name); 204 239 205 240 let fields = self.generate_object_fields(nsid, &type_name, obj, has_builder)?; 206 241 let doc = self.generate_doc_comment(obj.description.as_ref()); ··· 210 245 #doc 211 246 #[jacquard_derive::lexicon] 212 247 #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, bon::Builder)] 248 + #[serde(rename_all = "camelCase")] 249 + pub struct #ident<'a> { 250 + #fields 251 + } 252 + } 253 + } else if has_default { 254 + quote! { 255 + #doc 256 + #[jacquard_derive::lexicon] 257 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, Default)] 213 258 #[serde(rename_all = "camelCase")] 214 259 pub struct #ident<'a> { 215 260 #fields
+66 -10
crates/jacquard-lexicon/src/codegen/xrpc.rs
··· 410 410 // Check if this is a binary body (no schema, just raw bytes) 411 411 let is_binary_body = body.schema.is_none(); 412 412 413 + // Determine if we should derive Default or bon::Builder 414 + // Binary bodies always get builder, schema-based inputs use heuristics 415 + let (has_default, has_builder) = if is_binary_body { 416 + (false, true) 417 + } else if let Some(crate::lexicon::LexXrpcBodySchema::Object(obj)) = &body.schema { 418 + use crate::codegen::structs::{count_required_fields, all_required_are_defaultable_strings, conflicts_with_builder_macro}; 419 + let required_count = count_required_fields(obj); 420 + let can_default = required_count == 0 || all_required_are_defaultable_strings(obj); 421 + let can_builder = required_count >= 1 && !can_default && !conflicts_with_builder_macro(type_base); 422 + (can_default, can_builder) 423 + } else { 424 + (false, false) 425 + }; 426 + 413 427 let fields = if let Some(schema) = &body.schema { 414 - self.generate_body_fields("", type_base, schema, true)? 428 + self.generate_body_fields("", type_base, schema, has_builder)? 415 429 } else { 416 430 // Binary body: just a bytes field 417 431 quote! { ··· 432 446 #fields 433 447 } 434 448 } 435 - } else { 436 - // Input structs with schemas: manually add extra_data field with #[builder(default)] 449 + } else if has_builder { 450 + // Input structs with schemas and builders: manually add extra_data field with #[builder(default)] 437 451 // for bon compatibility. The #[lexicon] macro will see it exists and skip adding it. 438 452 quote! { 439 453 #doc ··· 452 466 >, 453 467 } 454 468 } 469 + } else if has_default { 470 + quote! { 471 + #doc 472 + #[jacquard_derive::lexicon] 473 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, Default)] 474 + #[serde(rename_all = "camelCase")] 475 + pub struct #ident<'a> { 476 + #fields 477 + } 478 + } 479 + } else { 480 + quote! { 481 + #doc 482 + #[jacquard_derive::lexicon] 483 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic)] 484 + #[serde(rename_all = "camelCase")] 485 + pub struct #ident<'a> { 486 + #fields 487 + } 488 + } 455 489 }; 456 490 457 491 // Generate union types if schema is an Object ··· 509 543 510 544 let doc = self.generate_doc_comment(body.description.as_ref()); 511 545 546 + // Determine if we should derive Default 547 + // Check if schema is an Object and apply heuristics 548 + let has_default = if let Some(crate::lexicon::LexXrpcBodySchema::Object(obj)) = &body.schema { 549 + use crate::codegen::structs::{count_required_fields, all_required_are_defaultable_strings}; 550 + let required_count = count_required_fields(obj); 551 + required_count == 0 || all_required_are_defaultable_strings(obj) 552 + } else { 553 + false 554 + }; 555 + 512 556 // Output structs always get a lifetime since they have the #[lexicon] attribute 513 557 // which adds extra_data: BTreeMap<..., Data<'a>> 514 - let struct_def = quote! { 515 - #doc 516 - #[jacquard_derive::lexicon] 517 - #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic)] 518 - #[serde(rename_all = "camelCase")] 519 - pub struct #ident<'a> { 520 - #fields 558 + let struct_def = if has_default { 559 + quote! { 560 + #doc 561 + #[jacquard_derive::lexicon] 562 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, Default)] 563 + #[serde(rename_all = "camelCase")] 564 + pub struct #ident<'a> { 565 + #fields 566 + } 567 + } 568 + } else { 569 + quote! { 570 + #doc 571 + #[jacquard_derive::lexicon] 572 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic)] 573 + #[serde(rename_all = "camelCase")] 574 + pub struct #ident<'a> { 575 + #fields 576 + } 521 577 } 522 578 }; 523 579
+2
crates/jacquard-oauth/Cargo.toml
··· 40 40 trait-variant.workspace = true 41 41 webbrowser = { version = "0.8", optional = true } 42 42 rouille = { version = "3.6.2", optional = true } 43 + tracing = { workspace = true, optional = true } 43 44 44 45 [features] 45 46 default = [] 46 47 loopback = ["dep:rouille"] 47 48 browser-open = ["dep:webbrowser"] 49 + tracing = ["dep:tracing"]
+11
crates/jacquard-oauth/src/client.rs
··· 93 93 S: ClientAuthStore, 94 94 { 95 95 pub fn new_from_resolver(store: S, client: T, client_data: ClientData<'static>) -> Self { 96 + #[cfg(feature = "tracing")] 97 + tracing::info!( 98 + redirect_uris = ?client_data.config.redirect_uris, 99 + scopes = ?client_data.config.scopes, 100 + has_keyset = client_data.keyset.is_some(), 101 + "oauth client created" 102 + ); 103 + 96 104 let client = Arc::new(client); 97 105 let registry = Arc::new(SessionRegistry::new(store, client.clone(), client_data)); 98 106 Self { registry, client } ··· 125 133 .map(|keyset| keyset.public_jwks()) 126 134 .unwrap_or_default() 127 135 } 136 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip(self, input), fields(input = input.as_ref())))] 128 137 pub async fn start_auth( 129 138 &self, 130 139 input: impl AsRef<str>, ··· 168 177 .unwrap()) 169 178 } 170 179 180 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "info", skip_all, fields(state = params.state.as_ref().map(|s| s.as_ref()))))] 171 181 pub async fn callback(&self, params: CallbackParams<'_>) -> Result<OAuthSession<T, S>> { 172 182 let Some(state_key) = params.state else { 173 183 return Err(CallbackError::MissingState.into()); ··· 372 382 S: ClientAuthStore + Send + Sync + 'static, 373 383 T: OAuthResolver + DpopExt + Send + Sync + 'static, 374 384 { 385 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip_all))] 375 386 pub async fn refresh(&self) -> Result<AuthorizationToken<'_>> { 376 387 // Read identifiers without holding the lock across await 377 388 let (did, sid) = {
+4 -1
crates/jacquard-oauth/src/request.rs
··· 180 180 } 181 181 } 182 182 183 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip_all, fields(login_hint = login_hint.as_ref().map(|h| h.as_ref()))))] 183 184 pub async fn par<'r, T: OAuthResolver + DpopExt + Send + Sync + 'static>( 184 185 client: &T, 185 186 login_hint: Option<CowStr<'r>>, ··· 207 208 login_hint: login_hint, 208 209 prompt: prompt.map(CowStr::from), 209 210 }; 210 - println!("Parameters: {:?}", parameters); 211 211 if metadata 212 212 .server_metadata 213 213 .pushed_authorization_request_endpoint ··· 255 255 } 256 256 } 257 257 258 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip_all, fields(did = %session_data.account_did)))] 258 259 pub async fn refresh<'r, T>( 259 260 client: &T, 260 261 mut session_data: ClientSessionData<'r>, ··· 313 314 Ok(session_data) 314 315 } 315 316 317 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip_all))] 316 318 pub async fn exchange_code<'r, T, D>( 317 319 client: &T, 318 320 data_source: &'r mut D, ··· 371 373 }) 372 374 } 373 375 376 + #[cfg_attr(feature = "tracing", tracing::instrument(level = "debug", skip_all))] 374 377 pub async fn revoke<'r, T, D>( 375 378 client: &T, 376 379 data_source: &'r mut D,
+4
crates/jacquard/Cargo.toml
··· 25 25 dns = ["jacquard-identity/dns"] 26 26 # Propagate loopback to oauth (server + browser helper) 27 27 loopback = ["jacquard-oauth/loopback", "jacquard-oauth/browser-open"] 28 + # Enable tracing instrumentation 29 + tracing = ["dep:tracing", "jacquard-common/tracing", "jacquard-oauth/tracing", "jacquard-identity/tracing"] 28 30 29 31 30 32 [[example]] ··· 66 68 [[example]] 67 69 name = "update_preferences" 68 70 path = "../../examples/update_preferences.rs" 71 + required-features = ["api_bluesky"] 69 72 70 73 [dependencies] 71 74 jacquard-api = { version = "0.5", path = "../jacquard-api" } ··· 92 95 jose-jwk = { workspace = true, features = ["p256"] } 93 96 p256 = { workspace = true, features = ["ecdsa"] } 94 97 rand_core.workspace = true 98 + tracing = { workspace = true, optional = true } 95 99 96 100 [dev-dependencies] 97 101 clap.workspace = true
+18
crates/jacquard/src/client.rs
··· 408 408 R: Collection + serde::Serialize, 409 409 { 410 410 async move { 411 + #[cfg(feature = "tracing")] 412 + let _span = tracing::debug_span!("create_record", collection = %R::nsid()).entered(); 413 + 411 414 use jacquard_api::com_atproto::repo::create_record::CreateRecord; 412 415 use jacquard_common::types::ident::AtIdentifier; 413 416 use jacquard_common::types::value::to_data; ··· 473 476 R: Collection, 474 477 { 475 478 async move { 479 + #[cfg(feature = "tracing")] 480 + let _span = tracing::debug_span!("get_record", collection = %R::nsid(), uri = %uri).entered(); 481 + 476 482 // Validate that URI's collection matches the expected type 477 483 if let Some(uri_collection) = uri.collection() { 478 484 if uri_collection.as_str() != R::nsid().as_str() { ··· 568 574 R: for<'a> From<<<R as Collection>::Record as XrpcResp>::Output<'a>>, 569 575 { 570 576 async move { 577 + #[cfg(feature = "tracing")] 578 + let _span = tracing::debug_span!("update_record", collection = %R::nsid(), uri = %uri).entered(); 579 + 571 580 // Fetch the record - Response<R::Record> where R::Record::Output<'de> = R<'de> 572 581 let response = self.get_record::<R>(uri.clone()).await?; 573 582 ··· 613 622 R: Collection, 614 623 { 615 624 async { 625 + #[cfg(feature = "tracing")] 626 + let _span = tracing::debug_span!("delete_record", collection = %R::nsid()).entered(); 627 + 616 628 use jacquard_api::com_atproto::repo::delete_record::DeleteRecord; 617 629 use jacquard_common::types::ident::AtIdentifier; 618 630 ··· 650 662 R: Collection + serde::Serialize, 651 663 { 652 664 async move { 665 + #[cfg(feature = "tracing")] 666 + let _span = tracing::debug_span!("put_record", collection = %R::nsid()).entered(); 667 + 653 668 use jacquard_api::com_atproto::repo::put_record::PutRecord; 654 669 use jacquard_common::types::ident::AtIdentifier; 655 670 use jacquard_common::types::value::to_data; ··· 707 722 mime_type: MimeType<'_>, 708 723 ) -> impl std::future::Future<Output = Result<Blob<'static>, AgentError>> { 709 724 async move { 725 + #[cfg(feature = "tracing")] 726 + let _span = tracing::debug_span!("upload_blob", mime_type = %mime_type).entered(); 727 + 710 728 use http::header::CONTENT_TYPE; 711 729 use jacquard_api::com_atproto::repo::upload_blob::UploadBlob; 712 730
+6
crates/jacquard/src/client/credential_session.rs
··· 167 167 where 168 168 S: Any + 'static, 169 169 { 170 + #[cfg(feature = "tracing")] 171 + let _span = tracing::info_span!("credential_session_login", identifier = %identifier).entered(); 172 + 170 173 // Resolve PDS base 171 174 let pds = if identifier.as_ref().starts_with("http://") 172 175 || identifier.as_ref().starts_with("https://") ··· 268 271 where 269 272 S: Any + 'static, 270 273 { 274 + #[cfg(feature = "tracing")] 275 + let _span = tracing::info_span!("credential_session_restore", did = %did, session_id = %session_id).entered(); 276 + 271 277 let key = (did.clone().into_static(), session_id.clone().into_static()); 272 278 let Some(sess) = self.store.get(&key).await else { 273 279 return Err(ClientError::Auth(AuthError::NotAuthenticated));
+2 -1
crates/jacquard/src/client/vec_update.rs
··· 1 1 /// Bluesky actor preferences implementation 2 + #[cfg(feature = "api_bluesky")] 2 3 pub mod preferences; 3 - 4 + #[cfg(feature = "api_bluesky")] 4 5 pub use preferences::PreferencesUpdate; 5 6 6 7 use jacquard_common::IntoStatic;
+1 -1
justfile
··· 51 51 cargo run -p jacquard --example {{NAME}} -- {{ARGS}} 52 52 elif cargo metadata --format-version=1 --no-deps | \ 53 53 jq -e '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example" and .name == "{{NAME}}")' > /dev/null; then 54 - cargo run -p jacquard-axum --example {{NAME}} -- {{ARGS}} 54 + cargo run -p jacquard-axum --example {{NAME}} --features api_bluesky -- {{ARGS}} 55 55 else 56 56 echo "Example '{{NAME}}' not found." 57 57 echo ""