atproto blogging
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}