atproto blogging
at main 784 lines 40 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: sh.weaver.notebook.colourScheme 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8/// A colour palette for notebook theming 9#[jacquard_derive::lexicon] 10#[derive( 11 serde::Serialize, 12 serde::Deserialize, 13 Debug, 14 Clone, 15 PartialEq, 16 Eq, 17 jacquard_derive::IntoStatic 18)] 19#[serde(rename_all = "camelCase")] 20pub struct ColourScheme<'a> { 21 #[serde(borrow)] 22 pub colours: ColourSchemeColours<'a>, 23 /// Human-readable name for the colour scheme 24 #[serde(borrow)] 25 pub name: jacquard_common::CowStr<'a>, 26 /// Whether this is a dark or light colour scheme 27 #[serde(borrow)] 28 pub variant: jacquard_common::CowStr<'a>, 29} 30 31pub mod colour_scheme_state { 32 33 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset}; 34 #[allow(unused)] 35 use ::core::marker::PhantomData; 36 mod sealed { 37 pub trait Sealed {} 38 } 39 /// State trait tracking which required fields have been set 40 pub trait State: sealed::Sealed { 41 type Colours; 42 type Name; 43 type Variant; 44 } 45 /// Empty state - all required fields are unset 46 pub struct Empty(()); 47 impl sealed::Sealed for Empty {} 48 impl State for Empty { 49 type Colours = Unset; 50 type Name = Unset; 51 type Variant = Unset; 52 } 53 ///State transition - sets the `colours` field to Set 54 pub struct SetColours<S: State = Empty>(PhantomData<fn() -> S>); 55 impl<S: State> sealed::Sealed for SetColours<S> {} 56 impl<S: State> State for SetColours<S> { 57 type Colours = Set<members::colours>; 58 type Name = S::Name; 59 type Variant = S::Variant; 60 } 61 ///State transition - sets the `name` field to Set 62 pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>); 63 impl<S: State> sealed::Sealed for SetName<S> {} 64 impl<S: State> State for SetName<S> { 65 type Colours = S::Colours; 66 type Name = Set<members::name>; 67 type Variant = S::Variant; 68 } 69 ///State transition - sets the `variant` field to Set 70 pub struct SetVariant<S: State = Empty>(PhantomData<fn() -> S>); 71 impl<S: State> sealed::Sealed for SetVariant<S> {} 72 impl<S: State> State for SetVariant<S> { 73 type Colours = S::Colours; 74 type Name = S::Name; 75 type Variant = Set<members::variant>; 76 } 77 /// Marker types for field names 78 #[allow(non_camel_case_types)] 79 pub mod members { 80 ///Marker type for the `colours` field 81 pub struct colours(()); 82 ///Marker type for the `name` field 83 pub struct name(()); 84 ///Marker type for the `variant` field 85 pub struct variant(()); 86 } 87} 88 89/// Builder for constructing an instance of this type 90pub struct ColourSchemeBuilder<'a, S: colour_scheme_state::State> { 91 _phantom_state: ::core::marker::PhantomData<fn() -> S>, 92 __unsafe_private_named: ( 93 ::core::option::Option<ColourSchemeColours<'a>>, 94 ::core::option::Option<jacquard_common::CowStr<'a>>, 95 ::core::option::Option<jacquard_common::CowStr<'a>>, 96 ), 97 _phantom: ::core::marker::PhantomData<&'a ()>, 98} 99 100impl<'a> ColourScheme<'a> { 101 /// Create a new builder for this type 102 pub fn new() -> ColourSchemeBuilder<'a, colour_scheme_state::Empty> { 103 ColourSchemeBuilder::new() 104 } 105} 106 107impl<'a> ColourSchemeBuilder<'a, colour_scheme_state::Empty> { 108 /// Create a new builder with all fields unset 109 pub fn new() -> Self { 110 ColourSchemeBuilder { 111 _phantom_state: ::core::marker::PhantomData, 112 __unsafe_private_named: (None, None, None), 113 _phantom: ::core::marker::PhantomData, 114 } 115 } 116} 117 118impl<'a, S> ColourSchemeBuilder<'a, S> 119where 120 S: colour_scheme_state::State, 121 S::Colours: colour_scheme_state::IsUnset, 122{ 123 /// Set the `colours` field (required) 124 pub fn colours( 125 mut self, 126 value: impl Into<ColourSchemeColours<'a>>, 127 ) -> ColourSchemeBuilder<'a, colour_scheme_state::SetColours<S>> { 128 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into()); 129 ColourSchemeBuilder { 130 _phantom_state: ::core::marker::PhantomData, 131 __unsafe_private_named: self.__unsafe_private_named, 132 _phantom: ::core::marker::PhantomData, 133 } 134 } 135} 136 137impl<'a, S> ColourSchemeBuilder<'a, S> 138where 139 S: colour_scheme_state::State, 140 S::Name: colour_scheme_state::IsUnset, 141{ 142 /// Set the `name` field (required) 143 pub fn name( 144 mut self, 145 value: impl Into<jacquard_common::CowStr<'a>>, 146 ) -> ColourSchemeBuilder<'a, colour_scheme_state::SetName<S>> { 147 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into()); 148 ColourSchemeBuilder { 149 _phantom_state: ::core::marker::PhantomData, 150 __unsafe_private_named: self.__unsafe_private_named, 151 _phantom: ::core::marker::PhantomData, 152 } 153 } 154} 155 156impl<'a, S> ColourSchemeBuilder<'a, S> 157where 158 S: colour_scheme_state::State, 159 S::Variant: colour_scheme_state::IsUnset, 160{ 161 /// Set the `variant` field (required) 162 pub fn variant( 163 mut self, 164 value: impl Into<jacquard_common::CowStr<'a>>, 165 ) -> ColourSchemeBuilder<'a, colour_scheme_state::SetVariant<S>> { 166 self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into()); 167 ColourSchemeBuilder { 168 _phantom_state: ::core::marker::PhantomData, 169 __unsafe_private_named: self.__unsafe_private_named, 170 _phantom: ::core::marker::PhantomData, 171 } 172 } 173} 174 175impl<'a, S> ColourSchemeBuilder<'a, S> 176where 177 S: colour_scheme_state::State, 178 S::Colours: colour_scheme_state::IsSet, 179 S::Name: colour_scheme_state::IsSet, 180 S::Variant: colour_scheme_state::IsSet, 181{ 182 /// Build the final struct 183 pub fn build(self) -> ColourScheme<'a> { 184 ColourScheme { 185 colours: self.__unsafe_private_named.0.unwrap(), 186 name: self.__unsafe_private_named.1.unwrap(), 187 variant: self.__unsafe_private_named.2.unwrap(), 188 extra_data: Default::default(), 189 } 190 } 191 /// Build the final struct with custom extra_data 192 pub fn build_with_data( 193 self, 194 extra_data: std::collections::BTreeMap< 195 jacquard_common::smol_str::SmolStr, 196 jacquard_common::types::value::Data<'a>, 197 >, 198 ) -> ColourScheme<'a> { 199 ColourScheme { 200 colours: self.__unsafe_private_named.0.unwrap(), 201 name: self.__unsafe_private_named.1.unwrap(), 202 variant: self.__unsafe_private_named.2.unwrap(), 203 extra_data: Some(extra_data), 204 } 205 } 206} 207 208impl<'a> ColourScheme<'a> { 209 pub fn uri( 210 uri: impl Into<jacquard_common::CowStr<'a>>, 211 ) -> Result< 212 jacquard_common::types::uri::RecordUri<'a, ColourSchemeRecord>, 213 jacquard_common::types::uri::UriError, 214 > { 215 jacquard_common::types::uri::RecordUri::try_from_uri( 216 jacquard_common::types::string::AtUri::new_cow(uri.into())?, 217 ) 218 } 219} 220 221#[jacquard_derive::lexicon] 222#[derive( 223 serde::Serialize, 224 serde::Deserialize, 225 Debug, 226 Clone, 227 PartialEq, 228 Eq, 229 jacquard_derive::IntoStatic, 230 Default 231)] 232#[serde(rename_all = "camelCase")] 233pub struct ColourSchemeColours<'a> { 234 /// Primary background for page/frame 235 #[serde(borrow)] 236 pub base: jacquard_common::CowStr<'a>, 237 /// Border/divider colour 238 #[serde(borrow)] 239 pub border: jacquard_common::CowStr<'a>, 240 /// Emphasized text (bold, important) 241 #[serde(borrow)] 242 pub emphasis: jacquard_common::CowStr<'a>, 243 /// Error state colour 244 #[serde(borrow)] 245 pub error: jacquard_common::CowStr<'a>, 246 /// Selection/highlight colour 247 #[serde(borrow)] 248 pub highlight: jacquard_common::CowStr<'a>, 249 /// Hyperlink colour 250 #[serde(borrow)] 251 pub link: jacquard_common::CowStr<'a>, 252 /// De-emphasized text (disabled, metadata) 253 #[serde(borrow)] 254 pub muted: jacquard_common::CowStr<'a>, 255 /// Tertiary background for popovers/dialogs 256 #[serde(borrow)] 257 pub overlay: jacquard_common::CowStr<'a>, 258 /// Primary brand/accent colour 259 #[serde(borrow)] 260 pub primary: jacquard_common::CowStr<'a>, 261 /// Secondary accent colour 262 #[serde(borrow)] 263 pub secondary: jacquard_common::CowStr<'a>, 264 /// Medium emphasis text (comments, labels) 265 #[serde(borrow)] 266 pub subtle: jacquard_common::CowStr<'a>, 267 /// Success state colour 268 #[serde(borrow)] 269 pub success: jacquard_common::CowStr<'a>, 270 /// Secondary background for panels/cards 271 #[serde(borrow)] 272 pub surface: jacquard_common::CowStr<'a>, 273 /// Tertiary accent colour 274 #[serde(borrow)] 275 pub tertiary: jacquard_common::CowStr<'a>, 276 /// Primary readable text colour 277 #[serde(borrow)] 278 pub text: jacquard_common::CowStr<'a>, 279 /// Warning state colour 280 #[serde(borrow)] 281 pub warning: jacquard_common::CowStr<'a>, 282} 283 284fn lexicon_doc_sh_weaver_notebook_colourScheme() -> ::jacquard_lexicon::lexicon::LexiconDoc< 285 'static, 286> { 287 ::jacquard_lexicon::lexicon::LexiconDoc { 288 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1, 289 id: ::jacquard_common::CowStr::new_static("sh.weaver.notebook.colourScheme"), 290 revision: None, 291 description: None, 292 defs: { 293 let mut map = ::alloc::collections::BTreeMap::new(); 294 map.insert( 295 ::jacquard_common::smol_str::SmolStr::new_static("main"), 296 ::jacquard_lexicon::lexicon::LexUserType::Record(::jacquard_lexicon::lexicon::LexRecord { 297 description: Some( 298 ::jacquard_common::CowStr::new_static( 299 "A colour palette for notebook theming", 300 ), 301 ), 302 key: Some(::jacquard_common::CowStr::new_static("tid")), 303 record: ::jacquard_lexicon::lexicon::LexRecordRecord::Object(::jacquard_lexicon::lexicon::LexObject { 304 description: None, 305 required: Some( 306 vec![ 307 ::jacquard_common::smol_str::SmolStr::new_static("name"), 308 ::jacquard_common::smol_str::SmolStr::new_static("variant"), 309 ::jacquard_common::smol_str::SmolStr::new_static("colours") 310 ], 311 ), 312 nullable: None, 313 properties: { 314 #[allow(unused_mut)] 315 let mut map = ::alloc::collections::BTreeMap::new(); 316 map.insert( 317 ::jacquard_common::smol_str::SmolStr::new_static("colours"), 318 ::jacquard_lexicon::lexicon::LexObjectProperty::Object(::jacquard_lexicon::lexicon::LexObject { 319 description: None, 320 required: Some( 321 vec![ 322 ::jacquard_common::smol_str::SmolStr::new_static("base"), 323 ::jacquard_common::smol_str::SmolStr::new_static("surface"), 324 ::jacquard_common::smol_str::SmolStr::new_static("overlay"), 325 ::jacquard_common::smol_str::SmolStr::new_static("text"), 326 ::jacquard_common::smol_str::SmolStr::new_static("muted"), 327 ::jacquard_common::smol_str::SmolStr::new_static("subtle"), 328 ::jacquard_common::smol_str::SmolStr::new_static("emphasis"), 329 ::jacquard_common::smol_str::SmolStr::new_static("primary"), 330 ::jacquard_common::smol_str::SmolStr::new_static("secondary"), 331 ::jacquard_common::smol_str::SmolStr::new_static("tertiary"), 332 ::jacquard_common::smol_str::SmolStr::new_static("error"), 333 ::jacquard_common::smol_str::SmolStr::new_static("warning"), 334 ::jacquard_common::smol_str::SmolStr::new_static("success"), 335 ::jacquard_common::smol_str::SmolStr::new_static("border"), 336 ::jacquard_common::smol_str::SmolStr::new_static("link"), 337 ::jacquard_common::smol_str::SmolStr::new_static("highlight") 338 ], 339 ), 340 nullable: None, 341 properties: { 342 #[allow(unused_mut)] 343 let mut map = ::alloc::collections::BTreeMap::new(); 344 map.insert( 345 ::jacquard_common::smol_str::SmolStr::new_static("base"), 346 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 347 description: Some( 348 ::jacquard_common::CowStr::new_static( 349 "Primary background for page/frame", 350 ), 351 ), 352 format: None, 353 default: None, 354 min_length: None, 355 max_length: None, 356 min_graphemes: None, 357 max_graphemes: None, 358 r#enum: None, 359 r#const: None, 360 known_values: None, 361 }), 362 ); 363 map.insert( 364 ::jacquard_common::smol_str::SmolStr::new_static("border"), 365 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 366 description: Some( 367 ::jacquard_common::CowStr::new_static( 368 "Border/divider colour", 369 ), 370 ), 371 format: None, 372 default: None, 373 min_length: None, 374 max_length: None, 375 min_graphemes: None, 376 max_graphemes: None, 377 r#enum: None, 378 r#const: None, 379 known_values: None, 380 }), 381 ); 382 map.insert( 383 ::jacquard_common::smol_str::SmolStr::new_static( 384 "emphasis", 385 ), 386 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 387 description: Some( 388 ::jacquard_common::CowStr::new_static( 389 "Emphasized text (bold, important)", 390 ), 391 ), 392 format: None, 393 default: None, 394 min_length: None, 395 max_length: None, 396 min_graphemes: None, 397 max_graphemes: None, 398 r#enum: None, 399 r#const: None, 400 known_values: None, 401 }), 402 ); 403 map.insert( 404 ::jacquard_common::smol_str::SmolStr::new_static("error"), 405 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 406 description: Some( 407 ::jacquard_common::CowStr::new_static("Error state colour"), 408 ), 409 format: None, 410 default: None, 411 min_length: None, 412 max_length: None, 413 min_graphemes: None, 414 max_graphemes: None, 415 r#enum: None, 416 r#const: None, 417 known_values: None, 418 }), 419 ); 420 map.insert( 421 ::jacquard_common::smol_str::SmolStr::new_static( 422 "highlight", 423 ), 424 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 425 description: Some( 426 ::jacquard_common::CowStr::new_static( 427 "Selection/highlight colour", 428 ), 429 ), 430 format: None, 431 default: None, 432 min_length: None, 433 max_length: None, 434 min_graphemes: None, 435 max_graphemes: None, 436 r#enum: None, 437 r#const: None, 438 known_values: None, 439 }), 440 ); 441 map.insert( 442 ::jacquard_common::smol_str::SmolStr::new_static("link"), 443 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 444 description: Some( 445 ::jacquard_common::CowStr::new_static("Hyperlink colour"), 446 ), 447 format: None, 448 default: None, 449 min_length: None, 450 max_length: None, 451 min_graphemes: None, 452 max_graphemes: None, 453 r#enum: None, 454 r#const: None, 455 known_values: None, 456 }), 457 ); 458 map.insert( 459 ::jacquard_common::smol_str::SmolStr::new_static("muted"), 460 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 461 description: Some( 462 ::jacquard_common::CowStr::new_static( 463 "De-emphasized text (disabled, metadata)", 464 ), 465 ), 466 format: None, 467 default: None, 468 min_length: None, 469 max_length: None, 470 min_graphemes: None, 471 max_graphemes: None, 472 r#enum: None, 473 r#const: None, 474 known_values: None, 475 }), 476 ); 477 map.insert( 478 ::jacquard_common::smol_str::SmolStr::new_static("overlay"), 479 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 480 description: Some( 481 ::jacquard_common::CowStr::new_static( 482 "Tertiary background for popovers/dialogs", 483 ), 484 ), 485 format: None, 486 default: None, 487 min_length: None, 488 max_length: None, 489 min_graphemes: None, 490 max_graphemes: None, 491 r#enum: None, 492 r#const: None, 493 known_values: None, 494 }), 495 ); 496 map.insert( 497 ::jacquard_common::smol_str::SmolStr::new_static("primary"), 498 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 499 description: Some( 500 ::jacquard_common::CowStr::new_static( 501 "Primary brand/accent colour", 502 ), 503 ), 504 format: None, 505 default: None, 506 min_length: None, 507 max_length: None, 508 min_graphemes: None, 509 max_graphemes: None, 510 r#enum: None, 511 r#const: None, 512 known_values: None, 513 }), 514 ); 515 map.insert( 516 ::jacquard_common::smol_str::SmolStr::new_static( 517 "secondary", 518 ), 519 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 520 description: Some( 521 ::jacquard_common::CowStr::new_static( 522 "Secondary accent colour", 523 ), 524 ), 525 format: None, 526 default: None, 527 min_length: None, 528 max_length: None, 529 min_graphemes: None, 530 max_graphemes: None, 531 r#enum: None, 532 r#const: None, 533 known_values: None, 534 }), 535 ); 536 map.insert( 537 ::jacquard_common::smol_str::SmolStr::new_static("subtle"), 538 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 539 description: Some( 540 ::jacquard_common::CowStr::new_static( 541 "Medium emphasis text (comments, labels)", 542 ), 543 ), 544 format: None, 545 default: None, 546 min_length: None, 547 max_length: None, 548 min_graphemes: None, 549 max_graphemes: None, 550 r#enum: None, 551 r#const: None, 552 known_values: None, 553 }), 554 ); 555 map.insert( 556 ::jacquard_common::smol_str::SmolStr::new_static("success"), 557 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 558 description: Some( 559 ::jacquard_common::CowStr::new_static( 560 "Success state colour", 561 ), 562 ), 563 format: None, 564 default: None, 565 min_length: None, 566 max_length: None, 567 min_graphemes: None, 568 max_graphemes: None, 569 r#enum: None, 570 r#const: None, 571 known_values: None, 572 }), 573 ); 574 map.insert( 575 ::jacquard_common::smol_str::SmolStr::new_static("surface"), 576 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 577 description: Some( 578 ::jacquard_common::CowStr::new_static( 579 "Secondary background for panels/cards", 580 ), 581 ), 582 format: None, 583 default: None, 584 min_length: None, 585 max_length: None, 586 min_graphemes: None, 587 max_graphemes: None, 588 r#enum: None, 589 r#const: None, 590 known_values: None, 591 }), 592 ); 593 map.insert( 594 ::jacquard_common::smol_str::SmolStr::new_static( 595 "tertiary", 596 ), 597 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 598 description: Some( 599 ::jacquard_common::CowStr::new_static( 600 "Tertiary accent colour", 601 ), 602 ), 603 format: None, 604 default: None, 605 min_length: None, 606 max_length: None, 607 min_graphemes: None, 608 max_graphemes: None, 609 r#enum: None, 610 r#const: None, 611 known_values: None, 612 }), 613 ); 614 map.insert( 615 ::jacquard_common::smol_str::SmolStr::new_static("text"), 616 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 617 description: Some( 618 ::jacquard_common::CowStr::new_static( 619 "Primary readable text colour", 620 ), 621 ), 622 format: None, 623 default: None, 624 min_length: None, 625 max_length: None, 626 min_graphemes: None, 627 max_graphemes: None, 628 r#enum: None, 629 r#const: None, 630 known_values: None, 631 }), 632 ); 633 map.insert( 634 ::jacquard_common::smol_str::SmolStr::new_static("warning"), 635 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 636 description: Some( 637 ::jacquard_common::CowStr::new_static( 638 "Warning state colour", 639 ), 640 ), 641 format: None, 642 default: None, 643 min_length: None, 644 max_length: None, 645 min_graphemes: None, 646 max_graphemes: None, 647 r#enum: None, 648 r#const: None, 649 known_values: None, 650 }), 651 ); 652 map 653 }, 654 }), 655 ); 656 map.insert( 657 ::jacquard_common::smol_str::SmolStr::new_static("name"), 658 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 659 description: Some( 660 ::jacquard_common::CowStr::new_static( 661 "Human-readable name for the colour scheme", 662 ), 663 ), 664 format: None, 665 default: None, 666 min_length: None, 667 max_length: None, 668 min_graphemes: None, 669 max_graphemes: None, 670 r#enum: None, 671 r#const: None, 672 known_values: None, 673 }), 674 ); 675 map.insert( 676 ::jacquard_common::smol_str::SmolStr::new_static("variant"), 677 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { 678 description: Some( 679 ::jacquard_common::CowStr::new_static( 680 "Whether this is a dark or light colour scheme", 681 ), 682 ), 683 format: None, 684 default: None, 685 min_length: None, 686 max_length: None, 687 min_graphemes: None, 688 max_graphemes: None, 689 r#enum: None, 690 r#const: None, 691 known_values: None, 692 }), 693 ); 694 map 695 }, 696 }), 697 }), 698 ); 699 map 700 }, 701 } 702} 703 704impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ColourSchemeColours<'a> { 705 fn nsid() -> &'static str { 706 "sh.weaver.notebook.colourScheme" 707 } 708 fn def_name() -> &'static str { 709 "ColourSchemeColours" 710 } 711 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> { 712 lexicon_doc_sh_weaver_notebook_colourScheme() 713 } 714 fn validate( 715 &self, 716 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> { 717 Ok(()) 718 } 719} 720 721/// Typed wrapper for GetRecord response with this collection's record type. 722#[derive( 723 serde::Serialize, 724 serde::Deserialize, 725 Debug, 726 Clone, 727 PartialEq, 728 Eq, 729 jacquard_derive::IntoStatic 730)] 731#[serde(rename_all = "camelCase")] 732pub struct ColourSchemeGetRecordOutput<'a> { 733 #[serde(skip_serializing_if = "std::option::Option::is_none")] 734 #[serde(borrow)] 735 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 736 #[serde(borrow)] 737 pub uri: jacquard_common::types::string::AtUri<'a>, 738 #[serde(borrow)] 739 pub value: ColourScheme<'a>, 740} 741 742impl From<ColourSchemeGetRecordOutput<'_>> for ColourScheme<'_> { 743 fn from(output: ColourSchemeGetRecordOutput<'_>) -> Self { 744 use jacquard_common::IntoStatic; 745 output.value.into_static() 746 } 747} 748 749impl jacquard_common::types::collection::Collection for ColourScheme<'_> { 750 const NSID: &'static str = "sh.weaver.notebook.colourScheme"; 751 type Record = ColourSchemeRecord; 752} 753 754/// Marker type for deserializing records from this collection. 755#[derive(Debug, serde::Serialize, serde::Deserialize)] 756pub struct ColourSchemeRecord; 757impl jacquard_common::xrpc::XrpcResp for ColourSchemeRecord { 758 const NSID: &'static str = "sh.weaver.notebook.colourScheme"; 759 const ENCODING: &'static str = "application/json"; 760 type Output<'de> = ColourSchemeGetRecordOutput<'de>; 761 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 762} 763 764impl jacquard_common::types::collection::Collection for ColourSchemeRecord { 765 const NSID: &'static str = "sh.weaver.notebook.colourScheme"; 766 type Record = ColourSchemeRecord; 767} 768 769impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ColourScheme<'a> { 770 fn nsid() -> &'static str { 771 "sh.weaver.notebook.colourScheme" 772 } 773 fn def_name() -> &'static str { 774 "main" 775 } 776 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> { 777 lexicon_doc_sh_weaver_notebook_colourScheme() 778 } 779 fn validate( 780 &self, 781 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> { 782 Ok(()) 783 } 784}