1pub mod accept_contribution;
10pub mod actor;
11pub mod auth_admin;
12pub mod auth_basic;
13pub mod auth_contributions;
14pub mod auth_custom_feeds;
15pub mod auth_game_browsing;
16pub mod auth_game_interactions;
17pub mod auth_games_catalog;
18pub mod auth_games_org;
19pub mod auth_profiles;
20pub mod auth_studio;
21pub mod claim;
22pub mod claim_review;
23pub mod collection;
24pub mod contribution;
25pub mod contribution_patch;
26pub mod contribution_review;
27pub mod contribution_verification;
28pub mod create_claim;
29pub mod create_contribution;
30pub mod create_game;
31pub mod create_list;
32pub mod engine;
33pub mod feed;
34pub mod game;
35pub mod get_claim;
36pub mod get_contribution;
37pub mod get_contribution_stats;
38pub mod get_game;
39pub mod get_game_count;
40pub mod get_list_count;
41pub mod get_popular_games;
42pub mod get_profile;
43pub mod get_review_count;
44pub mod get_reviews;
45pub mod get_stats;
46pub mod get_user_lists;
47pub mod graph;
48pub mod list_claims;
49pub mod list_contributions;
50pub mod list_games;
51pub mod list_org_games;
52pub mod migrate_claim;
53pub mod org;
54pub mod platform;
55pub mod platform_family;
56pub mod put_game;
57pub mod put_popularity;
58pub mod redirect;
59pub mod refresh_caches;
60pub mod review_claim;
61pub mod review_contribution;
62pub mod richtext;
63pub mod search;
64pub mod search_profiles_typeahead;
65pub mod search_slugs;
66pub mod slug;
67pub mod toggle_list_item;
68
69#[allow(unused_imports)]
70use alloc::collections::BTreeMap;
71
72#[allow(unused_imports)]
73use core::marker::PhantomData;
74use jacquard_common::deps::bytes::Bytes;
75use jacquard_common::{BosStr, CowStr, DefaultStr, FromStaticStr};
76
77#[allow(unused_imports)]
78use jacquard_common::deps::codegen::unicode_segmentation::UnicodeSegmentation;
79use jacquard_common::deps::smol_str::SmolStr;
80use jacquard_common::types::blob::BlobRef;
81use jacquard_common::types::string::{AtUri, Datetime, Did, UriValue};
82use jacquard_common::types::value::Data;
83use jacquard_derive::IntoStatic;
84use jacquard_lexicon::lexicon::LexiconDoc;
85use jacquard_lexicon::schema::LexiconSchema;
86
87use crate::app_bsky::richtext::facet::Facet;
88use crate::games_gamesgamesgamesgames;
89#[allow(unused_imports)]
90use jacquard_lexicon::validation::{ConstraintError, ValidationPath};
91use serde::{Deserialize, Serialize};
92
93#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
94#[serde(
95 rename_all = "camelCase",
96 bound(deserialize = "S: Deserialize<'de> + BosStr")
97)]
98pub struct ActivityFeedItem<S: BosStr = DefaultStr> {
99 pub created_at: Datetime,
101 #[serde(skip_serializing_if = "Option::is_none")]
103 pub game: Option<games_gamesgamesgamesgames::GameView<S>>,
104 #[serde(skip_serializing_if = "Option::is_none")]
106 pub list: Option<games_gamesgamesgamesgames::ActivityListView<S>>,
107 #[serde(skip_serializing_if = "Option::is_none")]
109 pub review: Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
110 pub r#type: ActivityFeedItemType<S>,
112 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
113 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
114}
115
116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
119pub enum ActivityFeedItemType<S: BosStr = DefaultStr> {
120 Like,
121 Review,
122 ListCreate,
123 ListAddGame,
124 Other(S),
125}
126
127impl<S: BosStr> ActivityFeedItemType<S> {
128 pub fn as_str(&self) -> &str {
129 match self {
130 Self::Like => "like",
131 Self::Review => "review",
132 Self::ListCreate => "listCreate",
133 Self::ListAddGame => "listAddGame",
134 Self::Other(s) => s.as_ref(),
135 }
136 }
137 pub fn from_value(s: S) -> Self {
139 match s.as_ref() {
140 "like" => Self::Like,
141 "review" => Self::Review,
142 "listCreate" => Self::ListCreate,
143 "listAddGame" => Self::ListAddGame,
144 _ => Self::Other(s),
145 }
146 }
147}
148
149impl<S: BosStr> core::fmt::Display for ActivityFeedItemType<S> {
150 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
151 write!(f, "{}", self.as_str())
152 }
153}
154
155impl<S: BosStr> AsRef<str> for ActivityFeedItemType<S> {
156 fn as_ref(&self) -> &str {
157 self.as_str()
158 }
159}
160
161impl<S: BosStr> Serialize for ActivityFeedItemType<S> {
162 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
163 where
164 Ser: serde::Serializer,
165 {
166 serializer.serialize_str(self.as_str())
167 }
168}
169
170impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for ActivityFeedItemType<S> {
171 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
172 where
173 D: serde::Deserializer<'de>,
174 {
175 let s = S::deserialize(deserializer)?;
176 Ok(Self::from_value(s))
177 }
178}
179
180impl<S: BosStr + Default> Default for ActivityFeedItemType<S> {
181 fn default() -> Self {
182 Self::Other(Default::default())
183 }
184}
185
186impl<S: BosStr> jacquard_common::IntoStatic for ActivityFeedItemType<S>
187where
188 S: BosStr + jacquard_common::IntoStatic,
189 S::Output: BosStr,
190{
191 type Output = ActivityFeedItemType<S::Output>;
192 fn into_static(self) -> Self::Output {
193 match self {
194 ActivityFeedItemType::Like => ActivityFeedItemType::Like,
195 ActivityFeedItemType::Review => ActivityFeedItemType::Review,
196 ActivityFeedItemType::ListCreate => ActivityFeedItemType::ListCreate,
197 ActivityFeedItemType::ListAddGame => ActivityFeedItemType::ListAddGame,
198 ActivityFeedItemType::Other(v) => ActivityFeedItemType::Other(v.into_static()),
199 }
200 }
201}
202
203#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
204#[serde(
205 rename_all = "camelCase",
206 bound(deserialize = "S: Deserialize<'de> + BosStr")
207)]
208pub struct ActivityListView<S: BosStr = DefaultStr> {
209 pub created_at: Datetime,
210 pub name: S,
211 pub uri: AtUri<S>,
212 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
213 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
214}
215
216#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
217#[serde(
218 rename_all = "camelCase",
219 bound(deserialize = "S: Deserialize<'de> + BosStr")
220)]
221pub struct ActivityReviewView<S: BosStr = DefaultStr> {
222 #[serde(skip_serializing_if = "Option::is_none")]
223 pub contains_spoilers: Option<bool>,
224 pub created_at: Datetime,
225 pub rating: i64,
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub tags: Option<Vec<S>>,
228 #[serde(skip_serializing_if = "Option::is_none")]
229 pub text: Option<S>,
230 #[serde(skip_serializing_if = "Option::is_none")]
231 pub title: Option<S>,
232 pub uri: AtUri<S>,
233 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
234 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
235}
236
237#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
238#[serde(
239 rename_all = "camelCase",
240 bound(deserialize = "S: Deserialize<'de> + BosStr")
241)]
242pub struct ActorCreditView<S: BosStr = DefaultStr> {
243 #[serde(skip_serializing_if = "Option::is_none")]
244 pub actor_uri: Option<AtUri<S>>,
245 pub credits: Vec<games_gamesgamesgamesgames::CreditEntry<S>>,
246 #[serde(skip_serializing_if = "Option::is_none")]
247 pub display_name: Option<S>,
248 pub uri: AtUri<S>,
249 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
250 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
251}
252
253#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
254#[serde(
255 rename_all = "camelCase",
256 bound(deserialize = "S: Deserialize<'de> + BosStr")
257)]
258pub struct ActorProfileDetailView<S: BosStr = DefaultStr> {
259 #[serde(skip_serializing_if = "Option::is_none")]
260 pub avatar: Option<BlobRef<S>>,
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub created_at: Option<Datetime>,
263 #[serde(skip_serializing_if = "Option::is_none")]
264 pub description: Option<S>,
265 #[serde(skip_serializing_if = "Option::is_none")]
266 pub description_facets: Option<Vec<Facet<S>>>,
267 pub did: Did<S>,
268 #[serde(skip_serializing_if = "Option::is_none")]
269 pub display_name: Option<S>,
270 #[serde(skip_serializing_if = "Option::is_none")]
271 pub pronouns: Option<S>,
272 pub uri: AtUri<S>,
273 #[serde(skip_serializing_if = "Option::is_none")]
274 pub websites: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
275 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
276 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
277}
278
279#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
280#[serde(
281 rename_all = "camelCase",
282 bound(deserialize = "S: Deserialize<'de> + BosStr")
283)]
284pub struct ActorProfileSummaryView<S: BosStr = DefaultStr> {
285 #[serde(skip_serializing_if = "Option::is_none")]
286 pub avatar: Option<BlobRef<S>>,
287 pub did: Did<S>,
288 #[serde(skip_serializing_if = "Option::is_none")]
289 pub display_name: Option<S>,
290 pub uri: AtUri<S>,
291 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
292 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
293}
294
295#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
296#[serde(
297 rename_all = "camelCase",
298 bound(deserialize = "S: Deserialize<'de> + BosStr")
299)]
300pub struct AgeRating<S: BosStr = DefaultStr> {
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub content_descriptors: Option<Vec<S>>,
303 pub organization: AgeRatingOrganization<S>,
304 pub rating: S,
305 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
306 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
307}
308
309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
310pub enum AgeRatingOrganization<S: BosStr = DefaultStr> {
311 Esrb,
312 Pegi,
313 Cero,
314 Usk,
315 Grac,
316 ClassInd,
317 Acb,
318 Other(S),
319}
320
321impl<S: BosStr> AgeRatingOrganization<S> {
322 pub fn as_str(&self) -> &str {
323 match self {
324 Self::Esrb => "esrb",
325 Self::Pegi => "pegi",
326 Self::Cero => "cero",
327 Self::Usk => "usk",
328 Self::Grac => "grac",
329 Self::ClassInd => "classInd",
330 Self::Acb => "acb",
331 Self::Other(s) => s.as_ref(),
332 }
333 }
334 pub fn from_value(s: S) -> Self {
336 match s.as_ref() {
337 "esrb" => Self::Esrb,
338 "pegi" => Self::Pegi,
339 "cero" => Self::Cero,
340 "usk" => Self::Usk,
341 "grac" => Self::Grac,
342 "classInd" => Self::ClassInd,
343 "acb" => Self::Acb,
344 _ => Self::Other(s),
345 }
346 }
347}
348
349impl<S: BosStr> core::fmt::Display for AgeRatingOrganization<S> {
350 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
351 write!(f, "{}", self.as_str())
352 }
353}
354
355impl<S: BosStr> AsRef<str> for AgeRatingOrganization<S> {
356 fn as_ref(&self) -> &str {
357 self.as_str()
358 }
359}
360
361impl<S: BosStr> Serialize for AgeRatingOrganization<S> {
362 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
363 where
364 Ser: serde::Serializer,
365 {
366 serializer.serialize_str(self.as_str())
367 }
368}
369
370impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for AgeRatingOrganization<S> {
371 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
372 where
373 D: serde::Deserializer<'de>,
374 {
375 let s = S::deserialize(deserializer)?;
376 Ok(Self::from_value(s))
377 }
378}
379
380impl<S: BosStr + Default> Default for AgeRatingOrganization<S> {
381 fn default() -> Self {
382 Self::Other(Default::default())
383 }
384}
385
386impl<S: BosStr> jacquard_common::IntoStatic for AgeRatingOrganization<S>
387where
388 S: BosStr + jacquard_common::IntoStatic,
389 S::Output: BosStr,
390{
391 type Output = AgeRatingOrganization<S::Output>;
392 fn into_static(self) -> Self::Output {
393 match self {
394 AgeRatingOrganization::Esrb => AgeRatingOrganization::Esrb,
395 AgeRatingOrganization::Pegi => AgeRatingOrganization::Pegi,
396 AgeRatingOrganization::Cero => AgeRatingOrganization::Cero,
397 AgeRatingOrganization::Usk => AgeRatingOrganization::Usk,
398 AgeRatingOrganization::Grac => AgeRatingOrganization::Grac,
399 AgeRatingOrganization::ClassInd => AgeRatingOrganization::ClassInd,
400 AgeRatingOrganization::Acb => AgeRatingOrganization::Acb,
401 AgeRatingOrganization::Other(v) => AgeRatingOrganization::Other(v.into_static()),
402 }
403 }
404}
405
406#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
407#[serde(
408 rename_all = "camelCase",
409 bound(deserialize = "S: Deserialize<'de> + BosStr")
410)]
411pub struct AlternativeName<S: BosStr = DefaultStr> {
412 #[serde(skip_serializing_if = "Option::is_none")]
413 pub comment: Option<S>,
414 #[serde(skip_serializing_if = "Option::is_none")]
415 pub locale: Option<S>,
416 pub name: S,
417 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
418 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
419}
420
421pub type ApplicationType<S = DefaultStr> = S;
422
423#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
424#[serde(
425 rename_all = "camelCase",
426 bound(deserialize = "S: Deserialize<'de> + BosStr")
427)]
428pub struct CollectionSummaryView<S: BosStr = DefaultStr> {
429 pub name: S,
430 #[serde(skip_serializing_if = "Option::is_none")]
431 pub slug: Option<S>,
432 #[serde(skip_serializing_if = "Option::is_none")]
433 pub r#type: Option<CollectionSummaryViewType<S>>,
434 pub uri: AtUri<S>,
435 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
436 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
437}
438
439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
440pub enum CollectionSummaryViewType<S: BosStr = DefaultStr> {
441 Franchise,
442 Series,
443 Curated,
444 Other(S),
445}
446
447impl<S: BosStr> CollectionSummaryViewType<S> {
448 pub fn as_str(&self) -> &str {
449 match self {
450 Self::Franchise => "franchise",
451 Self::Series => "series",
452 Self::Curated => "curated",
453 Self::Other(s) => s.as_ref(),
454 }
455 }
456 pub fn from_value(s: S) -> Self {
458 match s.as_ref() {
459 "franchise" => Self::Franchise,
460 "series" => Self::Series,
461 "curated" => Self::Curated,
462 _ => Self::Other(s),
463 }
464 }
465}
466
467impl<S: BosStr> core::fmt::Display for CollectionSummaryViewType<S> {
468 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
469 write!(f, "{}", self.as_str())
470 }
471}
472
473impl<S: BosStr> AsRef<str> for CollectionSummaryViewType<S> {
474 fn as_ref(&self) -> &str {
475 self.as_str()
476 }
477}
478
479impl<S: BosStr> Serialize for CollectionSummaryViewType<S> {
480 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
481 where
482 Ser: serde::Serializer,
483 {
484 serializer.serialize_str(self.as_str())
485 }
486}
487
488impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for CollectionSummaryViewType<S> {
489 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
490 where
491 D: serde::Deserializer<'de>,
492 {
493 let s = S::deserialize(deserializer)?;
494 Ok(Self::from_value(s))
495 }
496}
497
498impl<S: BosStr + Default> Default for CollectionSummaryViewType<S> {
499 fn default() -> Self {
500 Self::Other(Default::default())
501 }
502}
503
504impl<S: BosStr> jacquard_common::IntoStatic for CollectionSummaryViewType<S>
505where
506 S: BosStr + jacquard_common::IntoStatic,
507 S::Output: BosStr,
508{
509 type Output = CollectionSummaryViewType<S::Output>;
510 fn into_static(self) -> Self::Output {
511 match self {
512 CollectionSummaryViewType::Franchise => CollectionSummaryViewType::Franchise,
513 CollectionSummaryViewType::Series => CollectionSummaryViewType::Series,
514 CollectionSummaryViewType::Curated => CollectionSummaryViewType::Curated,
515 CollectionSummaryViewType::Other(v) => {
516 CollectionSummaryViewType::Other(v.into_static())
517 }
518 }
519 }
520}
521
522#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
525#[serde(
526 rename_all = "camelCase",
527 bound(deserialize = "S: Deserialize<'de> + BosStr")
528)]
529pub struct CommunityFeedActorView<S: BosStr = DefaultStr> {
530 pub did: Did<S>,
531 #[serde(skip_serializing_if = "Option::is_none")]
532 pub display_name: Option<S>,
533 #[serde(skip_serializing_if = "Option::is_none")]
534 pub handle: Option<S>,
535 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
536 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
537}
538
539#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
542#[serde(
543 rename_all = "camelCase",
544 bound(deserialize = "S: Deserialize<'de> + BosStr")
545)]
546pub struct CommunityFeedItem<S: BosStr = DefaultStr> {
547 pub actor: games_gamesgamesgamesgames::CommunityFeedActorView<S>,
549 pub created_at: Datetime,
551 #[serde(skip_serializing_if = "Option::is_none")]
553 pub game: Option<games_gamesgamesgamesgames::GameView<S>>,
554 #[serde(skip_serializing_if = "Option::is_none")]
556 pub list: Option<games_gamesgamesgamesgames::ActivityListView<S>>,
557 #[serde(skip_serializing_if = "Option::is_none")]
559 pub review: Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
560 pub r#type: CommunityFeedItemType<S>,
562 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
563 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
564}
565
566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
569pub enum CommunityFeedItemType<S: BosStr = DefaultStr> {
570 Like,
571 Review,
572 ListCreate,
573 ListAddGame,
574 Other(S),
575}
576
577impl<S: BosStr> CommunityFeedItemType<S> {
578 pub fn as_str(&self) -> &str {
579 match self {
580 Self::Like => "like",
581 Self::Review => "review",
582 Self::ListCreate => "listCreate",
583 Self::ListAddGame => "listAddGame",
584 Self::Other(s) => s.as_ref(),
585 }
586 }
587 pub fn from_value(s: S) -> Self {
589 match s.as_ref() {
590 "like" => Self::Like,
591 "review" => Self::Review,
592 "listCreate" => Self::ListCreate,
593 "listAddGame" => Self::ListAddGame,
594 _ => Self::Other(s),
595 }
596 }
597}
598
599impl<S: BosStr> core::fmt::Display for CommunityFeedItemType<S> {
600 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
601 write!(f, "{}", self.as_str())
602 }
603}
604
605impl<S: BosStr> AsRef<str> for CommunityFeedItemType<S> {
606 fn as_ref(&self) -> &str {
607 self.as_str()
608 }
609}
610
611impl<S: BosStr> Serialize for CommunityFeedItemType<S> {
612 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
613 where
614 Ser: serde::Serializer,
615 {
616 serializer.serialize_str(self.as_str())
617 }
618}
619
620impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for CommunityFeedItemType<S> {
621 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
622 where
623 D: serde::Deserializer<'de>,
624 {
625 let s = S::deserialize(deserializer)?;
626 Ok(Self::from_value(s))
627 }
628}
629
630impl<S: BosStr + Default> Default for CommunityFeedItemType<S> {
631 fn default() -> Self {
632 Self::Other(Default::default())
633 }
634}
635
636impl<S: BosStr> jacquard_common::IntoStatic for CommunityFeedItemType<S>
637where
638 S: BosStr + jacquard_common::IntoStatic,
639 S::Output: BosStr,
640{
641 type Output = CommunityFeedItemType<S::Output>;
642 fn into_static(self) -> Self::Output {
643 match self {
644 CommunityFeedItemType::Like => CommunityFeedItemType::Like,
645 CommunityFeedItemType::Review => CommunityFeedItemType::Review,
646 CommunityFeedItemType::ListCreate => CommunityFeedItemType::ListCreate,
647 CommunityFeedItemType::ListAddGame => CommunityFeedItemType::ListAddGame,
648 CommunityFeedItemType::Other(v) => CommunityFeedItemType::Other(v.into_static()),
649 }
650 }
651}
652
653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
654pub enum CompanyRole<S: BosStr = DefaultStr> {
655 Developer,
656 Publisher,
657 Porter,
658 Supporter,
659 Other(S),
660}
661
662impl<S: BosStr> CompanyRole<S> {
663 pub fn as_str(&self) -> &str {
664 match self {
665 Self::Developer => "developer",
666 Self::Publisher => "publisher",
667 Self::Porter => "porter",
668 Self::Supporter => "supporter",
669 Self::Other(s) => s.as_ref(),
670 }
671 }
672 pub fn from_value(s: S) -> Self {
674 match s.as_ref() {
675 "developer" => Self::Developer,
676 "publisher" => Self::Publisher,
677 "porter" => Self::Porter,
678 "supporter" => Self::Supporter,
679 _ => Self::Other(s),
680 }
681 }
682}
683
684impl<S: BosStr> AsRef<str> for CompanyRole<S> {
685 fn as_ref(&self) -> &str {
686 self.as_str()
687 }
688}
689
690impl<S: BosStr> core::fmt::Display for CompanyRole<S> {
691 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
692 write!(f, "{}", self.as_str())
693 }
694}
695
696impl<S: BosStr> Serialize for CompanyRole<S> {
697 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
698 where
699 Ser: serde::Serializer,
700 {
701 serializer.serialize_str(self.as_str())
702 }
703}
704
705impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for CompanyRole<S> {
706 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
707 where
708 D: serde::Deserializer<'de>,
709 {
710 let s = S::deserialize(deserializer)?;
711 Ok(Self::from_value(s))
712 }
713}
714
715impl<S: BosStr> jacquard_common::IntoStatic for CompanyRole<S>
716where
717 S: BosStr + jacquard_common::IntoStatic,
718 S::Output: BosStr,
719{
720 type Output = CompanyRole<S::Output>;
721 fn into_static(self) -> Self::Output {
722 match self {
723 CompanyRole::Developer => CompanyRole::Developer,
724 CompanyRole::Publisher => CompanyRole::Publisher,
725 CompanyRole::Porter => CompanyRole::Porter,
726 CompanyRole::Supporter => CompanyRole::Supporter,
727 CompanyRole::Other(v) => CompanyRole::Other(v.into_static()),
728 }
729 }
730}
731
732#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
733#[serde(
734 rename_all = "camelCase",
735 bound(deserialize = "S: Deserialize<'de> + BosStr")
736)]
737pub struct CreditEntry<S: BosStr = DefaultStr> {
738 #[serde(skip_serializing_if = "Option::is_none")]
739 pub department: Option<S>,
740 pub role: games_gamesgamesgamesgames::IndividualRole<S>,
741 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
742 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
743}
744
745#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
746#[serde(
747 rename_all = "camelCase",
748 bound(deserialize = "S: Deserialize<'de> + BosStr")
749)]
750pub struct EngineSummaryView<S: BosStr = DefaultStr> {
751 pub name: S,
752 #[serde(skip_serializing_if = "Option::is_none")]
753 pub slug: Option<S>,
754 pub uri: AtUri<S>,
755 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
756 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
757}
758
759#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
760#[serde(
761 rename_all = "camelCase",
762 bound(deserialize = "S: Deserialize<'de> + BosStr")
763)]
764pub struct ExternalIds<S: BosStr = DefaultStr> {
765 #[serde(skip_serializing_if = "Option::is_none")]
766 pub apple_app_store: Option<S>,
767 #[serde(skip_serializing_if = "Option::is_none")]
768 pub epic_games: Option<S>,
769 #[serde(skip_serializing_if = "Option::is_none")]
770 pub gog: Option<S>,
771 #[serde(skip_serializing_if = "Option::is_none")]
772 pub google_play: Option<S>,
773 #[serde(skip_serializing_if = "Option::is_none")]
774 pub humble_bundle: Option<S>,
775 #[serde(skip_serializing_if = "Option::is_none")]
776 pub igdb: Option<S>,
777 #[serde(skip_serializing_if = "Option::is_none")]
778 pub itch_io: Option<games_gamesgamesgamesgames::ItchIoId<S>>,
779 #[serde(skip_serializing_if = "Option::is_none")]
780 pub nintendo_eshop: Option<S>,
781 #[serde(skip_serializing_if = "Option::is_none")]
782 pub play_station: Option<S>,
783 #[serde(skip_serializing_if = "Option::is_none")]
784 pub steam: Option<S>,
785 #[serde(skip_serializing_if = "Option::is_none")]
786 pub twitch: Option<S>,
787 #[serde(skip_serializing_if = "Option::is_none")]
788 pub xbox: Option<S>,
789 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
790 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
791}
792
793#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
794#[serde(
795 rename_all = "camelCase",
796 bound(deserialize = "S: Deserialize<'de> + BosStr")
797)]
798pub struct ExternalVideo<S: BosStr = DefaultStr> {
799 pub platform: ExternalVideoPlatform<S>,
800 #[serde(skip_serializing_if = "Option::is_none")]
801 pub title: Option<S>,
802 pub video_id: S,
803 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
804 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
805}
806
807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
808pub enum ExternalVideoPlatform<S: BosStr = DefaultStr> {
809 Youtube,
810 Twitch,
811 Vimeo,
812 Other(S),
813}
814
815impl<S: BosStr> ExternalVideoPlatform<S> {
816 pub fn as_str(&self) -> &str {
817 match self {
818 Self::Youtube => "youtube",
819 Self::Twitch => "twitch",
820 Self::Vimeo => "vimeo",
821 Self::Other(s) => s.as_ref(),
822 }
823 }
824 pub fn from_value(s: S) -> Self {
826 match s.as_ref() {
827 "youtube" => Self::Youtube,
828 "twitch" => Self::Twitch,
829 "vimeo" => Self::Vimeo,
830 _ => Self::Other(s),
831 }
832 }
833}
834
835impl<S: BosStr> core::fmt::Display for ExternalVideoPlatform<S> {
836 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
837 write!(f, "{}", self.as_str())
838 }
839}
840
841impl<S: BosStr> AsRef<str> for ExternalVideoPlatform<S> {
842 fn as_ref(&self) -> &str {
843 self.as_str()
844 }
845}
846
847impl<S: BosStr> Serialize for ExternalVideoPlatform<S> {
848 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
849 where
850 Ser: serde::Serializer,
851 {
852 serializer.serialize_str(self.as_str())
853 }
854}
855
856impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for ExternalVideoPlatform<S> {
857 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
858 where
859 D: serde::Deserializer<'de>,
860 {
861 let s = S::deserialize(deserializer)?;
862 Ok(Self::from_value(s))
863 }
864}
865
866impl<S: BosStr + Default> Default for ExternalVideoPlatform<S> {
867 fn default() -> Self {
868 Self::Other(Default::default())
869 }
870}
871
872impl<S: BosStr> jacquard_common::IntoStatic for ExternalVideoPlatform<S>
873where
874 S: BosStr + jacquard_common::IntoStatic,
875 S::Output: BosStr,
876{
877 type Output = ExternalVideoPlatform<S::Output>;
878 fn into_static(self) -> Self::Output {
879 match self {
880 ExternalVideoPlatform::Youtube => ExternalVideoPlatform::Youtube,
881 ExternalVideoPlatform::Twitch => ExternalVideoPlatform::Twitch,
882 ExternalVideoPlatform::Vimeo => ExternalVideoPlatform::Vimeo,
883 ExternalVideoPlatform::Other(v) => ExternalVideoPlatform::Other(v.into_static()),
884 }
885 }
886}
887
888#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
889#[serde(
890 rename_all = "camelCase",
891 bound(deserialize = "S: Deserialize<'de> + BosStr")
892)]
893pub struct GameDetailView<S: BosStr = DefaultStr> {
894 #[serde(skip_serializing_if = "Option::is_none")]
895 pub actor_credits: Option<Vec<games_gamesgamesgamesgames::ActorCreditView<S>>>,
896 #[serde(skip_serializing_if = "Option::is_none")]
897 pub age_ratings: Option<Vec<games_gamesgamesgamesgames::AgeRating<S>>>,
898 #[serde(skip_serializing_if = "Option::is_none")]
899 pub alternative_names: Option<Vec<games_gamesgamesgamesgames::AlternativeName<S>>>,
900 #[serde(skip_serializing_if = "Option::is_none")]
901 pub application_type: Option<games_gamesgamesgamesgames::ApplicationType<S>>,
902 #[serde(skip_serializing_if = "Option::is_none")]
903 pub collections: Option<Vec<AtUri<S>>>,
904 pub created_at: Datetime,
905 #[serde(skip_serializing_if = "Option::is_none")]
906 pub engines: Option<Vec<AtUri<S>>>,
907 #[serde(skip_serializing_if = "Option::is_none")]
908 pub external_ids: Option<games_gamesgamesgamesgames::ExternalIds<S>>,
909 #[serde(skip_serializing_if = "Option::is_none")]
910 pub genres: Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
911 #[serde(skip_serializing_if = "Option::is_none")]
912 pub keywords: Option<Vec<S>>,
913 #[serde(skip_serializing_if = "Option::is_none")]
914 pub language_supports: Option<Vec<games_gamesgamesgamesgames::LanguageSupport<S>>>,
915 #[serde(skip_serializing_if = "Option::is_none")]
916 pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
917 #[serde(skip_serializing_if = "Option::is_none")]
918 pub modes: Option<Vec<games_gamesgamesgamesgames::Mode<S>>>,
919 #[serde(skip_serializing_if = "Option::is_none")]
920 pub multiplayer_modes: Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<S>>>,
921 pub name: S,
922 #[serde(skip_serializing_if = "Option::is_none")]
923 pub org_credits: Option<Vec<games_gamesgamesgamesgames::OrgCreditView<S>>>,
924 #[serde(skip_serializing_if = "Option::is_none")]
925 pub parent: Option<AtUri<S>>,
926 #[serde(skip_serializing_if = "Option::is_none")]
927 pub player_perspectives: Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<S>>>,
928 #[serde(skip_serializing_if = "Option::is_none")]
929 pub published_at: Option<Datetime>,
930 #[serde(skip_serializing_if = "Option::is_none")]
931 pub releases: Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
932 #[serde(skip_serializing_if = "Option::is_none")]
933 pub slug: Option<S>,
934 #[serde(skip_serializing_if = "Option::is_none")]
935 pub storyline: Option<S>,
936 #[serde(skip_serializing_if = "Option::is_none")]
937 pub summary: Option<S>,
938 #[serde(skip_serializing_if = "Option::is_none")]
939 pub themes: Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
940 #[serde(skip_serializing_if = "Option::is_none")]
941 pub time_to_beat: Option<games_gamesgamesgamesgames::TimeToBeat<S>>,
942 pub uri: AtUri<S>,
943 #[serde(skip_serializing_if = "Option::is_none")]
944 pub videos: Option<Vec<games_gamesgamesgamesgames::ExternalVideo<S>>>,
945 #[serde(skip_serializing_if = "Option::is_none")]
946 pub websites: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
947 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
948 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
949}
950
951#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
952#[serde(
953 rename_all = "camelCase",
954 bound(deserialize = "S: Deserialize<'de> + BosStr")
955)]
956pub struct GameFeedViewItem<S: BosStr = DefaultStr> {
957 #[serde(skip_serializing_if = "Option::is_none")]
958 pub feed_context: Option<S>,
959 pub game: games_gamesgamesgamesgames::GameView<S>,
960 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
961 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
962}
963
964#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
965#[serde(
966 rename_all = "camelCase",
967 bound(deserialize = "S: Deserialize<'de> + BosStr")
968)]
969pub struct GameSummaryView<S: BosStr = DefaultStr> {
970 #[serde(skip_serializing_if = "Option::is_none")]
971 pub application_type: Option<games_gamesgamesgamesgames::ApplicationType<S>>,
972 #[serde(skip_serializing_if = "Option::is_none")]
974 pub first_release_date: Option<i64>,
975 #[serde(skip_serializing_if = "Option::is_none")]
976 pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
977 pub name: S,
978 #[serde(skip_serializing_if = "Option::is_none")]
979 pub slug: Option<S>,
980 #[serde(skip_serializing_if = "Option::is_none")]
981 pub summary: Option<S>,
982 pub uri: AtUri<S>,
983 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
984 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
985}
986
987#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
988#[serde(
989 rename_all = "camelCase",
990 bound(deserialize = "S: Deserialize<'de> + BosStr")
991)]
992pub struct GameView<S: BosStr = DefaultStr> {
993 pub application_type: games_gamesgamesgamesgames::ApplicationType<S>,
994 #[serde(skip_serializing_if = "Option::is_none")]
995 pub genres: Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
996 #[serde(skip_serializing_if = "Option::is_none")]
997 pub like_count: Option<i64>,
998 #[serde(skip_serializing_if = "Option::is_none")]
999 pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
1000 pub name: S,
1001 #[serde(skip_serializing_if = "Option::is_none")]
1002 pub releases: Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
1003 #[serde(skip_serializing_if = "Option::is_none")]
1004 pub slug: Option<S>,
1005 #[serde(skip_serializing_if = "Option::is_none")]
1006 pub summary: Option<S>,
1007 #[serde(skip_serializing_if = "Option::is_none")]
1008 pub themes: Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
1009 pub uri: AtUri<S>,
1010 #[serde(skip_serializing_if = "Option::is_none")]
1011 pub viewer: Option<games_gamesgamesgamesgames::ViewerState<S>>,
1012 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1013 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1014}
1015
1016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1017pub enum Genre<S: BosStr = DefaultStr> {
1018 Fighting,
1019 Music,
1020 Platform,
1021 PointAndClick,
1022 Puzzle,
1023 Racing,
1024 Rpg,
1025 Rts,
1026 Shooter,
1027 Simulator,
1028 Other(S),
1029}
1030
1031impl<S: BosStr> Genre<S> {
1032 pub fn as_str(&self) -> &str {
1033 match self {
1034 Self::Fighting => "fighting",
1035 Self::Music => "music",
1036 Self::Platform => "platform",
1037 Self::PointAndClick => "pointAndClick",
1038 Self::Puzzle => "puzzle",
1039 Self::Racing => "racing",
1040 Self::Rpg => "rpg",
1041 Self::Rts => "rts",
1042 Self::Shooter => "shooter",
1043 Self::Simulator => "simulator",
1044 Self::Other(s) => s.as_ref(),
1045 }
1046 }
1047 pub fn from_value(s: S) -> Self {
1049 match s.as_ref() {
1050 "fighting" => Self::Fighting,
1051 "music" => Self::Music,
1052 "platform" => Self::Platform,
1053 "pointAndClick" => Self::PointAndClick,
1054 "puzzle" => Self::Puzzle,
1055 "racing" => Self::Racing,
1056 "rpg" => Self::Rpg,
1057 "rts" => Self::Rts,
1058 "shooter" => Self::Shooter,
1059 "simulator" => Self::Simulator,
1060 _ => Self::Other(s),
1061 }
1062 }
1063}
1064
1065impl<S: BosStr> AsRef<str> for Genre<S> {
1066 fn as_ref(&self) -> &str {
1067 self.as_str()
1068 }
1069}
1070
1071impl<S: BosStr> core::fmt::Display for Genre<S> {
1072 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1073 write!(f, "{}", self.as_str())
1074 }
1075}
1076
1077impl<S: BosStr> Serialize for Genre<S> {
1078 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1079 where
1080 Ser: serde::Serializer,
1081 {
1082 serializer.serialize_str(self.as_str())
1083 }
1084}
1085
1086impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for Genre<S> {
1087 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1088 where
1089 D: serde::Deserializer<'de>,
1090 {
1091 let s = S::deserialize(deserializer)?;
1092 Ok(Self::from_value(s))
1093 }
1094}
1095
1096impl<S: BosStr> jacquard_common::IntoStatic for Genre<S>
1097where
1098 S: BosStr + jacquard_common::IntoStatic,
1099 S::Output: BosStr,
1100{
1101 type Output = Genre<S::Output>;
1102 fn into_static(self) -> Self::Output {
1103 match self {
1104 Genre::Fighting => Genre::Fighting,
1105 Genre::Music => Genre::Music,
1106 Genre::Platform => Genre::Platform,
1107 Genre::PointAndClick => Genre::PointAndClick,
1108 Genre::Puzzle => Genre::Puzzle,
1109 Genre::Racing => Genre::Racing,
1110 Genre::Rpg => Genre::Rpg,
1111 Genre::Rts => Genre::Rts,
1112 Genre::Shooter => Genre::Shooter,
1113 Genre::Simulator => Genre::Simulator,
1114 Genre::Other(v) => Genre::Other(v.into_static()),
1115 }
1116 }
1117}
1118
1119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1120pub enum IndividualRole<S: BosStr = DefaultStr> {
1121 Director,
1122 Producer,
1123 Designer,
1124 Programmer,
1125 Artist,
1126 Animator,
1127 Writer,
1128 Composer,
1129 SoundDesigner,
1130 VoiceActor,
1131 Qa,
1132 Localization,
1133 CommunityManager,
1134 Marketing,
1135 Other(S),
1136}
1137
1138impl<S: BosStr> IndividualRole<S> {
1139 pub fn as_str(&self) -> &str {
1140 match self {
1141 Self::Director => "director",
1142 Self::Producer => "producer",
1143 Self::Designer => "designer",
1144 Self::Programmer => "programmer",
1145 Self::Artist => "artist",
1146 Self::Animator => "animator",
1147 Self::Writer => "writer",
1148 Self::Composer => "composer",
1149 Self::SoundDesigner => "soundDesigner",
1150 Self::VoiceActor => "voiceActor",
1151 Self::Qa => "qa",
1152 Self::Localization => "localization",
1153 Self::CommunityManager => "communityManager",
1154 Self::Marketing => "marketing",
1155 Self::Other(s) => s.as_ref(),
1156 }
1157 }
1158 pub fn from_value(s: S) -> Self {
1160 match s.as_ref() {
1161 "director" => Self::Director,
1162 "producer" => Self::Producer,
1163 "designer" => Self::Designer,
1164 "programmer" => Self::Programmer,
1165 "artist" => Self::Artist,
1166 "animator" => Self::Animator,
1167 "writer" => Self::Writer,
1168 "composer" => Self::Composer,
1169 "soundDesigner" => Self::SoundDesigner,
1170 "voiceActor" => Self::VoiceActor,
1171 "qa" => Self::Qa,
1172 "localization" => Self::Localization,
1173 "communityManager" => Self::CommunityManager,
1174 "marketing" => Self::Marketing,
1175 _ => Self::Other(s),
1176 }
1177 }
1178}
1179
1180impl<S: BosStr> AsRef<str> for IndividualRole<S> {
1181 fn as_ref(&self) -> &str {
1182 self.as_str()
1183 }
1184}
1185
1186impl<S: BosStr> core::fmt::Display for IndividualRole<S> {
1187 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1188 write!(f, "{}", self.as_str())
1189 }
1190}
1191
1192impl<S: BosStr> Serialize for IndividualRole<S> {
1193 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1194 where
1195 Ser: serde::Serializer,
1196 {
1197 serializer.serialize_str(self.as_str())
1198 }
1199}
1200
1201impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for IndividualRole<S> {
1202 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1203 where
1204 D: serde::Deserializer<'de>,
1205 {
1206 let s = S::deserialize(deserializer)?;
1207 Ok(Self::from_value(s))
1208 }
1209}
1210
1211impl<S: BosStr> jacquard_common::IntoStatic for IndividualRole<S>
1212where
1213 S: BosStr + jacquard_common::IntoStatic,
1214 S::Output: BosStr,
1215{
1216 type Output = IndividualRole<S::Output>;
1217 fn into_static(self) -> Self::Output {
1218 match self {
1219 IndividualRole::Director => IndividualRole::Director,
1220 IndividualRole::Producer => IndividualRole::Producer,
1221 IndividualRole::Designer => IndividualRole::Designer,
1222 IndividualRole::Programmer => IndividualRole::Programmer,
1223 IndividualRole::Artist => IndividualRole::Artist,
1224 IndividualRole::Animator => IndividualRole::Animator,
1225 IndividualRole::Writer => IndividualRole::Writer,
1226 IndividualRole::Composer => IndividualRole::Composer,
1227 IndividualRole::SoundDesigner => IndividualRole::SoundDesigner,
1228 IndividualRole::VoiceActor => IndividualRole::VoiceActor,
1229 IndividualRole::Qa => IndividualRole::Qa,
1230 IndividualRole::Localization => IndividualRole::Localization,
1231 IndividualRole::CommunityManager => IndividualRole::CommunityManager,
1232 IndividualRole::Marketing => IndividualRole::Marketing,
1233 IndividualRole::Other(v) => IndividualRole::Other(v.into_static()),
1234 }
1235 }
1236}
1237
1238#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1239#[serde(
1240 rename_all = "camelCase",
1241 bound(deserialize = "S: Deserialize<'de> + BosStr")
1242)]
1243pub struct ItchIoId<S: BosStr = DefaultStr> {
1244 pub developer: S,
1245 pub game: S,
1246 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1247 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1248}
1249
1250#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1251#[serde(
1252 rename_all = "camelCase",
1253 bound(deserialize = "S: Deserialize<'de> + BosStr")
1254)]
1255pub struct LanguageSupport<S: BosStr = DefaultStr> {
1256 #[serde(skip_serializing_if = "Option::is_none")]
1257 pub audio: Option<bool>,
1258 #[serde(skip_serializing_if = "Option::is_none")]
1259 pub interface: Option<bool>,
1260 pub language: S,
1261 #[serde(skip_serializing_if = "Option::is_none")]
1262 pub subtitles: Option<bool>,
1263 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1264 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1265}
1266
1267#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1268#[serde(
1269 rename_all = "camelCase",
1270 bound(deserialize = "S: Deserialize<'de> + BosStr")
1271)]
1272pub struct MediaItem<S: BosStr = DefaultStr> {
1273 #[serde(skip_serializing_if = "Option::is_none")]
1274 pub blob: Option<BlobRef<S>>,
1275 #[serde(skip_serializing_if = "Option::is_none")]
1276 pub description: Option<S>,
1277 #[serde(skip_serializing_if = "Option::is_none")]
1278 pub height: Option<i64>,
1279 #[serde(skip_serializing_if = "Option::is_none")]
1280 pub locale: Option<S>,
1281 #[serde(skip_serializing_if = "Option::is_none")]
1282 pub media_type: Option<S>,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1284 pub title: Option<S>,
1285 #[serde(skip_serializing_if = "Option::is_none")]
1286 pub width: Option<i64>,
1287 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1288 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub enum Mode<S: BosStr = DefaultStr> {
1293 BattleRoyale,
1294 Cooperative,
1295 Mmo,
1296 Multiplayer,
1297 SinglePlayer,
1298 SplitScreen,
1299 Other(S),
1300}
1301
1302impl<S: BosStr> Mode<S> {
1303 pub fn as_str(&self) -> &str {
1304 match self {
1305 Self::BattleRoyale => "battleRoyale",
1306 Self::Cooperative => "cooperative",
1307 Self::Mmo => "mmo",
1308 Self::Multiplayer => "multiplayer",
1309 Self::SinglePlayer => "singlePlayer",
1310 Self::SplitScreen => "splitScreen",
1311 Self::Other(s) => s.as_ref(),
1312 }
1313 }
1314 pub fn from_value(s: S) -> Self {
1316 match s.as_ref() {
1317 "battleRoyale" => Self::BattleRoyale,
1318 "cooperative" => Self::Cooperative,
1319 "mmo" => Self::Mmo,
1320 "multiplayer" => Self::Multiplayer,
1321 "singlePlayer" => Self::SinglePlayer,
1322 "splitScreen" => Self::SplitScreen,
1323 _ => Self::Other(s),
1324 }
1325 }
1326}
1327
1328impl<S: BosStr> AsRef<str> for Mode<S> {
1329 fn as_ref(&self) -> &str {
1330 self.as_str()
1331 }
1332}
1333
1334impl<S: BosStr> core::fmt::Display for Mode<S> {
1335 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1336 write!(f, "{}", self.as_str())
1337 }
1338}
1339
1340impl<S: BosStr> Serialize for Mode<S> {
1341 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1342 where
1343 Ser: serde::Serializer,
1344 {
1345 serializer.serialize_str(self.as_str())
1346 }
1347}
1348
1349impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for Mode<S> {
1350 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1351 where
1352 D: serde::Deserializer<'de>,
1353 {
1354 let s = S::deserialize(deserializer)?;
1355 Ok(Self::from_value(s))
1356 }
1357}
1358
1359impl<S: BosStr> jacquard_common::IntoStatic for Mode<S>
1360where
1361 S: BosStr + jacquard_common::IntoStatic,
1362 S::Output: BosStr,
1363{
1364 type Output = Mode<S::Output>;
1365 fn into_static(self) -> Self::Output {
1366 match self {
1367 Mode::BattleRoyale => Mode::BattleRoyale,
1368 Mode::Cooperative => Mode::Cooperative,
1369 Mode::Mmo => Mode::Mmo,
1370 Mode::Multiplayer => Mode::Multiplayer,
1371 Mode::SinglePlayer => Mode::SinglePlayer,
1372 Mode::SplitScreen => Mode::SplitScreen,
1373 Mode::Other(v) => Mode::Other(v.into_static()),
1374 }
1375 }
1376}
1377
1378#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1379#[serde(
1380 rename_all = "camelCase",
1381 bound(deserialize = "S: Deserialize<'de> + BosStr")
1382)]
1383pub struct MultiplayerMode<S: BosStr = DefaultStr> {
1384 #[serde(skip_serializing_if = "Option::is_none")]
1385 pub has_campaign_coop: Option<bool>,
1386 #[serde(skip_serializing_if = "Option::is_none")]
1387 pub has_drop_in: Option<bool>,
1388 #[serde(skip_serializing_if = "Option::is_none")]
1389 pub has_lan_coop: Option<bool>,
1390 #[serde(skip_serializing_if = "Option::is_none")]
1391 pub has_splitscreen: Option<bool>,
1392 #[serde(skip_serializing_if = "Option::is_none")]
1393 pub has_splitscreen_online: Option<bool>,
1394 #[serde(skip_serializing_if = "Option::is_none")]
1395 pub offline_coop_max: Option<i64>,
1396 #[serde(skip_serializing_if = "Option::is_none")]
1397 pub offline_max: Option<i64>,
1398 #[serde(skip_serializing_if = "Option::is_none")]
1399 pub online_coop_max: Option<i64>,
1400 #[serde(skip_serializing_if = "Option::is_none")]
1401 pub online_max: Option<i64>,
1402 #[serde(skip_serializing_if = "Option::is_none")]
1403 pub platform: Option<S>,
1404 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1405 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1406}
1407
1408#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1409#[serde(
1410 rename_all = "camelCase",
1411 bound(deserialize = "S: Deserialize<'de> + BosStr")
1412)]
1413pub struct OrgCreditView<S: BosStr = DefaultStr> {
1414 #[serde(skip_serializing_if = "Option::is_none")]
1415 pub display_name: Option<S>,
1416 #[serde(skip_serializing_if = "Option::is_none")]
1417 pub org_uri: Option<AtUri<S>>,
1418 pub roles: Vec<games_gamesgamesgamesgames::CompanyRole<S>>,
1419 pub uri: AtUri<S>,
1420 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1421 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1422}
1423
1424#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1425#[serde(
1426 rename_all = "camelCase",
1427 bound(deserialize = "S: Deserialize<'de> + BosStr")
1428)]
1429pub struct OrgProfileDetailView<S: BosStr = DefaultStr> {
1430 #[serde(skip_serializing_if = "Option::is_none")]
1431 pub avatar: Option<BlobRef<S>>,
1432 #[serde(skip_serializing_if = "Option::is_none")]
1433 pub country: Option<S>,
1434 #[serde(skip_serializing_if = "Option::is_none")]
1435 pub created_at: Option<Datetime>,
1436 #[serde(skip_serializing_if = "Option::is_none")]
1437 pub description: Option<S>,
1438 #[serde(skip_serializing_if = "Option::is_none")]
1439 pub description_facets: Option<Vec<Facet<S>>>,
1440 pub did: Did<S>,
1441 #[serde(skip_serializing_if = "Option::is_none")]
1442 pub display_name: Option<S>,
1443 #[serde(skip_serializing_if = "Option::is_none")]
1444 pub founded_at: Option<Datetime>,
1445 #[serde(skip_serializing_if = "Option::is_none")]
1446 pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
1447 #[serde(skip_serializing_if = "Option::is_none")]
1448 pub parent: Option<AtUri<S>>,
1449 #[serde(skip_serializing_if = "Option::is_none")]
1450 pub status: Option<OrgProfileDetailViewStatus<S>>,
1451 pub uri: AtUri<S>,
1452 #[serde(skip_serializing_if = "Option::is_none")]
1453 pub websites: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
1454 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1455 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1456}
1457
1458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1459pub enum OrgProfileDetailViewStatus<S: BosStr = DefaultStr> {
1460 Active,
1461 Inactive,
1462 Merged,
1463 Acquired,
1464 Defunct,
1465 Other(S),
1466}
1467
1468impl<S: BosStr> OrgProfileDetailViewStatus<S> {
1469 pub fn as_str(&self) -> &str {
1470 match self {
1471 Self::Active => "active",
1472 Self::Inactive => "inactive",
1473 Self::Merged => "merged",
1474 Self::Acquired => "acquired",
1475 Self::Defunct => "defunct",
1476 Self::Other(s) => s.as_ref(),
1477 }
1478 }
1479 pub fn from_value(s: S) -> Self {
1481 match s.as_ref() {
1482 "active" => Self::Active,
1483 "inactive" => Self::Inactive,
1484 "merged" => Self::Merged,
1485 "acquired" => Self::Acquired,
1486 "defunct" => Self::Defunct,
1487 _ => Self::Other(s),
1488 }
1489 }
1490}
1491
1492impl<S: BosStr> core::fmt::Display for OrgProfileDetailViewStatus<S> {
1493 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1494 write!(f, "{}", self.as_str())
1495 }
1496}
1497
1498impl<S: BosStr> AsRef<str> for OrgProfileDetailViewStatus<S> {
1499 fn as_ref(&self) -> &str {
1500 self.as_str()
1501 }
1502}
1503
1504impl<S: BosStr> Serialize for OrgProfileDetailViewStatus<S> {
1505 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1506 where
1507 Ser: serde::Serializer,
1508 {
1509 serializer.serialize_str(self.as_str())
1510 }
1511}
1512
1513impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for OrgProfileDetailViewStatus<S> {
1514 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1515 where
1516 D: serde::Deserializer<'de>,
1517 {
1518 let s = S::deserialize(deserializer)?;
1519 Ok(Self::from_value(s))
1520 }
1521}
1522
1523impl<S: BosStr + Default> Default for OrgProfileDetailViewStatus<S> {
1524 fn default() -> Self {
1525 Self::Other(Default::default())
1526 }
1527}
1528
1529impl<S: BosStr> jacquard_common::IntoStatic for OrgProfileDetailViewStatus<S>
1530where
1531 S: BosStr + jacquard_common::IntoStatic,
1532 S::Output: BosStr,
1533{
1534 type Output = OrgProfileDetailViewStatus<S::Output>;
1535 fn into_static(self) -> Self::Output {
1536 match self {
1537 OrgProfileDetailViewStatus::Active => OrgProfileDetailViewStatus::Active,
1538 OrgProfileDetailViewStatus::Inactive => OrgProfileDetailViewStatus::Inactive,
1539 OrgProfileDetailViewStatus::Merged => OrgProfileDetailViewStatus::Merged,
1540 OrgProfileDetailViewStatus::Acquired => OrgProfileDetailViewStatus::Acquired,
1541 OrgProfileDetailViewStatus::Defunct => OrgProfileDetailViewStatus::Defunct,
1542 OrgProfileDetailViewStatus::Other(v) => {
1543 OrgProfileDetailViewStatus::Other(v.into_static())
1544 }
1545 }
1546 }
1547}
1548
1549#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1550#[serde(
1551 rename_all = "camelCase",
1552 bound(deserialize = "S: Deserialize<'de> + BosStr")
1553)]
1554pub struct OrgProfileSummaryView<S: BosStr = DefaultStr> {
1555 #[serde(skip_serializing_if = "Option::is_none")]
1556 pub avatar: Option<BlobRef<S>>,
1557 pub did: Did<S>,
1558 #[serde(skip_serializing_if = "Option::is_none")]
1559 pub display_name: Option<S>,
1560 pub uri: AtUri<S>,
1561 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1562 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1563}
1564
1565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1566pub enum PlatformCategory<S: BosStr = DefaultStr> {
1567 Console,
1568 Portable,
1569 Computer,
1570 Arcade,
1571 OperatingSystem,
1572 Other(S),
1573}
1574
1575impl<S: BosStr> PlatformCategory<S> {
1576 pub fn as_str(&self) -> &str {
1577 match self {
1578 Self::Console => "console",
1579 Self::Portable => "portable",
1580 Self::Computer => "computer",
1581 Self::Arcade => "arcade",
1582 Self::OperatingSystem => "operatingSystem",
1583 Self::Other(s) => s.as_ref(),
1584 }
1585 }
1586 pub fn from_value(s: S) -> Self {
1588 match s.as_ref() {
1589 "console" => Self::Console,
1590 "portable" => Self::Portable,
1591 "computer" => Self::Computer,
1592 "arcade" => Self::Arcade,
1593 "operatingSystem" => Self::OperatingSystem,
1594 _ => Self::Other(s),
1595 }
1596 }
1597}
1598
1599impl<S: BosStr> AsRef<str> for PlatformCategory<S> {
1600 fn as_ref(&self) -> &str {
1601 self.as_str()
1602 }
1603}
1604
1605impl<S: BosStr> core::fmt::Display for PlatformCategory<S> {
1606 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1607 write!(f, "{}", self.as_str())
1608 }
1609}
1610
1611impl<S: BosStr> Serialize for PlatformCategory<S> {
1612 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1613 where
1614 Ser: serde::Serializer,
1615 {
1616 serializer.serialize_str(self.as_str())
1617 }
1618}
1619
1620impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for PlatformCategory<S> {
1621 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1622 where
1623 D: serde::Deserializer<'de>,
1624 {
1625 let s = S::deserialize(deserializer)?;
1626 Ok(Self::from_value(s))
1627 }
1628}
1629
1630impl<S: BosStr> jacquard_common::IntoStatic for PlatformCategory<S>
1631where
1632 S: BosStr + jacquard_common::IntoStatic,
1633 S::Output: BosStr,
1634{
1635 type Output = PlatformCategory<S::Output>;
1636 fn into_static(self) -> Self::Output {
1637 match self {
1638 PlatformCategory::Console => PlatformCategory::Console,
1639 PlatformCategory::Portable => PlatformCategory::Portable,
1640 PlatformCategory::Computer => PlatformCategory::Computer,
1641 PlatformCategory::Arcade => PlatformCategory::Arcade,
1642 PlatformCategory::OperatingSystem => PlatformCategory::OperatingSystem,
1643 PlatformCategory::Other(v) => PlatformCategory::Other(v.into_static()),
1644 }
1645 }
1646}
1647
1648#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1651#[serde(
1652 rename_all = "camelCase",
1653 bound(deserialize = "S: Deserialize<'de> + BosStr")
1654)]
1655pub struct PlatformFeatures<S: BosStr = DefaultStr> {
1656 pub features: Vec<S>,
1657 pub platform: PlatformFeaturesPlatform<S>,
1658 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1659 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1660}
1661
1662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1663pub enum PlatformFeaturesPlatform<S: BosStr = DefaultStr> {
1664 Steam,
1665 Gog,
1666 EpicGames,
1667 PlayStation,
1668 Xbox,
1669 NintendoEshop,
1670 Other(S),
1671}
1672
1673impl<S: BosStr> PlatformFeaturesPlatform<S> {
1674 pub fn as_str(&self) -> &str {
1675 match self {
1676 Self::Steam => "steam",
1677 Self::Gog => "gog",
1678 Self::EpicGames => "epicGames",
1679 Self::PlayStation => "playStation",
1680 Self::Xbox => "xbox",
1681 Self::NintendoEshop => "nintendoEshop",
1682 Self::Other(s) => s.as_ref(),
1683 }
1684 }
1685 pub fn from_value(s: S) -> Self {
1687 match s.as_ref() {
1688 "steam" => Self::Steam,
1689 "gog" => Self::Gog,
1690 "epicGames" => Self::EpicGames,
1691 "playStation" => Self::PlayStation,
1692 "xbox" => Self::Xbox,
1693 "nintendoEshop" => Self::NintendoEshop,
1694 _ => Self::Other(s),
1695 }
1696 }
1697}
1698
1699impl<S: BosStr> core::fmt::Display for PlatformFeaturesPlatform<S> {
1700 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1701 write!(f, "{}", self.as_str())
1702 }
1703}
1704
1705impl<S: BosStr> AsRef<str> for PlatformFeaturesPlatform<S> {
1706 fn as_ref(&self) -> &str {
1707 self.as_str()
1708 }
1709}
1710
1711impl<S: BosStr> Serialize for PlatformFeaturesPlatform<S> {
1712 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1713 where
1714 Ser: serde::Serializer,
1715 {
1716 serializer.serialize_str(self.as_str())
1717 }
1718}
1719
1720impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for PlatformFeaturesPlatform<S> {
1721 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1722 where
1723 D: serde::Deserializer<'de>,
1724 {
1725 let s = S::deserialize(deserializer)?;
1726 Ok(Self::from_value(s))
1727 }
1728}
1729
1730impl<S: BosStr + Default> Default for PlatformFeaturesPlatform<S> {
1731 fn default() -> Self {
1732 Self::Other(Default::default())
1733 }
1734}
1735
1736impl<S: BosStr> jacquard_common::IntoStatic for PlatformFeaturesPlatform<S>
1737where
1738 S: BosStr + jacquard_common::IntoStatic,
1739 S::Output: BosStr,
1740{
1741 type Output = PlatformFeaturesPlatform<S::Output>;
1742 fn into_static(self) -> Self::Output {
1743 match self {
1744 PlatformFeaturesPlatform::Steam => PlatformFeaturesPlatform::Steam,
1745 PlatformFeaturesPlatform::Gog => PlatformFeaturesPlatform::Gog,
1746 PlatformFeaturesPlatform::EpicGames => PlatformFeaturesPlatform::EpicGames,
1747 PlatformFeaturesPlatform::PlayStation => PlatformFeaturesPlatform::PlayStation,
1748 PlatformFeaturesPlatform::Xbox => PlatformFeaturesPlatform::Xbox,
1749 PlatformFeaturesPlatform::NintendoEshop => PlatformFeaturesPlatform::NintendoEshop,
1750 PlatformFeaturesPlatform::Other(v) => PlatformFeaturesPlatform::Other(v.into_static()),
1751 }
1752 }
1753}
1754
1755#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1756#[serde(
1757 rename_all = "camelCase",
1758 bound(deserialize = "S: Deserialize<'de> + BosStr")
1759)]
1760pub struct PlatformSummaryView<S: BosStr = DefaultStr> {
1761 #[serde(skip_serializing_if = "Option::is_none")]
1762 pub abbreviation: Option<S>,
1763 #[serde(skip_serializing_if = "Option::is_none")]
1764 pub category: Option<games_gamesgamesgamesgames::PlatformCategory<S>>,
1765 pub name: S,
1766 #[serde(skip_serializing_if = "Option::is_none")]
1767 pub slug: Option<S>,
1768 pub uri: AtUri<S>,
1769 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1770 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1771}
1772
1773#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1774#[serde(
1775 rename_all = "camelCase",
1776 bound(deserialize = "S: Deserialize<'de> + BosStr")
1777)]
1778pub struct PlatformVersion<S: BosStr = DefaultStr> {
1779 #[serde(skip_serializing_if = "Option::is_none")]
1780 pub connectivity: Option<S>,
1781 #[serde(skip_serializing_if = "Option::is_none")]
1782 pub cpu: Option<S>,
1783 #[serde(skip_serializing_if = "Option::is_none")]
1784 pub gpu: Option<S>,
1785 #[serde(skip_serializing_if = "Option::is_none")]
1786 pub max_resolution: Option<S>,
1787 #[serde(skip_serializing_if = "Option::is_none")]
1788 pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
1789 #[serde(skip_serializing_if = "Option::is_none")]
1790 pub memory: Option<S>,
1791 pub name: S,
1792 #[serde(skip_serializing_if = "Option::is_none")]
1793 pub os: Option<S>,
1794 #[serde(skip_serializing_if = "Option::is_none")]
1795 pub output: Option<S>,
1796 #[serde(skip_serializing_if = "Option::is_none")]
1797 pub storage: Option<S>,
1798 #[serde(skip_serializing_if = "Option::is_none")]
1799 pub summary: Option<S>,
1800 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1801 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1802}
1803
1804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1805pub enum PlayerPerspective<S: BosStr = DefaultStr> {
1806 Auditory,
1807 FirstPerson,
1808 Isometric,
1809 SideView,
1810 Text,
1811 ThirdPerson,
1812 TopDown,
1813 Vr,
1814 Other(S),
1815}
1816
1817impl<S: BosStr> PlayerPerspective<S> {
1818 pub fn as_str(&self) -> &str {
1819 match self {
1820 Self::Auditory => "auditory",
1821 Self::FirstPerson => "firstPerson",
1822 Self::Isometric => "isometric",
1823 Self::SideView => "sideView",
1824 Self::Text => "text",
1825 Self::ThirdPerson => "thirdPerson",
1826 Self::TopDown => "topDown",
1827 Self::Vr => "vr",
1828 Self::Other(s) => s.as_ref(),
1829 }
1830 }
1831 pub fn from_value(s: S) -> Self {
1833 match s.as_ref() {
1834 "auditory" => Self::Auditory,
1835 "firstPerson" => Self::FirstPerson,
1836 "isometric" => Self::Isometric,
1837 "sideView" => Self::SideView,
1838 "text" => Self::Text,
1839 "thirdPerson" => Self::ThirdPerson,
1840 "topDown" => Self::TopDown,
1841 "vr" => Self::Vr,
1842 _ => Self::Other(s),
1843 }
1844 }
1845}
1846
1847impl<S: BosStr> AsRef<str> for PlayerPerspective<S> {
1848 fn as_ref(&self) -> &str {
1849 self.as_str()
1850 }
1851}
1852
1853impl<S: BosStr> core::fmt::Display for PlayerPerspective<S> {
1854 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1855 write!(f, "{}", self.as_str())
1856 }
1857}
1858
1859impl<S: BosStr> Serialize for PlayerPerspective<S> {
1860 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1861 where
1862 Ser: serde::Serializer,
1863 {
1864 serializer.serialize_str(self.as_str())
1865 }
1866}
1867
1868impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for PlayerPerspective<S> {
1869 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1870 where
1871 D: serde::Deserializer<'de>,
1872 {
1873 let s = S::deserialize(deserializer)?;
1874 Ok(Self::from_value(s))
1875 }
1876}
1877
1878impl<S: BosStr> jacquard_common::IntoStatic for PlayerPerspective<S>
1879where
1880 S: BosStr + jacquard_common::IntoStatic,
1881 S::Output: BosStr,
1882{
1883 type Output = PlayerPerspective<S::Output>;
1884 fn into_static(self) -> Self::Output {
1885 match self {
1886 PlayerPerspective::Auditory => PlayerPerspective::Auditory,
1887 PlayerPerspective::FirstPerson => PlayerPerspective::FirstPerson,
1888 PlayerPerspective::Isometric => PlayerPerspective::Isometric,
1889 PlayerPerspective::SideView => PlayerPerspective::SideView,
1890 PlayerPerspective::Text => PlayerPerspective::Text,
1891 PlayerPerspective::ThirdPerson => PlayerPerspective::ThirdPerson,
1892 PlayerPerspective::TopDown => PlayerPerspective::TopDown,
1893 PlayerPerspective::Vr => PlayerPerspective::Vr,
1894 PlayerPerspective::Other(v) => PlayerPerspective::Other(v.into_static()),
1895 }
1896 }
1897}
1898
1899#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1900#[serde(
1901 rename_all = "camelCase",
1902 bound(deserialize = "S: Deserialize<'de> + BosStr")
1903)]
1904pub struct ProfileSummaryView<S: BosStr = DefaultStr> {
1905 #[serde(skip_serializing_if = "Option::is_none")]
1906 pub avatar: Option<BlobRef<S>>,
1907 pub did: Did<S>,
1908 #[serde(skip_serializing_if = "Option::is_none")]
1909 pub display_name: Option<S>,
1910 pub profile_type: ProfileSummaryViewProfileType<S>,
1911 pub uri: AtUri<S>,
1912 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
1913 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
1914}
1915
1916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1917pub enum ProfileSummaryViewProfileType<S: BosStr = DefaultStr> {
1918 Actor,
1919 Org,
1920 Other(S),
1921}
1922
1923impl<S: BosStr> ProfileSummaryViewProfileType<S> {
1924 pub fn as_str(&self) -> &str {
1925 match self {
1926 Self::Actor => "actor",
1927 Self::Org => "org",
1928 Self::Other(s) => s.as_ref(),
1929 }
1930 }
1931 pub fn from_value(s: S) -> Self {
1933 match s.as_ref() {
1934 "actor" => Self::Actor,
1935 "org" => Self::Org,
1936 _ => Self::Other(s),
1937 }
1938 }
1939}
1940
1941impl<S: BosStr> core::fmt::Display for ProfileSummaryViewProfileType<S> {
1942 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1943 write!(f, "{}", self.as_str())
1944 }
1945}
1946
1947impl<S: BosStr> AsRef<str> for ProfileSummaryViewProfileType<S> {
1948 fn as_ref(&self) -> &str {
1949 self.as_str()
1950 }
1951}
1952
1953impl<S: BosStr> Serialize for ProfileSummaryViewProfileType<S> {
1954 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
1955 where
1956 Ser: serde::Serializer,
1957 {
1958 serializer.serialize_str(self.as_str())
1959 }
1960}
1961
1962impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for ProfileSummaryViewProfileType<S> {
1963 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1964 where
1965 D: serde::Deserializer<'de>,
1966 {
1967 let s = S::deserialize(deserializer)?;
1968 Ok(Self::from_value(s))
1969 }
1970}
1971
1972impl<S: BosStr + Default> Default for ProfileSummaryViewProfileType<S> {
1973 fn default() -> Self {
1974 Self::Other(Default::default())
1975 }
1976}
1977
1978impl<S: BosStr> jacquard_common::IntoStatic for ProfileSummaryViewProfileType<S>
1979where
1980 S: BosStr + jacquard_common::IntoStatic,
1981 S::Output: BosStr,
1982{
1983 type Output = ProfileSummaryViewProfileType<S::Output>;
1984 fn into_static(self) -> Self::Output {
1985 match self {
1986 ProfileSummaryViewProfileType::Actor => ProfileSummaryViewProfileType::Actor,
1987 ProfileSummaryViewProfileType::Org => ProfileSummaryViewProfileType::Org,
1988 ProfileSummaryViewProfileType::Other(v) => {
1989 ProfileSummaryViewProfileType::Other(v.into_static())
1990 }
1991 }
1992 }
1993}
1994
1995#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1996#[serde(
1997 rename_all = "camelCase",
1998 bound(deserialize = "S: Deserialize<'de> + BosStr")
1999)]
2000pub struct Release<S: BosStr = DefaultStr> {
2001 #[serde(skip_serializing_if = "Option::is_none")]
2003 pub platform: Option<S>,
2004 #[serde(skip_serializing_if = "Option::is_none")]
2006 pub platform_uri: Option<AtUri<S>>,
2007 #[serde(skip_serializing_if = "Option::is_none")]
2008 pub release_dates: Option<Vec<games_gamesgamesgamesgames::ReleaseDate<S>>>,
2009 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2010 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2011}
2012
2013#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
2014#[serde(
2015 rename_all = "camelCase",
2016 bound(deserialize = "S: Deserialize<'de> + BosStr")
2017)]
2018pub struct ReleaseDate<S: BosStr = DefaultStr> {
2019 #[serde(skip_serializing_if = "Option::is_none")]
2020 pub region: Option<ReleaseDateRegion<S>>,
2021 #[serde(skip_serializing_if = "Option::is_none")]
2022 pub released_at: Option<S>,
2023 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub released_at_format: Option<S>,
2025 #[serde(skip_serializing_if = "Option::is_none")]
2026 pub status: Option<ReleaseDateStatus<S>>,
2027 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2028 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2029}
2030
2031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2032pub enum ReleaseDateRegion<S: BosStr = DefaultStr> {
2033 Worldwide,
2034 Europe,
2035 NorthAmerica,
2036 Australia,
2037 NewZealand,
2038 Japan,
2039 China,
2040 Asia,
2041 Korea,
2042 Brazil,
2043 Other(S),
2044}
2045
2046impl<S: BosStr> ReleaseDateRegion<S> {
2047 pub fn as_str(&self) -> &str {
2048 match self {
2049 Self::Worldwide => "worldwide",
2050 Self::Europe => "europe",
2051 Self::NorthAmerica => "northAmerica",
2052 Self::Australia => "australia",
2053 Self::NewZealand => "newZealand",
2054 Self::Japan => "japan",
2055 Self::China => "china",
2056 Self::Asia => "asia",
2057 Self::Korea => "korea",
2058 Self::Brazil => "brazil",
2059 Self::Other(s) => s.as_ref(),
2060 }
2061 }
2062 pub fn from_value(s: S) -> Self {
2064 match s.as_ref() {
2065 "worldwide" => Self::Worldwide,
2066 "europe" => Self::Europe,
2067 "northAmerica" => Self::NorthAmerica,
2068 "australia" => Self::Australia,
2069 "newZealand" => Self::NewZealand,
2070 "japan" => Self::Japan,
2071 "china" => Self::China,
2072 "asia" => Self::Asia,
2073 "korea" => Self::Korea,
2074 "brazil" => Self::Brazil,
2075 _ => Self::Other(s),
2076 }
2077 }
2078}
2079
2080impl<S: BosStr> core::fmt::Display for ReleaseDateRegion<S> {
2081 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2082 write!(f, "{}", self.as_str())
2083 }
2084}
2085
2086impl<S: BosStr> AsRef<str> for ReleaseDateRegion<S> {
2087 fn as_ref(&self) -> &str {
2088 self.as_str()
2089 }
2090}
2091
2092impl<S: BosStr> Serialize for ReleaseDateRegion<S> {
2093 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
2094 where
2095 Ser: serde::Serializer,
2096 {
2097 serializer.serialize_str(self.as_str())
2098 }
2099}
2100
2101impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for ReleaseDateRegion<S> {
2102 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2103 where
2104 D: serde::Deserializer<'de>,
2105 {
2106 let s = S::deserialize(deserializer)?;
2107 Ok(Self::from_value(s))
2108 }
2109}
2110
2111impl<S: BosStr + Default> Default for ReleaseDateRegion<S> {
2112 fn default() -> Self {
2113 Self::Other(Default::default())
2114 }
2115}
2116
2117impl<S: BosStr> jacquard_common::IntoStatic for ReleaseDateRegion<S>
2118where
2119 S: BosStr + jacquard_common::IntoStatic,
2120 S::Output: BosStr,
2121{
2122 type Output = ReleaseDateRegion<S::Output>;
2123 fn into_static(self) -> Self::Output {
2124 match self {
2125 ReleaseDateRegion::Worldwide => ReleaseDateRegion::Worldwide,
2126 ReleaseDateRegion::Europe => ReleaseDateRegion::Europe,
2127 ReleaseDateRegion::NorthAmerica => ReleaseDateRegion::NorthAmerica,
2128 ReleaseDateRegion::Australia => ReleaseDateRegion::Australia,
2129 ReleaseDateRegion::NewZealand => ReleaseDateRegion::NewZealand,
2130 ReleaseDateRegion::Japan => ReleaseDateRegion::Japan,
2131 ReleaseDateRegion::China => ReleaseDateRegion::China,
2132 ReleaseDateRegion::Asia => ReleaseDateRegion::Asia,
2133 ReleaseDateRegion::Korea => ReleaseDateRegion::Korea,
2134 ReleaseDateRegion::Brazil => ReleaseDateRegion::Brazil,
2135 ReleaseDateRegion::Other(v) => ReleaseDateRegion::Other(v.into_static()),
2136 }
2137 }
2138}
2139
2140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2141pub enum ReleaseDateStatus<S: BosStr = DefaultStr> {
2142 AdvancedAccess,
2143 Alpha,
2144 Beta,
2145 Cancelled,
2146 DigitalCompatibilityRelease,
2147 EarlyAccess,
2148 NextGenOptimizationRelease,
2149 Offline,
2150 Release,
2151 Other(S),
2152}
2153
2154impl<S: BosStr> ReleaseDateStatus<S> {
2155 pub fn as_str(&self) -> &str {
2156 match self {
2157 Self::AdvancedAccess => "advancedAccess",
2158 Self::Alpha => "alpha",
2159 Self::Beta => "beta",
2160 Self::Cancelled => "cancelled",
2161 Self::DigitalCompatibilityRelease => "digitalCompatibilityRelease",
2162 Self::EarlyAccess => "earlyAccess",
2163 Self::NextGenOptimizationRelease => "nextGenOptimizationRelease",
2164 Self::Offline => "offline",
2165 Self::Release => "release",
2166 Self::Other(s) => s.as_ref(),
2167 }
2168 }
2169 pub fn from_value(s: S) -> Self {
2171 match s.as_ref() {
2172 "advancedAccess" => Self::AdvancedAccess,
2173 "alpha" => Self::Alpha,
2174 "beta" => Self::Beta,
2175 "cancelled" => Self::Cancelled,
2176 "digitalCompatibilityRelease" => Self::DigitalCompatibilityRelease,
2177 "earlyAccess" => Self::EarlyAccess,
2178 "nextGenOptimizationRelease" => Self::NextGenOptimizationRelease,
2179 "offline" => Self::Offline,
2180 "release" => Self::Release,
2181 _ => Self::Other(s),
2182 }
2183 }
2184}
2185
2186impl<S: BosStr> core::fmt::Display for ReleaseDateStatus<S> {
2187 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2188 write!(f, "{}", self.as_str())
2189 }
2190}
2191
2192impl<S: BosStr> AsRef<str> for ReleaseDateStatus<S> {
2193 fn as_ref(&self) -> &str {
2194 self.as_str()
2195 }
2196}
2197
2198impl<S: BosStr> Serialize for ReleaseDateStatus<S> {
2199 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
2200 where
2201 Ser: serde::Serializer,
2202 {
2203 serializer.serialize_str(self.as_str())
2204 }
2205}
2206
2207impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for ReleaseDateStatus<S> {
2208 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2209 where
2210 D: serde::Deserializer<'de>,
2211 {
2212 let s = S::deserialize(deserializer)?;
2213 Ok(Self::from_value(s))
2214 }
2215}
2216
2217impl<S: BosStr + Default> Default for ReleaseDateStatus<S> {
2218 fn default() -> Self {
2219 Self::Other(Default::default())
2220 }
2221}
2222
2223impl<S: BosStr> jacquard_common::IntoStatic for ReleaseDateStatus<S>
2224where
2225 S: BosStr + jacquard_common::IntoStatic,
2226 S::Output: BosStr,
2227{
2228 type Output = ReleaseDateStatus<S::Output>;
2229 fn into_static(self) -> Self::Output {
2230 match self {
2231 ReleaseDateStatus::AdvancedAccess => ReleaseDateStatus::AdvancedAccess,
2232 ReleaseDateStatus::Alpha => ReleaseDateStatus::Alpha,
2233 ReleaseDateStatus::Beta => ReleaseDateStatus::Beta,
2234 ReleaseDateStatus::Cancelled => ReleaseDateStatus::Cancelled,
2235 ReleaseDateStatus::DigitalCompatibilityRelease => {
2236 ReleaseDateStatus::DigitalCompatibilityRelease
2237 }
2238 ReleaseDateStatus::EarlyAccess => ReleaseDateStatus::EarlyAccess,
2239 ReleaseDateStatus::NextGenOptimizationRelease => {
2240 ReleaseDateStatus::NextGenOptimizationRelease
2241 }
2242 ReleaseDateStatus::Offline => ReleaseDateStatus::Offline,
2243 ReleaseDateStatus::Release => ReleaseDateStatus::Release,
2244 ReleaseDateStatus::Other(v) => ReleaseDateStatus::Other(v.into_static()),
2245 }
2246 }
2247}
2248
2249#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
2252#[serde(
2253 rename_all = "camelCase",
2254 bound(deserialize = "S: Deserialize<'de> + BosStr")
2255)]
2256pub struct Signature<S: BosStr = DefaultStr> {
2257 pub key: S,
2259 #[serde(with = "jacquard_common::serde_bytes_helper")]
2261 pub signature: Bytes,
2262 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2263 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2264}
2265
2266#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
2267#[serde(
2268 rename_all = "camelCase",
2269 bound(deserialize = "S: Deserialize<'de> + BosStr")
2270)]
2271pub struct SkeletonGameFeedItem<S: BosStr = DefaultStr> {
2272 #[serde(skip_serializing_if = "Option::is_none")]
2273 pub feed_context: Option<S>,
2274 pub game: AtUri<S>,
2275 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2276 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2277}
2278
2279#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
2282#[serde(
2283 rename_all = "camelCase",
2284 bound(deserialize = "S: Deserialize<'de> + BosStr")
2285)]
2286pub struct SystemRequirements<S: BosStr = DefaultStr> {
2287 #[serde(skip_serializing_if = "Option::is_none")]
2288 pub minimum: Option<games_gamesgamesgamesgames::SystemSpec<S>>,
2289 pub platform: SystemRequirementsPlatform<S>,
2290 #[serde(skip_serializing_if = "Option::is_none")]
2291 pub recommended: Option<games_gamesgamesgamesgames::SystemSpec<S>>,
2292 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2293 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2294}
2295
2296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2297pub enum SystemRequirementsPlatform<S: BosStr = DefaultStr> {
2298 Windows,
2299 Mac,
2300 Linux,
2301 Other(S),
2302}
2303
2304impl<S: BosStr> SystemRequirementsPlatform<S> {
2305 pub fn as_str(&self) -> &str {
2306 match self {
2307 Self::Windows => "windows",
2308 Self::Mac => "mac",
2309 Self::Linux => "linux",
2310 Self::Other(s) => s.as_ref(),
2311 }
2312 }
2313 pub fn from_value(s: S) -> Self {
2315 match s.as_ref() {
2316 "windows" => Self::Windows,
2317 "mac" => Self::Mac,
2318 "linux" => Self::Linux,
2319 _ => Self::Other(s),
2320 }
2321 }
2322}
2323
2324impl<S: BosStr> core::fmt::Display for SystemRequirementsPlatform<S> {
2325 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2326 write!(f, "{}", self.as_str())
2327 }
2328}
2329
2330impl<S: BosStr> AsRef<str> for SystemRequirementsPlatform<S> {
2331 fn as_ref(&self) -> &str {
2332 self.as_str()
2333 }
2334}
2335
2336impl<S: BosStr> Serialize for SystemRequirementsPlatform<S> {
2337 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
2338 where
2339 Ser: serde::Serializer,
2340 {
2341 serializer.serialize_str(self.as_str())
2342 }
2343}
2344
2345impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for SystemRequirementsPlatform<S> {
2346 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2347 where
2348 D: serde::Deserializer<'de>,
2349 {
2350 let s = S::deserialize(deserializer)?;
2351 Ok(Self::from_value(s))
2352 }
2353}
2354
2355impl<S: BosStr + Default> Default for SystemRequirementsPlatform<S> {
2356 fn default() -> Self {
2357 Self::Other(Default::default())
2358 }
2359}
2360
2361impl<S: BosStr> jacquard_common::IntoStatic for SystemRequirementsPlatform<S>
2362where
2363 S: BosStr + jacquard_common::IntoStatic,
2364 S::Output: BosStr,
2365{
2366 type Output = SystemRequirementsPlatform<S::Output>;
2367 fn into_static(self) -> Self::Output {
2368 match self {
2369 SystemRequirementsPlatform::Windows => SystemRequirementsPlatform::Windows,
2370 SystemRequirementsPlatform::Mac => SystemRequirementsPlatform::Mac,
2371 SystemRequirementsPlatform::Linux => SystemRequirementsPlatform::Linux,
2372 SystemRequirementsPlatform::Other(v) => {
2373 SystemRequirementsPlatform::Other(v.into_static())
2374 }
2375 }
2376 }
2377}
2378
2379#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
2382#[serde(
2383 rename_all = "camelCase",
2384 bound(deserialize = "S: Deserialize<'de> + BosStr")
2385)]
2386pub struct SystemSpec<S: BosStr = DefaultStr> {
2387 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub additional_notes: Option<S>,
2389 #[serde(skip_serializing_if = "Option::is_none")]
2390 pub directx: Option<S>,
2391 #[serde(skip_serializing_if = "Option::is_none")]
2392 pub graphics: Option<S>,
2393 #[serde(skip_serializing_if = "Option::is_none")]
2394 pub memory: Option<S>,
2395 #[serde(skip_serializing_if = "Option::is_none")]
2396 pub os: Option<S>,
2397 #[serde(skip_serializing_if = "Option::is_none")]
2398 pub processor: Option<S>,
2399 #[serde(skip_serializing_if = "Option::is_none")]
2400 pub sound_card: Option<S>,
2401 #[serde(skip_serializing_if = "Option::is_none")]
2402 pub storage: Option<S>,
2403 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2404 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2405}
2406
2407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2408pub enum Theme<S: BosStr = DefaultStr> {
2409 _4x,
2410 Action,
2411 Business,
2412 Comedy,
2413 Drama,
2414 Educational,
2415 Erotic,
2416 Fantasy,
2417 Historical,
2418 Horror,
2419 Kids,
2420 Mystery,
2421 Nonfiction,
2422 OpenWorld,
2423 Party,
2424 Romance,
2425 Sandbox,
2426 Scifi,
2427 Stealth,
2428 Survival,
2429 Thriller,
2430 Warfare,
2431 Other(S),
2432}
2433
2434impl<S: BosStr> Theme<S> {
2435 pub fn as_str(&self) -> &str {
2436 match self {
2437 Self::_4x => "4x",
2438 Self::Action => "action",
2439 Self::Business => "business",
2440 Self::Comedy => "comedy",
2441 Self::Drama => "drama",
2442 Self::Educational => "educational",
2443 Self::Erotic => "erotic",
2444 Self::Fantasy => "fantasy",
2445 Self::Historical => "historical",
2446 Self::Horror => "horror",
2447 Self::Kids => "kids",
2448 Self::Mystery => "mystery",
2449 Self::Nonfiction => "nonfiction",
2450 Self::OpenWorld => "openWorld",
2451 Self::Party => "party",
2452 Self::Romance => "romance",
2453 Self::Sandbox => "sandbox",
2454 Self::Scifi => "scifi",
2455 Self::Stealth => "stealth",
2456 Self::Survival => "survival",
2457 Self::Thriller => "thriller",
2458 Self::Warfare => "warfare",
2459 Self::Other(s) => s.as_ref(),
2460 }
2461 }
2462 pub fn from_value(s: S) -> Self {
2464 match s.as_ref() {
2465 "4x" => Self::_4x,
2466 "action" => Self::Action,
2467 "business" => Self::Business,
2468 "comedy" => Self::Comedy,
2469 "drama" => Self::Drama,
2470 "educational" => Self::Educational,
2471 "erotic" => Self::Erotic,
2472 "fantasy" => Self::Fantasy,
2473 "historical" => Self::Historical,
2474 "horror" => Self::Horror,
2475 "kids" => Self::Kids,
2476 "mystery" => Self::Mystery,
2477 "nonfiction" => Self::Nonfiction,
2478 "openWorld" => Self::OpenWorld,
2479 "party" => Self::Party,
2480 "romance" => Self::Romance,
2481 "sandbox" => Self::Sandbox,
2482 "scifi" => Self::Scifi,
2483 "stealth" => Self::Stealth,
2484 "survival" => Self::Survival,
2485 "thriller" => Self::Thriller,
2486 "warfare" => Self::Warfare,
2487 _ => Self::Other(s),
2488 }
2489 }
2490}
2491
2492impl<S: BosStr> AsRef<str> for Theme<S> {
2493 fn as_ref(&self) -> &str {
2494 self.as_str()
2495 }
2496}
2497
2498impl<S: BosStr> core::fmt::Display for Theme<S> {
2499 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2500 write!(f, "{}", self.as_str())
2501 }
2502}
2503
2504impl<S: BosStr> Serialize for Theme<S> {
2505 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
2506 where
2507 Ser: serde::Serializer,
2508 {
2509 serializer.serialize_str(self.as_str())
2510 }
2511}
2512
2513impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for Theme<S> {
2514 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2515 where
2516 D: serde::Deserializer<'de>,
2517 {
2518 let s = S::deserialize(deserializer)?;
2519 Ok(Self::from_value(s))
2520 }
2521}
2522
2523impl<S: BosStr> jacquard_common::IntoStatic for Theme<S>
2524where
2525 S: BosStr + jacquard_common::IntoStatic,
2526 S::Output: BosStr,
2527{
2528 type Output = Theme<S::Output>;
2529 fn into_static(self) -> Self::Output {
2530 match self {
2531 Theme::_4x => Theme::_4x,
2532 Theme::Action => Theme::Action,
2533 Theme::Business => Theme::Business,
2534 Theme::Comedy => Theme::Comedy,
2535 Theme::Drama => Theme::Drama,
2536 Theme::Educational => Theme::Educational,
2537 Theme::Erotic => Theme::Erotic,
2538 Theme::Fantasy => Theme::Fantasy,
2539 Theme::Historical => Theme::Historical,
2540 Theme::Horror => Theme::Horror,
2541 Theme::Kids => Theme::Kids,
2542 Theme::Mystery => Theme::Mystery,
2543 Theme::Nonfiction => Theme::Nonfiction,
2544 Theme::OpenWorld => Theme::OpenWorld,
2545 Theme::Party => Theme::Party,
2546 Theme::Romance => Theme::Romance,
2547 Theme::Sandbox => Theme::Sandbox,
2548 Theme::Scifi => Theme::Scifi,
2549 Theme::Stealth => Theme::Stealth,
2550 Theme::Survival => Theme::Survival,
2551 Theme::Thriller => Theme::Thriller,
2552 Theme::Warfare => Theme::Warfare,
2553 Theme::Other(v) => Theme::Other(v.into_static()),
2554 }
2555 }
2556}
2557
2558#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
2559#[serde(
2560 rename_all = "camelCase",
2561 bound(deserialize = "S: Deserialize<'de> + BosStr")
2562)]
2563pub struct TimeToBeat<S: BosStr = DefaultStr> {
2564 #[serde(skip_serializing_if = "Option::is_none")]
2565 pub completely: Option<i64>,
2566 #[serde(skip_serializing_if = "Option::is_none")]
2567 pub hastily: Option<i64>,
2568 #[serde(skip_serializing_if = "Option::is_none")]
2569 pub normally: Option<i64>,
2570 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2571 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2572}
2573
2574#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
2575#[serde(
2576 rename_all = "camelCase",
2577 bound(deserialize = "S: Deserialize<'de> + BosStr")
2578)]
2579pub struct ViewerState<S: BosStr = DefaultStr> {
2580 #[serde(skip_serializing_if = "Option::is_none")]
2581 pub like: Option<AtUri<S>>,
2582 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2583 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2584}
2585
2586#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
2587#[serde(
2588 rename_all = "camelCase",
2589 bound(deserialize = "S: Deserialize<'de> + BosStr")
2590)]
2591pub struct Website<S: BosStr = DefaultStr> {
2592 #[serde(skip_serializing_if = "Option::is_none")]
2593 pub r#type: Option<WebsiteType<S>>,
2594 pub url: UriValue<S>,
2595 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
2596 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
2597}
2598
2599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2600pub enum WebsiteType<S: BosStr = DefaultStr> {
2601 Official,
2602 Wiki,
2603 Steam,
2604 Gog,
2605 EpicGames,
2606 ItchIo,
2607 Twitter,
2608 Instagram,
2609 Youtube,
2610 Twitch,
2611 Discord,
2612 Reddit,
2613 Facebook,
2614 Wikipedia,
2615 Bluesky,
2616 Xbox,
2617 Playstation,
2618 Nintendo,
2619 Meta,
2620 Other,
2621 UnknownValue(S),
2622}
2623
2624impl<S: BosStr> WebsiteType<S> {
2625 pub fn as_str(&self) -> &str {
2626 match self {
2627 Self::Official => "official",
2628 Self::Wiki => "wiki",
2629 Self::Steam => "steam",
2630 Self::Gog => "gog",
2631 Self::EpicGames => "epicGames",
2632 Self::ItchIo => "itchIo",
2633 Self::Twitter => "twitter",
2634 Self::Instagram => "instagram",
2635 Self::Youtube => "youtube",
2636 Self::Twitch => "twitch",
2637 Self::Discord => "discord",
2638 Self::Reddit => "reddit",
2639 Self::Facebook => "facebook",
2640 Self::Wikipedia => "wikipedia",
2641 Self::Bluesky => "bluesky",
2642 Self::Xbox => "xbox",
2643 Self::Playstation => "playstation",
2644 Self::Nintendo => "nintendo",
2645 Self::Meta => "meta",
2646 Self::Other => "other",
2647 Self::UnknownValue(s) => s.as_ref(),
2648 }
2649 }
2650 pub fn from_value(s: S) -> Self {
2652 match s.as_ref() {
2653 "official" => Self::Official,
2654 "wiki" => Self::Wiki,
2655 "steam" => Self::Steam,
2656 "gog" => Self::Gog,
2657 "epicGames" => Self::EpicGames,
2658 "itchIo" => Self::ItchIo,
2659 "twitter" => Self::Twitter,
2660 "instagram" => Self::Instagram,
2661 "youtube" => Self::Youtube,
2662 "twitch" => Self::Twitch,
2663 "discord" => Self::Discord,
2664 "reddit" => Self::Reddit,
2665 "facebook" => Self::Facebook,
2666 "wikipedia" => Self::Wikipedia,
2667 "bluesky" => Self::Bluesky,
2668 "xbox" => Self::Xbox,
2669 "playstation" => Self::Playstation,
2670 "nintendo" => Self::Nintendo,
2671 "meta" => Self::Meta,
2672 "other" => Self::Other,
2673 _ => Self::UnknownValue(s),
2674 }
2675 }
2676}
2677
2678impl<S: BosStr> core::fmt::Display for WebsiteType<S> {
2679 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2680 write!(f, "{}", self.as_str())
2681 }
2682}
2683
2684impl<S: BosStr> AsRef<str> for WebsiteType<S> {
2685 fn as_ref(&self) -> &str {
2686 self.as_str()
2687 }
2688}
2689
2690impl<S: BosStr> Serialize for WebsiteType<S> {
2691 fn serialize<Ser>(&self, serializer: Ser) -> Result<Ser::Ok, Ser::Error>
2692 where
2693 Ser: serde::Serializer,
2694 {
2695 serializer.serialize_str(self.as_str())
2696 }
2697}
2698
2699impl<'de, S: Deserialize<'de> + BosStr> Deserialize<'de> for WebsiteType<S> {
2700 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2701 where
2702 D: serde::Deserializer<'de>,
2703 {
2704 let s = S::deserialize(deserializer)?;
2705 Ok(Self::from_value(s))
2706 }
2707}
2708
2709impl<S: BosStr + Default> Default for WebsiteType<S> {
2710 fn default() -> Self {
2711 Self::UnknownValue(Default::default())
2712 }
2713}
2714
2715impl<S: BosStr> jacquard_common::IntoStatic for WebsiteType<S>
2716where
2717 S: BosStr + jacquard_common::IntoStatic,
2718 S::Output: BosStr,
2719{
2720 type Output = WebsiteType<S::Output>;
2721 fn into_static(self) -> Self::Output {
2722 match self {
2723 WebsiteType::Official => WebsiteType::Official,
2724 WebsiteType::Wiki => WebsiteType::Wiki,
2725 WebsiteType::Steam => WebsiteType::Steam,
2726 WebsiteType::Gog => WebsiteType::Gog,
2727 WebsiteType::EpicGames => WebsiteType::EpicGames,
2728 WebsiteType::ItchIo => WebsiteType::ItchIo,
2729 WebsiteType::Twitter => WebsiteType::Twitter,
2730 WebsiteType::Instagram => WebsiteType::Instagram,
2731 WebsiteType::Youtube => WebsiteType::Youtube,
2732 WebsiteType::Twitch => WebsiteType::Twitch,
2733 WebsiteType::Discord => WebsiteType::Discord,
2734 WebsiteType::Reddit => WebsiteType::Reddit,
2735 WebsiteType::Facebook => WebsiteType::Facebook,
2736 WebsiteType::Wikipedia => WebsiteType::Wikipedia,
2737 WebsiteType::Bluesky => WebsiteType::Bluesky,
2738 WebsiteType::Xbox => WebsiteType::Xbox,
2739 WebsiteType::Playstation => WebsiteType::Playstation,
2740 WebsiteType::Nintendo => WebsiteType::Nintendo,
2741 WebsiteType::Meta => WebsiteType::Meta,
2742 WebsiteType::Other => WebsiteType::Other,
2743 WebsiteType::UnknownValue(v) => WebsiteType::UnknownValue(v.into_static()),
2744 }
2745 }
2746}
2747
2748impl<S: BosStr> LexiconSchema for ActivityFeedItem<S> {
2749 fn nsid() -> &'static str {
2750 "games.gamesgamesgamesgames.defs"
2751 }
2752 fn def_name() -> &'static str {
2753 "activityFeedItem"
2754 }
2755 fn lexicon_doc() -> LexiconDoc<'static> {
2756 lexicon_doc_games_gamesgamesgamesgames_defs()
2757 }
2758 fn validate(&self) -> Result<(), ConstraintError> {
2759 Ok(())
2760 }
2761}
2762
2763impl<S: BosStr> LexiconSchema for ActivityListView<S> {
2764 fn nsid() -> &'static str {
2765 "games.gamesgamesgamesgames.defs"
2766 }
2767 fn def_name() -> &'static str {
2768 "activityListView"
2769 }
2770 fn lexicon_doc() -> LexiconDoc<'static> {
2771 lexicon_doc_games_gamesgamesgamesgames_defs()
2772 }
2773 fn validate(&self) -> Result<(), ConstraintError> {
2774 Ok(())
2775 }
2776}
2777
2778impl<S: BosStr> LexiconSchema for ActivityReviewView<S> {
2779 fn nsid() -> &'static str {
2780 "games.gamesgamesgamesgames.defs"
2781 }
2782 fn def_name() -> &'static str {
2783 "activityReviewView"
2784 }
2785 fn lexicon_doc() -> LexiconDoc<'static> {
2786 lexicon_doc_games_gamesgamesgamesgames_defs()
2787 }
2788 fn validate(&self) -> Result<(), ConstraintError> {
2789 {
2790 let value = &self.rating;
2791 if *value > 10i64 {
2792 return Err(ConstraintError::Maximum {
2793 path: ValidationPath::from_field("rating"),
2794 max: 10i64,
2795 actual: *value,
2796 });
2797 }
2798 }
2799 {
2800 let value = &self.rating;
2801 if *value < 0i64 {
2802 return Err(ConstraintError::Minimum {
2803 path: ValidationPath::from_field("rating"),
2804 min: 0i64,
2805 actual: *value,
2806 });
2807 }
2808 }
2809 Ok(())
2810 }
2811}
2812
2813impl<S: BosStr> LexiconSchema for ActorCreditView<S> {
2814 fn nsid() -> &'static str {
2815 "games.gamesgamesgamesgames.defs"
2816 }
2817 fn def_name() -> &'static str {
2818 "actorCreditView"
2819 }
2820 fn lexicon_doc() -> LexiconDoc<'static> {
2821 lexicon_doc_games_gamesgamesgamesgames_defs()
2822 }
2823 fn validate(&self) -> Result<(), ConstraintError> {
2824 if let Some(ref value) = self.display_name {
2825 #[allow(unused_comparisons)]
2826 if <str>::len(value.as_ref()) > 640usize {
2827 return Err(ConstraintError::MaxLength {
2828 path: ValidationPath::from_field("display_name"),
2829 max: 640usize,
2830 actual: <str>::len(value.as_ref()),
2831 });
2832 }
2833 }
2834 Ok(())
2835 }
2836}
2837
2838impl<S: BosStr> LexiconSchema for ActorProfileDetailView<S> {
2839 fn nsid() -> &'static str {
2840 "games.gamesgamesgamesgames.defs"
2841 }
2842 fn def_name() -> &'static str {
2843 "actorProfileDetailView"
2844 }
2845 fn lexicon_doc() -> LexiconDoc<'static> {
2846 lexicon_doc_games_gamesgamesgamesgames_defs()
2847 }
2848 fn validate(&self) -> Result<(), ConstraintError> {
2849 if let Some(ref value) = self.avatar {
2850 {
2851 let size = value.blob().size;
2852 if size > 10000000usize {
2853 return Err(ConstraintError::BlobTooLarge {
2854 path: ValidationPath::from_field("avatar"),
2855 max: 10000000usize,
2856 actual: size,
2857 });
2858 }
2859 }
2860 }
2861 if let Some(ref value) = self.avatar {
2862 {
2863 let mime = value.blob().mime_type.as_str();
2864 let accepted: &[&str] = &["image/png", "image/jpeg"];
2865 let matched = accepted.iter().any(|pattern| {
2866 if *pattern == "*/*" {
2867 true
2868 } else if pattern.ends_with("/*") {
2869 let prefix = &pattern[..pattern.len() - 2];
2870 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
2871 } else {
2872 mime == *pattern
2873 }
2874 });
2875 if !matched {
2876 return Err(ConstraintError::BlobMimeTypeNotAccepted {
2877 path: ValidationPath::from_field("avatar"),
2878 accepted: vec!["image/png".to_string(), "image/jpeg".to_string()],
2879 actual: mime.to_string(),
2880 });
2881 }
2882 }
2883 }
2884 if let Some(ref value) = self.description {
2885 #[allow(unused_comparisons)]
2886 if <str>::len(value.as_ref()) > 3000usize {
2887 return Err(ConstraintError::MaxLength {
2888 path: ValidationPath::from_field("description"),
2889 max: 3000usize,
2890 actual: <str>::len(value.as_ref()),
2891 });
2892 }
2893 }
2894 if let Some(ref value) = self.display_name {
2895 #[allow(unused_comparisons)]
2896 if <str>::len(value.as_ref()) > 640usize {
2897 return Err(ConstraintError::MaxLength {
2898 path: ValidationPath::from_field("display_name"),
2899 max: 640usize,
2900 actual: <str>::len(value.as_ref()),
2901 });
2902 }
2903 }
2904 if let Some(ref value) = self.pronouns {
2905 #[allow(unused_comparisons)]
2906 if <str>::len(value.as_ref()) > 200usize {
2907 return Err(ConstraintError::MaxLength {
2908 path: ValidationPath::from_field("pronouns"),
2909 max: 200usize,
2910 actual: <str>::len(value.as_ref()),
2911 });
2912 }
2913 }
2914 Ok(())
2915 }
2916}
2917
2918impl<S: BosStr> LexiconSchema for ActorProfileSummaryView<S> {
2919 fn nsid() -> &'static str {
2920 "games.gamesgamesgamesgames.defs"
2921 }
2922 fn def_name() -> &'static str {
2923 "actorProfileSummaryView"
2924 }
2925 fn lexicon_doc() -> LexiconDoc<'static> {
2926 lexicon_doc_games_gamesgamesgamesgames_defs()
2927 }
2928 fn validate(&self) -> Result<(), ConstraintError> {
2929 if let Some(ref value) = self.avatar {
2930 {
2931 let size = value.blob().size;
2932 if size > 10000000usize {
2933 return Err(ConstraintError::BlobTooLarge {
2934 path: ValidationPath::from_field("avatar"),
2935 max: 10000000usize,
2936 actual: size,
2937 });
2938 }
2939 }
2940 }
2941 if let Some(ref value) = self.avatar {
2942 {
2943 let mime = value.blob().mime_type.as_str();
2944 let accepted: &[&str] = &["image/png", "image/jpeg"];
2945 let matched = accepted.iter().any(|pattern| {
2946 if *pattern == "*/*" {
2947 true
2948 } else if pattern.ends_with("/*") {
2949 let prefix = &pattern[..pattern.len() - 2];
2950 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
2951 } else {
2952 mime == *pattern
2953 }
2954 });
2955 if !matched {
2956 return Err(ConstraintError::BlobMimeTypeNotAccepted {
2957 path: ValidationPath::from_field("avatar"),
2958 accepted: vec!["image/png".to_string(), "image/jpeg".to_string()],
2959 actual: mime.to_string(),
2960 });
2961 }
2962 }
2963 }
2964 if let Some(ref value) = self.display_name {
2965 #[allow(unused_comparisons)]
2966 if <str>::len(value.as_ref()) > 640usize {
2967 return Err(ConstraintError::MaxLength {
2968 path: ValidationPath::from_field("display_name"),
2969 max: 640usize,
2970 actual: <str>::len(value.as_ref()),
2971 });
2972 }
2973 }
2974 Ok(())
2975 }
2976}
2977
2978impl<S: BosStr> LexiconSchema for AgeRating<S> {
2979 fn nsid() -> &'static str {
2980 "games.gamesgamesgamesgames.defs"
2981 }
2982 fn def_name() -> &'static str {
2983 "ageRating"
2984 }
2985 fn lexicon_doc() -> LexiconDoc<'static> {
2986 lexicon_doc_games_gamesgamesgamesgames_defs()
2987 }
2988 fn validate(&self) -> Result<(), ConstraintError> {
2989 Ok(())
2990 }
2991}
2992
2993impl<S: BosStr> LexiconSchema for AlternativeName<S> {
2994 fn nsid() -> &'static str {
2995 "games.gamesgamesgamesgames.defs"
2996 }
2997 fn def_name() -> &'static str {
2998 "alternativeName"
2999 }
3000 fn lexicon_doc() -> LexiconDoc<'static> {
3001 lexicon_doc_games_gamesgamesgamesgames_defs()
3002 }
3003 fn validate(&self) -> Result<(), ConstraintError> {
3004 Ok(())
3005 }
3006}
3007
3008impl<S: BosStr> LexiconSchema for CollectionSummaryView<S> {
3009 fn nsid() -> &'static str {
3010 "games.gamesgamesgamesgames.defs"
3011 }
3012 fn def_name() -> &'static str {
3013 "collectionSummaryView"
3014 }
3015 fn lexicon_doc() -> LexiconDoc<'static> {
3016 lexicon_doc_games_gamesgamesgamesgames_defs()
3017 }
3018 fn validate(&self) -> Result<(), ConstraintError> {
3019 Ok(())
3020 }
3021}
3022
3023impl<S: BosStr> LexiconSchema for CommunityFeedActorView<S> {
3024 fn nsid() -> &'static str {
3025 "games.gamesgamesgamesgames.defs"
3026 }
3027 fn def_name() -> &'static str {
3028 "communityFeedActorView"
3029 }
3030 fn lexicon_doc() -> LexiconDoc<'static> {
3031 lexicon_doc_games_gamesgamesgamesgames_defs()
3032 }
3033 fn validate(&self) -> Result<(), ConstraintError> {
3034 if let Some(ref value) = self.display_name {
3035 #[allow(unused_comparisons)]
3036 if <str>::len(value.as_ref()) > 640usize {
3037 return Err(ConstraintError::MaxLength {
3038 path: ValidationPath::from_field("display_name"),
3039 max: 640usize,
3040 actual: <str>::len(value.as_ref()),
3041 });
3042 }
3043 }
3044 Ok(())
3045 }
3046}
3047
3048impl<S: BosStr> LexiconSchema for CommunityFeedItem<S> {
3049 fn nsid() -> &'static str {
3050 "games.gamesgamesgamesgames.defs"
3051 }
3052 fn def_name() -> &'static str {
3053 "communityFeedItem"
3054 }
3055 fn lexicon_doc() -> LexiconDoc<'static> {
3056 lexicon_doc_games_gamesgamesgamesgames_defs()
3057 }
3058 fn validate(&self) -> Result<(), ConstraintError> {
3059 Ok(())
3060 }
3061}
3062
3063impl<S: BosStr> LexiconSchema for CreditEntry<S> {
3064 fn nsid() -> &'static str {
3065 "games.gamesgamesgamesgames.defs"
3066 }
3067 fn def_name() -> &'static str {
3068 "creditEntry"
3069 }
3070 fn lexicon_doc() -> LexiconDoc<'static> {
3071 lexicon_doc_games_gamesgamesgamesgames_defs()
3072 }
3073 fn validate(&self) -> Result<(), ConstraintError> {
3074 if let Some(ref value) = self.department {
3075 #[allow(unused_comparisons)]
3076 if <str>::len(value.as_ref()) > 640usize {
3077 return Err(ConstraintError::MaxLength {
3078 path: ValidationPath::from_field("department"),
3079 max: 640usize,
3080 actual: <str>::len(value.as_ref()),
3081 });
3082 }
3083 }
3084 Ok(())
3085 }
3086}
3087
3088impl<S: BosStr> LexiconSchema for EngineSummaryView<S> {
3089 fn nsid() -> &'static str {
3090 "games.gamesgamesgamesgames.defs"
3091 }
3092 fn def_name() -> &'static str {
3093 "engineSummaryView"
3094 }
3095 fn lexicon_doc() -> LexiconDoc<'static> {
3096 lexicon_doc_games_gamesgamesgamesgames_defs()
3097 }
3098 fn validate(&self) -> Result<(), ConstraintError> {
3099 Ok(())
3100 }
3101}
3102
3103impl<S: BosStr> LexiconSchema for ExternalIds<S> {
3104 fn nsid() -> &'static str {
3105 "games.gamesgamesgamesgames.defs"
3106 }
3107 fn def_name() -> &'static str {
3108 "externalIds"
3109 }
3110 fn lexicon_doc() -> LexiconDoc<'static> {
3111 lexicon_doc_games_gamesgamesgamesgames_defs()
3112 }
3113 fn validate(&self) -> Result<(), ConstraintError> {
3114 Ok(())
3115 }
3116}
3117
3118impl<S: BosStr> LexiconSchema for ExternalVideo<S> {
3119 fn nsid() -> &'static str {
3120 "games.gamesgamesgamesgames.defs"
3121 }
3122 fn def_name() -> &'static str {
3123 "externalVideo"
3124 }
3125 fn lexicon_doc() -> LexiconDoc<'static> {
3126 lexicon_doc_games_gamesgamesgamesgames_defs()
3127 }
3128 fn validate(&self) -> Result<(), ConstraintError> {
3129 Ok(())
3130 }
3131}
3132
3133impl<S: BosStr> LexiconSchema for GameDetailView<S> {
3134 fn nsid() -> &'static str {
3135 "games.gamesgamesgamesgames.defs"
3136 }
3137 fn def_name() -> &'static str {
3138 "gameDetailView"
3139 }
3140 fn lexicon_doc() -> LexiconDoc<'static> {
3141 lexicon_doc_games_gamesgamesgamesgames_defs()
3142 }
3143 fn validate(&self) -> Result<(), ConstraintError> {
3144 Ok(())
3145 }
3146}
3147
3148impl<S: BosStr> LexiconSchema for GameFeedViewItem<S> {
3149 fn nsid() -> &'static str {
3150 "games.gamesgamesgamesgames.defs"
3151 }
3152 fn def_name() -> &'static str {
3153 "gameFeedViewItem"
3154 }
3155 fn lexicon_doc() -> LexiconDoc<'static> {
3156 lexicon_doc_games_gamesgamesgamesgames_defs()
3157 }
3158 fn validate(&self) -> Result<(), ConstraintError> {
3159 if let Some(ref value) = self.feed_context {
3160 #[allow(unused_comparisons)]
3161 if <str>::len(value.as_ref()) > 2000usize {
3162 return Err(ConstraintError::MaxLength {
3163 path: ValidationPath::from_field("feed_context"),
3164 max: 2000usize,
3165 actual: <str>::len(value.as_ref()),
3166 });
3167 }
3168 }
3169 Ok(())
3170 }
3171}
3172
3173impl<S: BosStr> LexiconSchema for GameSummaryView<S> {
3174 fn nsid() -> &'static str {
3175 "games.gamesgamesgamesgames.defs"
3176 }
3177 fn def_name() -> &'static str {
3178 "gameSummaryView"
3179 }
3180 fn lexicon_doc() -> LexiconDoc<'static> {
3181 lexicon_doc_games_gamesgamesgamesgames_defs()
3182 }
3183 fn validate(&self) -> Result<(), ConstraintError> {
3184 Ok(())
3185 }
3186}
3187
3188impl<S: BosStr> LexiconSchema for GameView<S> {
3189 fn nsid() -> &'static str {
3190 "games.gamesgamesgamesgames.defs"
3191 }
3192 fn def_name() -> &'static str {
3193 "gameView"
3194 }
3195 fn lexicon_doc() -> LexiconDoc<'static> {
3196 lexicon_doc_games_gamesgamesgamesgames_defs()
3197 }
3198 fn validate(&self) -> Result<(), ConstraintError> {
3199 if let Some(ref value) = self.like_count {
3200 if *value < 0i64 {
3201 return Err(ConstraintError::Minimum {
3202 path: ValidationPath::from_field("like_count"),
3203 min: 0i64,
3204 actual: *value,
3205 });
3206 }
3207 }
3208 Ok(())
3209 }
3210}
3211
3212impl<S: BosStr> LexiconSchema for ItchIoId<S> {
3213 fn nsid() -> &'static str {
3214 "games.gamesgamesgamesgames.defs"
3215 }
3216 fn def_name() -> &'static str {
3217 "itchIoId"
3218 }
3219 fn lexicon_doc() -> LexiconDoc<'static> {
3220 lexicon_doc_games_gamesgamesgamesgames_defs()
3221 }
3222 fn validate(&self) -> Result<(), ConstraintError> {
3223 Ok(())
3224 }
3225}
3226
3227impl<S: BosStr> LexiconSchema for LanguageSupport<S> {
3228 fn nsid() -> &'static str {
3229 "games.gamesgamesgamesgames.defs"
3230 }
3231 fn def_name() -> &'static str {
3232 "languageSupport"
3233 }
3234 fn lexicon_doc() -> LexiconDoc<'static> {
3235 lexicon_doc_games_gamesgamesgamesgames_defs()
3236 }
3237 fn validate(&self) -> Result<(), ConstraintError> {
3238 Ok(())
3239 }
3240}
3241
3242impl<S: BosStr> LexiconSchema for MediaItem<S> {
3243 fn nsid() -> &'static str {
3244 "games.gamesgamesgamesgames.defs"
3245 }
3246 fn def_name() -> &'static str {
3247 "mediaItem"
3248 }
3249 fn lexicon_doc() -> LexiconDoc<'static> {
3250 lexicon_doc_games_gamesgamesgamesgames_defs()
3251 }
3252 fn validate(&self) -> Result<(), ConstraintError> {
3253 if let Some(ref value) = self.blob {
3254 {
3255 let size = value.blob().size;
3256 if size > 200000000usize {
3257 return Err(ConstraintError::BlobTooLarge {
3258 path: ValidationPath::from_field("blob"),
3259 max: 200000000usize,
3260 actual: size,
3261 });
3262 }
3263 }
3264 }
3265 if let Some(ref value) = self.blob {
3266 {
3267 let mime = value.blob().mime_type.as_str();
3268 let accepted: &[&str] = &["image/*", "video/*"];
3269 let matched = accepted.iter().any(|pattern| {
3270 if *pattern == "*/*" {
3271 true
3272 } else if pattern.ends_with("/*") {
3273 let prefix = &pattern[..pattern.len() - 2];
3274 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
3275 } else {
3276 mime == *pattern
3277 }
3278 });
3279 if !matched {
3280 return Err(ConstraintError::BlobMimeTypeNotAccepted {
3281 path: ValidationPath::from_field("blob"),
3282 accepted: vec!["image/*".to_string(), "video/*".to_string()],
3283 actual: mime.to_string(),
3284 });
3285 }
3286 }
3287 }
3288 Ok(())
3289 }
3290}
3291
3292impl<S: BosStr> LexiconSchema for MultiplayerMode<S> {
3293 fn nsid() -> &'static str {
3294 "games.gamesgamesgamesgames.defs"
3295 }
3296 fn def_name() -> &'static str {
3297 "multiplayerMode"
3298 }
3299 fn lexicon_doc() -> LexiconDoc<'static> {
3300 lexicon_doc_games_gamesgamesgamesgames_defs()
3301 }
3302 fn validate(&self) -> Result<(), ConstraintError> {
3303 Ok(())
3304 }
3305}
3306
3307impl<S: BosStr> LexiconSchema for OrgCreditView<S> {
3308 fn nsid() -> &'static str {
3309 "games.gamesgamesgamesgames.defs"
3310 }
3311 fn def_name() -> &'static str {
3312 "orgCreditView"
3313 }
3314 fn lexicon_doc() -> LexiconDoc<'static> {
3315 lexicon_doc_games_gamesgamesgamesgames_defs()
3316 }
3317 fn validate(&self) -> Result<(), ConstraintError> {
3318 if let Some(ref value) = self.display_name {
3319 #[allow(unused_comparisons)]
3320 if <str>::len(value.as_ref()) > 640usize {
3321 return Err(ConstraintError::MaxLength {
3322 path: ValidationPath::from_field("display_name"),
3323 max: 640usize,
3324 actual: <str>::len(value.as_ref()),
3325 });
3326 }
3327 }
3328 Ok(())
3329 }
3330}
3331
3332impl<S: BosStr> LexiconSchema for OrgProfileDetailView<S> {
3333 fn nsid() -> &'static str {
3334 "games.gamesgamesgamesgames.defs"
3335 }
3336 fn def_name() -> &'static str {
3337 "orgProfileDetailView"
3338 }
3339 fn lexicon_doc() -> LexiconDoc<'static> {
3340 lexicon_doc_games_gamesgamesgamesgames_defs()
3341 }
3342 fn validate(&self) -> Result<(), ConstraintError> {
3343 if let Some(ref value) = self.avatar {
3344 {
3345 let size = value.blob().size;
3346 if size > 10000000usize {
3347 return Err(ConstraintError::BlobTooLarge {
3348 path: ValidationPath::from_field("avatar"),
3349 max: 10000000usize,
3350 actual: size,
3351 });
3352 }
3353 }
3354 }
3355 if let Some(ref value) = self.avatar {
3356 {
3357 let mime = value.blob().mime_type.as_str();
3358 let accepted: &[&str] = &["image/png", "image/jpeg"];
3359 let matched = accepted.iter().any(|pattern| {
3360 if *pattern == "*/*" {
3361 true
3362 } else if pattern.ends_with("/*") {
3363 let prefix = &pattern[..pattern.len() - 2];
3364 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
3365 } else {
3366 mime == *pattern
3367 }
3368 });
3369 if !matched {
3370 return Err(ConstraintError::BlobMimeTypeNotAccepted {
3371 path: ValidationPath::from_field("avatar"),
3372 accepted: vec!["image/png".to_string(), "image/jpeg".to_string()],
3373 actual: mime.to_string(),
3374 });
3375 }
3376 }
3377 }
3378 if let Some(ref value) = self.description {
3379 #[allow(unused_comparisons)]
3380 if <str>::len(value.as_ref()) > 3000usize {
3381 return Err(ConstraintError::MaxLength {
3382 path: ValidationPath::from_field("description"),
3383 max: 3000usize,
3384 actual: <str>::len(value.as_ref()),
3385 });
3386 }
3387 }
3388 if let Some(ref value) = self.display_name {
3389 #[allow(unused_comparisons)]
3390 if <str>::len(value.as_ref()) > 640usize {
3391 return Err(ConstraintError::MaxLength {
3392 path: ValidationPath::from_field("display_name"),
3393 max: 640usize,
3394 actual: <str>::len(value.as_ref()),
3395 });
3396 }
3397 }
3398 Ok(())
3399 }
3400}
3401
3402impl<S: BosStr> LexiconSchema for OrgProfileSummaryView<S> {
3403 fn nsid() -> &'static str {
3404 "games.gamesgamesgamesgames.defs"
3405 }
3406 fn def_name() -> &'static str {
3407 "orgProfileSummaryView"
3408 }
3409 fn lexicon_doc() -> LexiconDoc<'static> {
3410 lexicon_doc_games_gamesgamesgamesgames_defs()
3411 }
3412 fn validate(&self) -> Result<(), ConstraintError> {
3413 if let Some(ref value) = self.avatar {
3414 {
3415 let size = value.blob().size;
3416 if size > 10000000usize {
3417 return Err(ConstraintError::BlobTooLarge {
3418 path: ValidationPath::from_field("avatar"),
3419 max: 10000000usize,
3420 actual: size,
3421 });
3422 }
3423 }
3424 }
3425 if let Some(ref value) = self.avatar {
3426 {
3427 let mime = value.blob().mime_type.as_str();
3428 let accepted: &[&str] = &["image/png", "image/jpeg"];
3429 let matched = accepted.iter().any(|pattern| {
3430 if *pattern == "*/*" {
3431 true
3432 } else if pattern.ends_with("/*") {
3433 let prefix = &pattern[..pattern.len() - 2];
3434 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
3435 } else {
3436 mime == *pattern
3437 }
3438 });
3439 if !matched {
3440 return Err(ConstraintError::BlobMimeTypeNotAccepted {
3441 path: ValidationPath::from_field("avatar"),
3442 accepted: vec!["image/png".to_string(), "image/jpeg".to_string()],
3443 actual: mime.to_string(),
3444 });
3445 }
3446 }
3447 }
3448 if let Some(ref value) = self.display_name {
3449 #[allow(unused_comparisons)]
3450 if <str>::len(value.as_ref()) > 640usize {
3451 return Err(ConstraintError::MaxLength {
3452 path: ValidationPath::from_field("display_name"),
3453 max: 640usize,
3454 actual: <str>::len(value.as_ref()),
3455 });
3456 }
3457 }
3458 Ok(())
3459 }
3460}
3461
3462impl<S: BosStr> LexiconSchema for PlatformFeatures<S> {
3463 fn nsid() -> &'static str {
3464 "games.gamesgamesgamesgames.defs"
3465 }
3466 fn def_name() -> &'static str {
3467 "platformFeatures"
3468 }
3469 fn lexicon_doc() -> LexiconDoc<'static> {
3470 lexicon_doc_games_gamesgamesgamesgames_defs()
3471 }
3472 fn validate(&self) -> Result<(), ConstraintError> {
3473 Ok(())
3474 }
3475}
3476
3477impl<S: BosStr> LexiconSchema for PlatformSummaryView<S> {
3478 fn nsid() -> &'static str {
3479 "games.gamesgamesgamesgames.defs"
3480 }
3481 fn def_name() -> &'static str {
3482 "platformSummaryView"
3483 }
3484 fn lexicon_doc() -> LexiconDoc<'static> {
3485 lexicon_doc_games_gamesgamesgamesgames_defs()
3486 }
3487 fn validate(&self) -> Result<(), ConstraintError> {
3488 Ok(())
3489 }
3490}
3491
3492impl<S: BosStr> LexiconSchema for PlatformVersion<S> {
3493 fn nsid() -> &'static str {
3494 "games.gamesgamesgamesgames.defs"
3495 }
3496 fn def_name() -> &'static str {
3497 "platformVersion"
3498 }
3499 fn lexicon_doc() -> LexiconDoc<'static> {
3500 lexicon_doc_games_gamesgamesgamesgames_defs()
3501 }
3502 fn validate(&self) -> Result<(), ConstraintError> {
3503 Ok(())
3504 }
3505}
3506
3507impl<S: BosStr> LexiconSchema for ProfileSummaryView<S> {
3508 fn nsid() -> &'static str {
3509 "games.gamesgamesgamesgames.defs"
3510 }
3511 fn def_name() -> &'static str {
3512 "profileSummaryView"
3513 }
3514 fn lexicon_doc() -> LexiconDoc<'static> {
3515 lexicon_doc_games_gamesgamesgamesgames_defs()
3516 }
3517 fn validate(&self) -> Result<(), ConstraintError> {
3518 if let Some(ref value) = self.avatar {
3519 {
3520 let size = value.blob().size;
3521 if size > 10000000usize {
3522 return Err(ConstraintError::BlobTooLarge {
3523 path: ValidationPath::from_field("avatar"),
3524 max: 10000000usize,
3525 actual: size,
3526 });
3527 }
3528 }
3529 }
3530 if let Some(ref value) = self.avatar {
3531 {
3532 let mime = value.blob().mime_type.as_str();
3533 let accepted: &[&str] = &["image/png", "image/jpeg"];
3534 let matched = accepted.iter().any(|pattern| {
3535 if *pattern == "*/*" {
3536 true
3537 } else if pattern.ends_with("/*") {
3538 let prefix = &pattern[..pattern.len() - 2];
3539 mime.starts_with(prefix) && mime.as_bytes().get(prefix.len()) == Some(&b'/')
3540 } else {
3541 mime == *pattern
3542 }
3543 });
3544 if !matched {
3545 return Err(ConstraintError::BlobMimeTypeNotAccepted {
3546 path: ValidationPath::from_field("avatar"),
3547 accepted: vec!["image/png".to_string(), "image/jpeg".to_string()],
3548 actual: mime.to_string(),
3549 });
3550 }
3551 }
3552 }
3553 if let Some(ref value) = self.display_name {
3554 #[allow(unused_comparisons)]
3555 if <str>::len(value.as_ref()) > 640usize {
3556 return Err(ConstraintError::MaxLength {
3557 path: ValidationPath::from_field("display_name"),
3558 max: 640usize,
3559 actual: <str>::len(value.as_ref()),
3560 });
3561 }
3562 }
3563 Ok(())
3564 }
3565}
3566
3567impl<S: BosStr> LexiconSchema for Release<S> {
3568 fn nsid() -> &'static str {
3569 "games.gamesgamesgamesgames.defs"
3570 }
3571 fn def_name() -> &'static str {
3572 "release"
3573 }
3574 fn lexicon_doc() -> LexiconDoc<'static> {
3575 lexicon_doc_games_gamesgamesgamesgames_defs()
3576 }
3577 fn validate(&self) -> Result<(), ConstraintError> {
3578 Ok(())
3579 }
3580}
3581
3582impl<S: BosStr> LexiconSchema for ReleaseDate<S> {
3583 fn nsid() -> &'static str {
3584 "games.gamesgamesgamesgames.defs"
3585 }
3586 fn def_name() -> &'static str {
3587 "releaseDate"
3588 }
3589 fn lexicon_doc() -> LexiconDoc<'static> {
3590 lexicon_doc_games_gamesgamesgamesgames_defs()
3591 }
3592 fn validate(&self) -> Result<(), ConstraintError> {
3593 Ok(())
3594 }
3595}
3596
3597impl<S: BosStr> LexiconSchema for Signature<S> {
3598 fn nsid() -> &'static str {
3599 "games.gamesgamesgamesgames.defs"
3600 }
3601 fn def_name() -> &'static str {
3602 "signature"
3603 }
3604 fn lexicon_doc() -> LexiconDoc<'static> {
3605 lexicon_doc_games_gamesgamesgamesgames_defs()
3606 }
3607 fn validate(&self) -> Result<(), ConstraintError> {
3608 Ok(())
3609 }
3610}
3611
3612impl<S: BosStr> LexiconSchema for SkeletonGameFeedItem<S> {
3613 fn nsid() -> &'static str {
3614 "games.gamesgamesgamesgames.defs"
3615 }
3616 fn def_name() -> &'static str {
3617 "skeletonGameFeedItem"
3618 }
3619 fn lexicon_doc() -> LexiconDoc<'static> {
3620 lexicon_doc_games_gamesgamesgamesgames_defs()
3621 }
3622 fn validate(&self) -> Result<(), ConstraintError> {
3623 if let Some(ref value) = self.feed_context {
3624 #[allow(unused_comparisons)]
3625 if <str>::len(value.as_ref()) > 2000usize {
3626 return Err(ConstraintError::MaxLength {
3627 path: ValidationPath::from_field("feed_context"),
3628 max: 2000usize,
3629 actual: <str>::len(value.as_ref()),
3630 });
3631 }
3632 }
3633 Ok(())
3634 }
3635}
3636
3637impl<S: BosStr> LexiconSchema for SystemRequirements<S> {
3638 fn nsid() -> &'static str {
3639 "games.gamesgamesgamesgames.defs"
3640 }
3641 fn def_name() -> &'static str {
3642 "systemRequirements"
3643 }
3644 fn lexicon_doc() -> LexiconDoc<'static> {
3645 lexicon_doc_games_gamesgamesgamesgames_defs()
3646 }
3647 fn validate(&self) -> Result<(), ConstraintError> {
3648 Ok(())
3649 }
3650}
3651
3652impl<S: BosStr> LexiconSchema for SystemSpec<S> {
3653 fn nsid() -> &'static str {
3654 "games.gamesgamesgamesgames.defs"
3655 }
3656 fn def_name() -> &'static str {
3657 "systemSpec"
3658 }
3659 fn lexicon_doc() -> LexiconDoc<'static> {
3660 lexicon_doc_games_gamesgamesgamesgames_defs()
3661 }
3662 fn validate(&self) -> Result<(), ConstraintError> {
3663 Ok(())
3664 }
3665}
3666
3667impl<S: BosStr> LexiconSchema for TimeToBeat<S> {
3668 fn nsid() -> &'static str {
3669 "games.gamesgamesgamesgames.defs"
3670 }
3671 fn def_name() -> &'static str {
3672 "timeToBeat"
3673 }
3674 fn lexicon_doc() -> LexiconDoc<'static> {
3675 lexicon_doc_games_gamesgamesgamesgames_defs()
3676 }
3677 fn validate(&self) -> Result<(), ConstraintError> {
3678 Ok(())
3679 }
3680}
3681
3682impl<S: BosStr> LexiconSchema for ViewerState<S> {
3683 fn nsid() -> &'static str {
3684 "games.gamesgamesgamesgames.defs"
3685 }
3686 fn def_name() -> &'static str {
3687 "viewerState"
3688 }
3689 fn lexicon_doc() -> LexiconDoc<'static> {
3690 lexicon_doc_games_gamesgamesgamesgames_defs()
3691 }
3692 fn validate(&self) -> Result<(), ConstraintError> {
3693 Ok(())
3694 }
3695}
3696
3697impl<S: BosStr> LexiconSchema for Website<S> {
3698 fn nsid() -> &'static str {
3699 "games.gamesgamesgamesgames.defs"
3700 }
3701 fn def_name() -> &'static str {
3702 "website"
3703 }
3704 fn lexicon_doc() -> LexiconDoc<'static> {
3705 lexicon_doc_games_gamesgamesgamesgames_defs()
3706 }
3707 fn validate(&self) -> Result<(), ConstraintError> {
3708 Ok(())
3709 }
3710}
3711
3712pub mod activity_feed_item_state {
3713
3714 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
3715 #[allow(unused)]
3716 use ::core::marker::PhantomData;
3717 mod sealed {
3718 pub trait Sealed {}
3719 }
3720 pub trait State: sealed::Sealed {
3722 type CreatedAt;
3723 type Type;
3724 }
3725 pub struct Empty(());
3727 impl sealed::Sealed for Empty {}
3728 impl State for Empty {
3729 type CreatedAt = Unset;
3730 type Type = Unset;
3731 }
3732 pub struct SetCreatedAt<St: State = Empty>(PhantomData<fn() -> St>);
3734 impl<St: State> sealed::Sealed for SetCreatedAt<St> {}
3735 impl<St: State> State for SetCreatedAt<St> {
3736 type CreatedAt = Set<members::created_at>;
3737 type Type = St::Type;
3738 }
3739 pub struct SetType<St: State = Empty>(PhantomData<fn() -> St>);
3741 impl<St: State> sealed::Sealed for SetType<St> {}
3742 impl<St: State> State for SetType<St> {
3743 type CreatedAt = St::CreatedAt;
3744 type Type = Set<members::r#type>;
3745 }
3746 #[allow(non_camel_case_types)]
3748 pub mod members {
3749 pub struct created_at(());
3751 pub struct r#type(());
3753 }
3754}
3755
3756pub struct ActivityFeedItemBuilder<St: activity_feed_item_state::State, S: BosStr = DefaultStr> {
3758 _state: PhantomData<fn() -> St>,
3759 _fields: (
3760 Option<Datetime>,
3761 Option<games_gamesgamesgamesgames::GameView<S>>,
3762 Option<games_gamesgamesgamesgames::ActivityListView<S>>,
3763 Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
3764 Option<ActivityFeedItemType<S>>,
3765 ),
3766 _type: PhantomData<fn() -> S>,
3767}
3768
3769impl ActivityFeedItem<DefaultStr> {
3770 pub fn new() -> ActivityFeedItemBuilder<activity_feed_item_state::Empty, DefaultStr> {
3772 ActivityFeedItemBuilder::new()
3773 }
3774}
3775
3776impl<S: BosStr> ActivityFeedItem<S> {
3777 pub fn builder() -> ActivityFeedItemBuilder<activity_feed_item_state::Empty, S> {
3779 ActivityFeedItemBuilder::builder()
3780 }
3781}
3782
3783impl ActivityFeedItemBuilder<activity_feed_item_state::Empty, DefaultStr> {
3784 pub fn new() -> Self {
3786 ActivityFeedItemBuilder {
3787 _state: PhantomData,
3788 _fields: (None, None, None, None, None),
3789 _type: PhantomData,
3790 }
3791 }
3792}
3793
3794impl<S: BosStr> ActivityFeedItemBuilder<activity_feed_item_state::Empty, S> {
3795 pub fn builder() -> Self {
3797 ActivityFeedItemBuilder {
3798 _state: PhantomData,
3799 _fields: (None, None, None, None, None),
3800 _type: PhantomData,
3801 }
3802 }
3803}
3804
3805impl<St, S: BosStr> ActivityFeedItemBuilder<St, S>
3806where
3807 St: activity_feed_item_state::State,
3808 St::CreatedAt: activity_feed_item_state::IsUnset,
3809{
3810 pub fn created_at(
3812 mut self,
3813 value: impl Into<Datetime>,
3814 ) -> ActivityFeedItemBuilder<activity_feed_item_state::SetCreatedAt<St>, S> {
3815 self._fields.0 = Option::Some(value.into());
3816 ActivityFeedItemBuilder {
3817 _state: PhantomData,
3818 _fields: self._fields,
3819 _type: PhantomData,
3820 }
3821 }
3822}
3823
3824impl<St: activity_feed_item_state::State, S: BosStr> ActivityFeedItemBuilder<St, S> {
3825 pub fn game(
3827 mut self,
3828 value: impl Into<Option<games_gamesgamesgamesgames::GameView<S>>>,
3829 ) -> Self {
3830 self._fields.1 = value.into();
3831 self
3832 }
3833 pub fn maybe_game(mut self, value: Option<games_gamesgamesgamesgames::GameView<S>>) -> Self {
3835 self._fields.1 = value;
3836 self
3837 }
3838}
3839
3840impl<St: activity_feed_item_state::State, S: BosStr> ActivityFeedItemBuilder<St, S> {
3841 pub fn list(
3843 mut self,
3844 value: impl Into<Option<games_gamesgamesgamesgames::ActivityListView<S>>>,
3845 ) -> Self {
3846 self._fields.2 = value.into();
3847 self
3848 }
3849 pub fn maybe_list(
3851 mut self,
3852 value: Option<games_gamesgamesgamesgames::ActivityListView<S>>,
3853 ) -> Self {
3854 self._fields.2 = value;
3855 self
3856 }
3857}
3858
3859impl<St: activity_feed_item_state::State, S: BosStr> ActivityFeedItemBuilder<St, S> {
3860 pub fn review(
3862 mut self,
3863 value: impl Into<Option<games_gamesgamesgamesgames::ActivityReviewView<S>>>,
3864 ) -> Self {
3865 self._fields.3 = value.into();
3866 self
3867 }
3868 pub fn maybe_review(
3870 mut self,
3871 value: Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
3872 ) -> Self {
3873 self._fields.3 = value;
3874 self
3875 }
3876}
3877
3878impl<St, S: BosStr> ActivityFeedItemBuilder<St, S>
3879where
3880 St: activity_feed_item_state::State,
3881 St::Type: activity_feed_item_state::IsUnset,
3882{
3883 pub fn r#type(
3885 mut self,
3886 value: impl Into<ActivityFeedItemType<S>>,
3887 ) -> ActivityFeedItemBuilder<activity_feed_item_state::SetType<St>, S> {
3888 self._fields.4 = Option::Some(value.into());
3889 ActivityFeedItemBuilder {
3890 _state: PhantomData,
3891 _fields: self._fields,
3892 _type: PhantomData,
3893 }
3894 }
3895}
3896
3897impl<St, S: BosStr> ActivityFeedItemBuilder<St, S>
3898where
3899 St: activity_feed_item_state::State,
3900 St::CreatedAt: activity_feed_item_state::IsSet,
3901 St::Type: activity_feed_item_state::IsSet,
3902{
3903 pub fn build(self) -> ActivityFeedItem<S> {
3905 ActivityFeedItem {
3906 created_at: self._fields.0.unwrap(),
3907 game: self._fields.1,
3908 list: self._fields.2,
3909 review: self._fields.3,
3910 r#type: self._fields.4.unwrap(),
3911 extra_data: Default::default(),
3912 }
3913 }
3914 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> ActivityFeedItem<S> {
3916 ActivityFeedItem {
3917 created_at: self._fields.0.unwrap(),
3918 game: self._fields.1,
3919 list: self._fields.2,
3920 review: self._fields.3,
3921 r#type: self._fields.4.unwrap(),
3922 extra_data: Some(extra_data),
3923 }
3924 }
3925}
3926
3927fn lexicon_doc_games_gamesgamesgamesgames_defs() -> LexiconDoc<'static> {
3928 use alloc::collections::BTreeMap;
3929 #[allow(unused_imports)]
3930 use jacquard_common::{CowStr, deps::smol_str::SmolStr, types::blob::MimeType};
3931 use jacquard_lexicon::lexicon::*;
3932 LexiconDoc {
3933 lexicon: Lexicon::Lexicon1,
3934 id: CowStr::new_static("games.gamesgamesgamesgames.defs"),
3935 defs: {
3936 let mut map = BTreeMap::new();
3937 map.insert(
3938 SmolStr::new_static("activityFeedItem"),
3939 LexUserType::Object(LexObject {
3940 required: Some(vec![
3941 SmolStr::new_static("type"),
3942 SmolStr::new_static("createdAt"),
3943 ]),
3944 properties: {
3945 #[allow(unused_mut)]
3946 let mut map = BTreeMap::new();
3947 map.insert(
3948 SmolStr::new_static("createdAt"),
3949 LexObjectProperty::String(LexString {
3950 description: Some(CowStr::new_static(
3951 "When the activity occurred.",
3952 )),
3953 format: Some(LexStringFormat::Datetime),
3954 ..Default::default()
3955 }),
3956 );
3957 map.insert(
3958 SmolStr::new_static("game"),
3959 LexObjectProperty::Ref(LexRef {
3960 r#ref: CowStr::new_static(
3961 "games.gamesgamesgamesgames.defs#gameView",
3962 ),
3963 ..Default::default()
3964 }),
3965 );
3966 map.insert(
3967 SmolStr::new_static("list"),
3968 LexObjectProperty::Ref(LexRef {
3969 r#ref: CowStr::new_static(
3970 "games.gamesgamesgamesgames.defs#activityListView",
3971 ),
3972 ..Default::default()
3973 }),
3974 );
3975 map.insert(
3976 SmolStr::new_static("review"),
3977 LexObjectProperty::Ref(LexRef {
3978 r#ref: CowStr::new_static(
3979 "games.gamesgamesgamesgames.defs#activityReviewView",
3980 ),
3981 ..Default::default()
3982 }),
3983 );
3984 map.insert(
3985 SmolStr::new_static("type"),
3986 LexObjectProperty::String(LexString {
3987 description: Some(CowStr::new_static("The type of activity.")),
3988 ..Default::default()
3989 }),
3990 );
3991 map
3992 },
3993 ..Default::default()
3994 }),
3995 );
3996 map.insert(
3997 SmolStr::new_static("activityListView"),
3998 LexUserType::Object(LexObject {
3999 required: Some(vec![
4000 SmolStr::new_static("uri"),
4001 SmolStr::new_static("name"),
4002 SmolStr::new_static("createdAt"),
4003 ]),
4004 properties: {
4005 #[allow(unused_mut)]
4006 let mut map = BTreeMap::new();
4007 map.insert(
4008 SmolStr::new_static("createdAt"),
4009 LexObjectProperty::String(LexString {
4010 format: Some(LexStringFormat::Datetime),
4011 ..Default::default()
4012 }),
4013 );
4014 map.insert(
4015 SmolStr::new_static("name"),
4016 LexObjectProperty::String(LexString {
4017 ..Default::default()
4018 }),
4019 );
4020 map.insert(
4021 SmolStr::new_static("uri"),
4022 LexObjectProperty::String(LexString {
4023 format: Some(LexStringFormat::AtUri),
4024 ..Default::default()
4025 }),
4026 );
4027 map
4028 },
4029 ..Default::default()
4030 }),
4031 );
4032 map.insert(
4033 SmolStr::new_static("activityReviewView"),
4034 LexUserType::Object(LexObject {
4035 required: Some(vec![
4036 SmolStr::new_static("uri"),
4037 SmolStr::new_static("rating"),
4038 SmolStr::new_static("createdAt"),
4039 ]),
4040 properties: {
4041 #[allow(unused_mut)]
4042 let mut map = BTreeMap::new();
4043 map.insert(
4044 SmolStr::new_static("containsSpoilers"),
4045 LexObjectProperty::Boolean(LexBoolean {
4046 ..Default::default()
4047 }),
4048 );
4049 map.insert(
4050 SmolStr::new_static("createdAt"),
4051 LexObjectProperty::String(LexString {
4052 format: Some(LexStringFormat::Datetime),
4053 ..Default::default()
4054 }),
4055 );
4056 map.insert(
4057 SmolStr::new_static("rating"),
4058 LexObjectProperty::Integer(LexInteger {
4059 minimum: Some(0i64),
4060 maximum: Some(10i64),
4061 ..Default::default()
4062 }),
4063 );
4064 map.insert(
4065 SmolStr::new_static("tags"),
4066 LexObjectProperty::Array(LexArray {
4067 items: LexArrayItem::String(LexString {
4068 ..Default::default()
4069 }),
4070 ..Default::default()
4071 }),
4072 );
4073 map.insert(
4074 SmolStr::new_static("text"),
4075 LexObjectProperty::String(LexString {
4076 ..Default::default()
4077 }),
4078 );
4079 map.insert(
4080 SmolStr::new_static("title"),
4081 LexObjectProperty::String(LexString {
4082 ..Default::default()
4083 }),
4084 );
4085 map.insert(
4086 SmolStr::new_static("uri"),
4087 LexObjectProperty::String(LexString {
4088 format: Some(LexStringFormat::AtUri),
4089 ..Default::default()
4090 }),
4091 );
4092 map
4093 },
4094 ..Default::default()
4095 }),
4096 );
4097 map.insert(
4098 SmolStr::new_static("actorCreditView"),
4099 LexUserType::Object(LexObject {
4100 required: Some(vec![
4101 SmolStr::new_static("uri"),
4102 SmolStr::new_static("credits"),
4103 ]),
4104 properties: {
4105 #[allow(unused_mut)]
4106 let mut map = BTreeMap::new();
4107 map.insert(
4108 SmolStr::new_static("actorUri"),
4109 LexObjectProperty::String(LexString {
4110 format: Some(LexStringFormat::AtUri),
4111 ..Default::default()
4112 }),
4113 );
4114 map.insert(
4115 SmolStr::new_static("credits"),
4116 LexObjectProperty::Array(LexArray {
4117 items: LexArrayItem::Ref(LexRef {
4118 r#ref: CowStr::new_static(
4119 "games.gamesgamesgamesgames.defs#creditEntry",
4120 ),
4121 ..Default::default()
4122 }),
4123 ..Default::default()
4124 }),
4125 );
4126 map.insert(
4127 SmolStr::new_static("displayName"),
4128 LexObjectProperty::String(LexString {
4129 max_length: Some(640usize),
4130 ..Default::default()
4131 }),
4132 );
4133 map.insert(
4134 SmolStr::new_static("uri"),
4135 LexObjectProperty::String(LexString {
4136 format: Some(LexStringFormat::AtUri),
4137 ..Default::default()
4138 }),
4139 );
4140 map
4141 },
4142 ..Default::default()
4143 }),
4144 );
4145 map.insert(
4146 SmolStr::new_static("actorProfileDetailView"),
4147 LexUserType::Object(LexObject {
4148 required: Some(vec![SmolStr::new_static("uri"), SmolStr::new_static("did")]),
4149 properties: {
4150 #[allow(unused_mut)]
4151 let mut map = BTreeMap::new();
4152 map.insert(
4153 SmolStr::new_static("avatar"),
4154 LexObjectProperty::Blob(LexBlob {
4155 ..Default::default()
4156 }),
4157 );
4158 map.insert(
4159 SmolStr::new_static("createdAt"),
4160 LexObjectProperty::String(LexString {
4161 format: Some(LexStringFormat::Datetime),
4162 ..Default::default()
4163 }),
4164 );
4165 map.insert(
4166 SmolStr::new_static("description"),
4167 LexObjectProperty::String(LexString {
4168 max_length: Some(3000usize),
4169 ..Default::default()
4170 }),
4171 );
4172 map.insert(
4173 SmolStr::new_static("descriptionFacets"),
4174 LexObjectProperty::Array(LexArray {
4175 items: LexArrayItem::Ref(LexRef {
4176 r#ref: CowStr::new_static("app.bsky.richtext.facet"),
4177 ..Default::default()
4178 }),
4179 ..Default::default()
4180 }),
4181 );
4182 map.insert(
4183 SmolStr::new_static("did"),
4184 LexObjectProperty::String(LexString {
4185 format: Some(LexStringFormat::Did),
4186 ..Default::default()
4187 }),
4188 );
4189 map.insert(
4190 SmolStr::new_static("displayName"),
4191 LexObjectProperty::String(LexString {
4192 max_length: Some(640usize),
4193 ..Default::default()
4194 }),
4195 );
4196 map.insert(
4197 SmolStr::new_static("pronouns"),
4198 LexObjectProperty::String(LexString {
4199 max_length: Some(200usize),
4200 ..Default::default()
4201 }),
4202 );
4203 map.insert(
4204 SmolStr::new_static("uri"),
4205 LexObjectProperty::String(LexString {
4206 format: Some(LexStringFormat::AtUri),
4207 ..Default::default()
4208 }),
4209 );
4210 map.insert(
4211 SmolStr::new_static("websites"),
4212 LexObjectProperty::Array(LexArray {
4213 items: LexArrayItem::Ref(LexRef {
4214 r#ref: CowStr::new_static(
4215 "games.gamesgamesgamesgames.defs#website",
4216 ),
4217 ..Default::default()
4218 }),
4219 ..Default::default()
4220 }),
4221 );
4222 map
4223 },
4224 ..Default::default()
4225 }),
4226 );
4227 map.insert(
4228 SmolStr::new_static("actorProfileSummaryView"),
4229 LexUserType::Object(LexObject {
4230 required: Some(vec![SmolStr::new_static("uri"), SmolStr::new_static("did")]),
4231 properties: {
4232 #[allow(unused_mut)]
4233 let mut map = BTreeMap::new();
4234 map.insert(
4235 SmolStr::new_static("avatar"),
4236 LexObjectProperty::Blob(LexBlob {
4237 ..Default::default()
4238 }),
4239 );
4240 map.insert(
4241 SmolStr::new_static("did"),
4242 LexObjectProperty::String(LexString {
4243 format: Some(LexStringFormat::Did),
4244 ..Default::default()
4245 }),
4246 );
4247 map.insert(
4248 SmolStr::new_static("displayName"),
4249 LexObjectProperty::String(LexString {
4250 max_length: Some(640usize),
4251 ..Default::default()
4252 }),
4253 );
4254 map.insert(
4255 SmolStr::new_static("uri"),
4256 LexObjectProperty::String(LexString {
4257 format: Some(LexStringFormat::AtUri),
4258 ..Default::default()
4259 }),
4260 );
4261 map
4262 },
4263 ..Default::default()
4264 }),
4265 );
4266 map.insert(
4267 SmolStr::new_static("ageRating"),
4268 LexUserType::Object(LexObject {
4269 required: Some(vec![
4270 SmolStr::new_static("organization"),
4271 SmolStr::new_static("rating"),
4272 ]),
4273 properties: {
4274 #[allow(unused_mut)]
4275 let mut map = BTreeMap::new();
4276 map.insert(
4277 SmolStr::new_static("contentDescriptors"),
4278 LexObjectProperty::Array(LexArray {
4279 items: LexArrayItem::String(LexString {
4280 ..Default::default()
4281 }),
4282 ..Default::default()
4283 }),
4284 );
4285 map.insert(
4286 SmolStr::new_static("organization"),
4287 LexObjectProperty::String(LexString {
4288 ..Default::default()
4289 }),
4290 );
4291 map.insert(
4292 SmolStr::new_static("rating"),
4293 LexObjectProperty::String(LexString {
4294 ..Default::default()
4295 }),
4296 );
4297 map
4298 },
4299 ..Default::default()
4300 }),
4301 );
4302 map.insert(
4303 SmolStr::new_static("alternativeName"),
4304 LexUserType::Object(LexObject {
4305 required: Some(vec![SmolStr::new_static("name")]),
4306 properties: {
4307 #[allow(unused_mut)]
4308 let mut map = BTreeMap::new();
4309 map.insert(
4310 SmolStr::new_static("comment"),
4311 LexObjectProperty::String(LexString {
4312 ..Default::default()
4313 }),
4314 );
4315 map.insert(
4316 SmolStr::new_static("locale"),
4317 LexObjectProperty::String(LexString {
4318 ..Default::default()
4319 }),
4320 );
4321 map.insert(
4322 SmolStr::new_static("name"),
4323 LexObjectProperty::String(LexString {
4324 ..Default::default()
4325 }),
4326 );
4327 map
4328 },
4329 ..Default::default()
4330 }),
4331 );
4332 map.insert(
4333 SmolStr::new_static("applicationType"),
4334 LexUserType::String(LexString {
4335 ..Default::default()
4336 }),
4337 );
4338 map.insert(
4339 SmolStr::new_static("collectionSummaryView"),
4340 LexUserType::Object(LexObject {
4341 required: Some(vec![
4342 SmolStr::new_static("uri"),
4343 SmolStr::new_static("name"),
4344 ]),
4345 properties: {
4346 #[allow(unused_mut)]
4347 let mut map = BTreeMap::new();
4348 map.insert(
4349 SmolStr::new_static("name"),
4350 LexObjectProperty::String(LexString {
4351 ..Default::default()
4352 }),
4353 );
4354 map.insert(
4355 SmolStr::new_static("slug"),
4356 LexObjectProperty::String(LexString {
4357 ..Default::default()
4358 }),
4359 );
4360 map.insert(
4361 SmolStr::new_static("type"),
4362 LexObjectProperty::String(LexString {
4363 ..Default::default()
4364 }),
4365 );
4366 map.insert(
4367 SmolStr::new_static("uri"),
4368 LexObjectProperty::String(LexString {
4369 format: Some(LexStringFormat::AtUri),
4370 ..Default::default()
4371 }),
4372 );
4373 map
4374 },
4375 ..Default::default()
4376 }),
4377 );
4378 map.insert(
4379 SmolStr::new_static("communityFeedActorView"),
4380 LexUserType::Object(LexObject {
4381 description: Some(CowStr::new_static(
4382 "Lightweight actor view for community feed items.",
4383 )),
4384 required: Some(vec![SmolStr::new_static("did")]),
4385 properties: {
4386 #[allow(unused_mut)]
4387 let mut map = BTreeMap::new();
4388 map.insert(
4389 SmolStr::new_static("did"),
4390 LexObjectProperty::String(LexString {
4391 format: Some(LexStringFormat::Did),
4392 ..Default::default()
4393 }),
4394 );
4395 map.insert(
4396 SmolStr::new_static("displayName"),
4397 LexObjectProperty::String(LexString {
4398 max_length: Some(640usize),
4399 ..Default::default()
4400 }),
4401 );
4402 map.insert(
4403 SmolStr::new_static("handle"),
4404 LexObjectProperty::String(LexString {
4405 ..Default::default()
4406 }),
4407 );
4408 map
4409 },
4410 ..Default::default()
4411 }),
4412 );
4413 map.insert(
4414 SmolStr::new_static("communityFeedItem"),
4415 LexUserType::Object(LexObject {
4416 description: Some(CowStr::new_static(
4417 "A community activity item with actor information.",
4418 )),
4419 required: Some(vec![
4420 SmolStr::new_static("type"),
4421 SmolStr::new_static("createdAt"),
4422 SmolStr::new_static("actor"),
4423 ]),
4424 properties: {
4425 #[allow(unused_mut)]
4426 let mut map = BTreeMap::new();
4427 map.insert(
4428 SmolStr::new_static("actor"),
4429 LexObjectProperty::Ref(LexRef {
4430 r#ref: CowStr::new_static(
4431 "games.gamesgamesgamesgames.defs#communityFeedActorView",
4432 ),
4433 ..Default::default()
4434 }),
4435 );
4436 map.insert(
4437 SmolStr::new_static("createdAt"),
4438 LexObjectProperty::String(LexString {
4439 description: Some(CowStr::new_static(
4440 "When the activity occurred.",
4441 )),
4442 format: Some(LexStringFormat::Datetime),
4443 ..Default::default()
4444 }),
4445 );
4446 map.insert(
4447 SmolStr::new_static("game"),
4448 LexObjectProperty::Ref(LexRef {
4449 r#ref: CowStr::new_static(
4450 "games.gamesgamesgamesgames.defs#gameView",
4451 ),
4452 ..Default::default()
4453 }),
4454 );
4455 map.insert(
4456 SmolStr::new_static("list"),
4457 LexObjectProperty::Ref(LexRef {
4458 r#ref: CowStr::new_static(
4459 "games.gamesgamesgamesgames.defs#activityListView",
4460 ),
4461 ..Default::default()
4462 }),
4463 );
4464 map.insert(
4465 SmolStr::new_static("review"),
4466 LexObjectProperty::Ref(LexRef {
4467 r#ref: CowStr::new_static(
4468 "games.gamesgamesgamesgames.defs#activityReviewView",
4469 ),
4470 ..Default::default()
4471 }),
4472 );
4473 map.insert(
4474 SmolStr::new_static("type"),
4475 LexObjectProperty::String(LexString {
4476 description: Some(CowStr::new_static("The type of activity.")),
4477 ..Default::default()
4478 }),
4479 );
4480 map
4481 },
4482 ..Default::default()
4483 }),
4484 );
4485 map.insert(
4486 SmolStr::new_static("companyRole"),
4487 LexUserType::String(LexString {
4488 ..Default::default()
4489 }),
4490 );
4491 map.insert(
4492 SmolStr::new_static("creditEntry"),
4493 LexUserType::Object(LexObject {
4494 required: Some(vec![SmolStr::new_static("role")]),
4495 properties: {
4496 #[allow(unused_mut)]
4497 let mut map = BTreeMap::new();
4498 map.insert(
4499 SmolStr::new_static("department"),
4500 LexObjectProperty::String(LexString {
4501 max_length: Some(640usize),
4502 ..Default::default()
4503 }),
4504 );
4505 map.insert(
4506 SmolStr::new_static("role"),
4507 LexObjectProperty::Ref(LexRef {
4508 r#ref: CowStr::new_static(
4509 "games.gamesgamesgamesgames.defs#individualRole",
4510 ),
4511 ..Default::default()
4512 }),
4513 );
4514 map
4515 },
4516 ..Default::default()
4517 }),
4518 );
4519 map.insert(
4520 SmolStr::new_static("engineSummaryView"),
4521 LexUserType::Object(LexObject {
4522 required: Some(vec![
4523 SmolStr::new_static("uri"),
4524 SmolStr::new_static("name"),
4525 ]),
4526 properties: {
4527 #[allow(unused_mut)]
4528 let mut map = BTreeMap::new();
4529 map.insert(
4530 SmolStr::new_static("name"),
4531 LexObjectProperty::String(LexString {
4532 ..Default::default()
4533 }),
4534 );
4535 map.insert(
4536 SmolStr::new_static("slug"),
4537 LexObjectProperty::String(LexString {
4538 ..Default::default()
4539 }),
4540 );
4541 map.insert(
4542 SmolStr::new_static("uri"),
4543 LexObjectProperty::String(LexString {
4544 format: Some(LexStringFormat::AtUri),
4545 ..Default::default()
4546 }),
4547 );
4548 map
4549 },
4550 ..Default::default()
4551 }),
4552 );
4553 map.insert(
4554 SmolStr::new_static("externalIds"),
4555 LexUserType::Object(LexObject {
4556 properties: {
4557 #[allow(unused_mut)]
4558 let mut map = BTreeMap::new();
4559 map.insert(
4560 SmolStr::new_static("appleAppStore"),
4561 LexObjectProperty::String(LexString {
4562 ..Default::default()
4563 }),
4564 );
4565 map.insert(
4566 SmolStr::new_static("epicGames"),
4567 LexObjectProperty::String(LexString {
4568 ..Default::default()
4569 }),
4570 );
4571 map.insert(
4572 SmolStr::new_static("gog"),
4573 LexObjectProperty::String(LexString {
4574 ..Default::default()
4575 }),
4576 );
4577 map.insert(
4578 SmolStr::new_static("googlePlay"),
4579 LexObjectProperty::String(LexString {
4580 ..Default::default()
4581 }),
4582 );
4583 map.insert(
4584 SmolStr::new_static("humbleBundle"),
4585 LexObjectProperty::String(LexString {
4586 ..Default::default()
4587 }),
4588 );
4589 map.insert(
4590 SmolStr::new_static("igdb"),
4591 LexObjectProperty::String(LexString {
4592 ..Default::default()
4593 }),
4594 );
4595 map.insert(
4596 SmolStr::new_static("itchIo"),
4597 LexObjectProperty::Ref(LexRef {
4598 r#ref: CowStr::new_static(
4599 "games.gamesgamesgamesgames.defs#itchIoId",
4600 ),
4601 ..Default::default()
4602 }),
4603 );
4604 map.insert(
4605 SmolStr::new_static("nintendoEshop"),
4606 LexObjectProperty::String(LexString {
4607 ..Default::default()
4608 }),
4609 );
4610 map.insert(
4611 SmolStr::new_static("playStation"),
4612 LexObjectProperty::String(LexString {
4613 ..Default::default()
4614 }),
4615 );
4616 map.insert(
4617 SmolStr::new_static("steam"),
4618 LexObjectProperty::String(LexString {
4619 ..Default::default()
4620 }),
4621 );
4622 map.insert(
4623 SmolStr::new_static("twitch"),
4624 LexObjectProperty::String(LexString {
4625 ..Default::default()
4626 }),
4627 );
4628 map.insert(
4629 SmolStr::new_static("xbox"),
4630 LexObjectProperty::String(LexString {
4631 ..Default::default()
4632 }),
4633 );
4634 map
4635 },
4636 ..Default::default()
4637 }),
4638 );
4639 map.insert(
4640 SmolStr::new_static("externalVideo"),
4641 LexUserType::Object(LexObject {
4642 required: Some(vec![
4643 SmolStr::new_static("videoId"),
4644 SmolStr::new_static("platform"),
4645 ]),
4646 properties: {
4647 #[allow(unused_mut)]
4648 let mut map = BTreeMap::new();
4649 map.insert(
4650 SmolStr::new_static("platform"),
4651 LexObjectProperty::String(LexString {
4652 ..Default::default()
4653 }),
4654 );
4655 map.insert(
4656 SmolStr::new_static("title"),
4657 LexObjectProperty::String(LexString {
4658 ..Default::default()
4659 }),
4660 );
4661 map.insert(
4662 SmolStr::new_static("videoId"),
4663 LexObjectProperty::String(LexString {
4664 ..Default::default()
4665 }),
4666 );
4667 map
4668 },
4669 ..Default::default()
4670 }),
4671 );
4672 map.insert(
4673 SmolStr::new_static("gameDetailView"),
4674 LexUserType::Object(LexObject {
4675 required: Some(vec![
4676 SmolStr::new_static("name"),
4677 SmolStr::new_static("uri"),
4678 SmolStr::new_static("createdAt"),
4679 ]),
4680 properties: {
4681 #[allow(unused_mut)]
4682 let mut map = BTreeMap::new();
4683 map.insert(
4684 SmolStr::new_static("actorCredits"),
4685 LexObjectProperty::Array(LexArray {
4686 items: LexArrayItem::Ref(LexRef {
4687 r#ref: CowStr::new_static(
4688 "games.gamesgamesgamesgames.defs#actorCreditView",
4689 ),
4690 ..Default::default()
4691 }),
4692 ..Default::default()
4693 }),
4694 );
4695 map.insert(
4696 SmolStr::new_static("ageRatings"),
4697 LexObjectProperty::Array(LexArray {
4698 items: LexArrayItem::Ref(LexRef {
4699 r#ref: CowStr::new_static(
4700 "games.gamesgamesgamesgames.defs#ageRating",
4701 ),
4702 ..Default::default()
4703 }),
4704 ..Default::default()
4705 }),
4706 );
4707 map.insert(
4708 SmolStr::new_static("alternativeNames"),
4709 LexObjectProperty::Array(LexArray {
4710 items: LexArrayItem::Ref(LexRef {
4711 r#ref: CowStr::new_static(
4712 "games.gamesgamesgamesgames.defs#alternativeName",
4713 ),
4714 ..Default::default()
4715 }),
4716 ..Default::default()
4717 }),
4718 );
4719 map.insert(
4720 SmolStr::new_static("applicationType"),
4721 LexObjectProperty::Ref(LexRef {
4722 r#ref: CowStr::new_static(
4723 "games.gamesgamesgamesgames.defs#applicationType",
4724 ),
4725 ..Default::default()
4726 }),
4727 );
4728 map.insert(
4729 SmolStr::new_static("collections"),
4730 LexObjectProperty::Array(LexArray {
4731 items: LexArrayItem::String(LexString {
4732 format: Some(LexStringFormat::AtUri),
4733 ..Default::default()
4734 }),
4735 ..Default::default()
4736 }),
4737 );
4738 map.insert(
4739 SmolStr::new_static("createdAt"),
4740 LexObjectProperty::String(LexString {
4741 format: Some(LexStringFormat::Datetime),
4742 ..Default::default()
4743 }),
4744 );
4745 map.insert(
4746 SmolStr::new_static("engines"),
4747 LexObjectProperty::Array(LexArray {
4748 items: LexArrayItem::String(LexString {
4749 format: Some(LexStringFormat::AtUri),
4750 ..Default::default()
4751 }),
4752 ..Default::default()
4753 }),
4754 );
4755 map.insert(
4756 SmolStr::new_static("externalIds"),
4757 LexObjectProperty::Ref(LexRef {
4758 r#ref: CowStr::new_static(
4759 "games.gamesgamesgamesgames.defs#externalIds",
4760 ),
4761 ..Default::default()
4762 }),
4763 );
4764 map.insert(
4765 SmolStr::new_static("genres"),
4766 LexObjectProperty::Array(LexArray {
4767 items: LexArrayItem::Ref(LexRef {
4768 r#ref: CowStr::new_static(
4769 "games.gamesgamesgamesgames.defs#genre",
4770 ),
4771 ..Default::default()
4772 }),
4773 ..Default::default()
4774 }),
4775 );
4776 map.insert(
4777 SmolStr::new_static("keywords"),
4778 LexObjectProperty::Array(LexArray {
4779 items: LexArrayItem::String(LexString {
4780 ..Default::default()
4781 }),
4782 ..Default::default()
4783 }),
4784 );
4785 map.insert(
4786 SmolStr::new_static("languageSupports"),
4787 LexObjectProperty::Array(LexArray {
4788 items: LexArrayItem::Ref(LexRef {
4789 r#ref: CowStr::new_static(
4790 "games.gamesgamesgamesgames.defs#languageSupport",
4791 ),
4792 ..Default::default()
4793 }),
4794 ..Default::default()
4795 }),
4796 );
4797 map.insert(
4798 SmolStr::new_static("media"),
4799 LexObjectProperty::Array(LexArray {
4800 items: LexArrayItem::Ref(LexRef {
4801 r#ref: CowStr::new_static(
4802 "games.gamesgamesgamesgames.defs#mediaItem",
4803 ),
4804 ..Default::default()
4805 }),
4806 ..Default::default()
4807 }),
4808 );
4809 map.insert(
4810 SmolStr::new_static("modes"),
4811 LexObjectProperty::Array(LexArray {
4812 items: LexArrayItem::Ref(LexRef {
4813 r#ref: CowStr::new_static(
4814 "games.gamesgamesgamesgames.defs#mode",
4815 ),
4816 ..Default::default()
4817 }),
4818 ..Default::default()
4819 }),
4820 );
4821 map.insert(
4822 SmolStr::new_static("multiplayerModes"),
4823 LexObjectProperty::Array(LexArray {
4824 items: LexArrayItem::Ref(LexRef {
4825 r#ref: CowStr::new_static(
4826 "games.gamesgamesgamesgames.defs#multiplayerMode",
4827 ),
4828 ..Default::default()
4829 }),
4830 ..Default::default()
4831 }),
4832 );
4833 map.insert(
4834 SmolStr::new_static("name"),
4835 LexObjectProperty::String(LexString {
4836 ..Default::default()
4837 }),
4838 );
4839 map.insert(
4840 SmolStr::new_static("orgCredits"),
4841 LexObjectProperty::Array(LexArray {
4842 items: LexArrayItem::Ref(LexRef {
4843 r#ref: CowStr::new_static(
4844 "games.gamesgamesgamesgames.defs#orgCreditView",
4845 ),
4846 ..Default::default()
4847 }),
4848 ..Default::default()
4849 }),
4850 );
4851 map.insert(
4852 SmolStr::new_static("parent"),
4853 LexObjectProperty::String(LexString {
4854 format: Some(LexStringFormat::AtUri),
4855 ..Default::default()
4856 }),
4857 );
4858 map.insert(
4859 SmolStr::new_static("playerPerspectives"),
4860 LexObjectProperty::Array(LexArray {
4861 items: LexArrayItem::Ref(LexRef {
4862 r#ref: CowStr::new_static(
4863 "games.gamesgamesgamesgames.defs#playerPerspective",
4864 ),
4865 ..Default::default()
4866 }),
4867 ..Default::default()
4868 }),
4869 );
4870 map.insert(
4871 SmolStr::new_static("publishedAt"),
4872 LexObjectProperty::String(LexString {
4873 format: Some(LexStringFormat::Datetime),
4874 ..Default::default()
4875 }),
4876 );
4877 map.insert(
4878 SmolStr::new_static("releases"),
4879 LexObjectProperty::Array(LexArray {
4880 items: LexArrayItem::Ref(LexRef {
4881 r#ref: CowStr::new_static(
4882 "games.gamesgamesgamesgames.defs#release",
4883 ),
4884 ..Default::default()
4885 }),
4886 ..Default::default()
4887 }),
4888 );
4889 map.insert(
4890 SmolStr::new_static("slug"),
4891 LexObjectProperty::String(LexString {
4892 ..Default::default()
4893 }),
4894 );
4895 map.insert(
4896 SmolStr::new_static("storyline"),
4897 LexObjectProperty::String(LexString {
4898 ..Default::default()
4899 }),
4900 );
4901 map.insert(
4902 SmolStr::new_static("summary"),
4903 LexObjectProperty::String(LexString {
4904 ..Default::default()
4905 }),
4906 );
4907 map.insert(
4908 SmolStr::new_static("themes"),
4909 LexObjectProperty::Array(LexArray {
4910 items: LexArrayItem::Ref(LexRef {
4911 r#ref: CowStr::new_static(
4912 "games.gamesgamesgamesgames.defs#theme",
4913 ),
4914 ..Default::default()
4915 }),
4916 ..Default::default()
4917 }),
4918 );
4919 map.insert(
4920 SmolStr::new_static("timeToBeat"),
4921 LexObjectProperty::Ref(LexRef {
4922 r#ref: CowStr::new_static(
4923 "games.gamesgamesgamesgames.defs#timeToBeat",
4924 ),
4925 ..Default::default()
4926 }),
4927 );
4928 map.insert(
4929 SmolStr::new_static("uri"),
4930 LexObjectProperty::String(LexString {
4931 format: Some(LexStringFormat::AtUri),
4932 ..Default::default()
4933 }),
4934 );
4935 map.insert(
4936 SmolStr::new_static("videos"),
4937 LexObjectProperty::Array(LexArray {
4938 items: LexArrayItem::Ref(LexRef {
4939 r#ref: CowStr::new_static(
4940 "games.gamesgamesgamesgames.defs#externalVideo",
4941 ),
4942 ..Default::default()
4943 }),
4944 ..Default::default()
4945 }),
4946 );
4947 map.insert(
4948 SmolStr::new_static("websites"),
4949 LexObjectProperty::Array(LexArray {
4950 items: LexArrayItem::Ref(LexRef {
4951 r#ref: CowStr::new_static(
4952 "games.gamesgamesgamesgames.defs#website",
4953 ),
4954 ..Default::default()
4955 }),
4956 ..Default::default()
4957 }),
4958 );
4959 map
4960 },
4961 ..Default::default()
4962 }),
4963 );
4964 map.insert(
4965 SmolStr::new_static("gameFeedViewItem"),
4966 LexUserType::Object(LexObject {
4967 required: Some(vec![SmolStr::new_static("game")]),
4968 properties: {
4969 #[allow(unused_mut)]
4970 let mut map = BTreeMap::new();
4971 map.insert(
4972 SmolStr::new_static("feedContext"),
4973 LexObjectProperty::String(LexString {
4974 max_length: Some(2000usize),
4975 ..Default::default()
4976 }),
4977 );
4978 map.insert(
4979 SmolStr::new_static("game"),
4980 LexObjectProperty::Ref(LexRef {
4981 r#ref: CowStr::new_static(
4982 "games.gamesgamesgamesgames.defs#gameView",
4983 ),
4984 ..Default::default()
4985 }),
4986 );
4987 map
4988 },
4989 ..Default::default()
4990 }),
4991 );
4992 map.insert(
4993 SmolStr::new_static("gameSummaryView"),
4994 LexUserType::Object(LexObject {
4995 required: Some(vec![
4996 SmolStr::new_static("uri"),
4997 SmolStr::new_static("name"),
4998 ]),
4999 properties: {
5000 #[allow(unused_mut)]
5001 let mut map = BTreeMap::new();
5002 map.insert(
5003 SmolStr::new_static("applicationType"),
5004 LexObjectProperty::Ref(LexRef {
5005 r#ref: CowStr::new_static(
5006 "games.gamesgamesgamesgames.defs#applicationType",
5007 ),
5008 ..Default::default()
5009 }),
5010 );
5011 map.insert(
5012 SmolStr::new_static("firstReleaseDate"),
5013 LexObjectProperty::Integer(LexInteger {
5014 ..Default::default()
5015 }),
5016 );
5017 map.insert(
5018 SmolStr::new_static("media"),
5019 LexObjectProperty::Array(LexArray {
5020 items: LexArrayItem::Ref(LexRef {
5021 r#ref: CowStr::new_static(
5022 "games.gamesgamesgamesgames.defs#mediaItem",
5023 ),
5024 ..Default::default()
5025 }),
5026 ..Default::default()
5027 }),
5028 );
5029 map.insert(
5030 SmolStr::new_static("name"),
5031 LexObjectProperty::String(LexString {
5032 ..Default::default()
5033 }),
5034 );
5035 map.insert(
5036 SmolStr::new_static("slug"),
5037 LexObjectProperty::String(LexString {
5038 ..Default::default()
5039 }),
5040 );
5041 map.insert(
5042 SmolStr::new_static("summary"),
5043 LexObjectProperty::String(LexString {
5044 ..Default::default()
5045 }),
5046 );
5047 map.insert(
5048 SmolStr::new_static("uri"),
5049 LexObjectProperty::String(LexString {
5050 format: Some(LexStringFormat::AtUri),
5051 ..Default::default()
5052 }),
5053 );
5054 map
5055 },
5056 ..Default::default()
5057 }),
5058 );
5059 map.insert(
5060 SmolStr::new_static("gameView"),
5061 LexUserType::Object(LexObject {
5062 required: Some(vec![
5063 SmolStr::new_static("uri"),
5064 SmolStr::new_static("name"),
5065 SmolStr::new_static("applicationType"),
5066 ]),
5067 properties: {
5068 #[allow(unused_mut)]
5069 let mut map = BTreeMap::new();
5070 map.insert(
5071 SmolStr::new_static("applicationType"),
5072 LexObjectProperty::Ref(LexRef {
5073 r#ref: CowStr::new_static(
5074 "games.gamesgamesgamesgames.defs#applicationType",
5075 ),
5076 ..Default::default()
5077 }),
5078 );
5079 map.insert(
5080 SmolStr::new_static("genres"),
5081 LexObjectProperty::Array(LexArray {
5082 items: LexArrayItem::Ref(LexRef {
5083 r#ref: CowStr::new_static(
5084 "games.gamesgamesgamesgames.defs#genre",
5085 ),
5086 ..Default::default()
5087 }),
5088 ..Default::default()
5089 }),
5090 );
5091 map.insert(
5092 SmolStr::new_static("likeCount"),
5093 LexObjectProperty::Integer(LexInteger {
5094 minimum: Some(0i64),
5095 ..Default::default()
5096 }),
5097 );
5098 map.insert(
5099 SmolStr::new_static("media"),
5100 LexObjectProperty::Array(LexArray {
5101 items: LexArrayItem::Ref(LexRef {
5102 r#ref: CowStr::new_static(
5103 "games.gamesgamesgamesgames.defs#mediaItem",
5104 ),
5105 ..Default::default()
5106 }),
5107 ..Default::default()
5108 }),
5109 );
5110 map.insert(
5111 SmolStr::new_static("name"),
5112 LexObjectProperty::String(LexString {
5113 ..Default::default()
5114 }),
5115 );
5116 map.insert(
5117 SmolStr::new_static("releases"),
5118 LexObjectProperty::Array(LexArray {
5119 items: LexArrayItem::Ref(LexRef {
5120 r#ref: CowStr::new_static(
5121 "games.gamesgamesgamesgames.defs#release",
5122 ),
5123 ..Default::default()
5124 }),
5125 ..Default::default()
5126 }),
5127 );
5128 map.insert(
5129 SmolStr::new_static("slug"),
5130 LexObjectProperty::String(LexString {
5131 ..Default::default()
5132 }),
5133 );
5134 map.insert(
5135 SmolStr::new_static("summary"),
5136 LexObjectProperty::String(LexString {
5137 ..Default::default()
5138 }),
5139 );
5140 map.insert(
5141 SmolStr::new_static("themes"),
5142 LexObjectProperty::Array(LexArray {
5143 items: LexArrayItem::Ref(LexRef {
5144 r#ref: CowStr::new_static(
5145 "games.gamesgamesgamesgames.defs#theme",
5146 ),
5147 ..Default::default()
5148 }),
5149 ..Default::default()
5150 }),
5151 );
5152 map.insert(
5153 SmolStr::new_static("uri"),
5154 LexObjectProperty::String(LexString {
5155 format: Some(LexStringFormat::AtUri),
5156 ..Default::default()
5157 }),
5158 );
5159 map.insert(
5160 SmolStr::new_static("viewer"),
5161 LexObjectProperty::Ref(LexRef {
5162 r#ref: CowStr::new_static(
5163 "games.gamesgamesgamesgames.defs#viewerState",
5164 ),
5165 ..Default::default()
5166 }),
5167 );
5168 map
5169 },
5170 ..Default::default()
5171 }),
5172 );
5173 map.insert(
5174 SmolStr::new_static("genre"),
5175 LexUserType::String(LexString {
5176 ..Default::default()
5177 }),
5178 );
5179 map.insert(
5180 SmolStr::new_static("individualRole"),
5181 LexUserType::String(LexString {
5182 ..Default::default()
5183 }),
5184 );
5185 map.insert(
5186 SmolStr::new_static("itchIoId"),
5187 LexUserType::Object(LexObject {
5188 required: Some(vec![
5189 SmolStr::new_static("developer"),
5190 SmolStr::new_static("game"),
5191 ]),
5192 properties: {
5193 #[allow(unused_mut)]
5194 let mut map = BTreeMap::new();
5195 map.insert(
5196 SmolStr::new_static("developer"),
5197 LexObjectProperty::String(LexString {
5198 ..Default::default()
5199 }),
5200 );
5201 map.insert(
5202 SmolStr::new_static("game"),
5203 LexObjectProperty::String(LexString {
5204 ..Default::default()
5205 }),
5206 );
5207 map
5208 },
5209 ..Default::default()
5210 }),
5211 );
5212 map.insert(
5213 SmolStr::new_static("languageSupport"),
5214 LexUserType::Object(LexObject {
5215 required: Some(vec![SmolStr::new_static("language")]),
5216 properties: {
5217 #[allow(unused_mut)]
5218 let mut map = BTreeMap::new();
5219 map.insert(
5220 SmolStr::new_static("audio"),
5221 LexObjectProperty::Boolean(LexBoolean {
5222 ..Default::default()
5223 }),
5224 );
5225 map.insert(
5226 SmolStr::new_static("interface"),
5227 LexObjectProperty::Boolean(LexBoolean {
5228 ..Default::default()
5229 }),
5230 );
5231 map.insert(
5232 SmolStr::new_static("language"),
5233 LexObjectProperty::String(LexString {
5234 ..Default::default()
5235 }),
5236 );
5237 map.insert(
5238 SmolStr::new_static("subtitles"),
5239 LexObjectProperty::Boolean(LexBoolean {
5240 ..Default::default()
5241 }),
5242 );
5243 map
5244 },
5245 ..Default::default()
5246 }),
5247 );
5248 map.insert(
5249 SmolStr::new_static("mediaItem"),
5250 LexUserType::Object(LexObject {
5251 properties: {
5252 #[allow(unused_mut)]
5253 let mut map = BTreeMap::new();
5254 map.insert(
5255 SmolStr::new_static("blob"),
5256 LexObjectProperty::Blob(LexBlob {
5257 ..Default::default()
5258 }),
5259 );
5260 map.insert(
5261 SmolStr::new_static("description"),
5262 LexObjectProperty::String(LexString {
5263 ..Default::default()
5264 }),
5265 );
5266 map.insert(
5267 SmolStr::new_static("height"),
5268 LexObjectProperty::Integer(LexInteger {
5269 ..Default::default()
5270 }),
5271 );
5272 map.insert(
5273 SmolStr::new_static("locale"),
5274 LexObjectProperty::String(LexString {
5275 ..Default::default()
5276 }),
5277 );
5278 map.insert(
5279 SmolStr::new_static("mediaType"),
5280 LexObjectProperty::String(LexString {
5281 ..Default::default()
5282 }),
5283 );
5284 map.insert(
5285 SmolStr::new_static("title"),
5286 LexObjectProperty::String(LexString {
5287 ..Default::default()
5288 }),
5289 );
5290 map.insert(
5291 SmolStr::new_static("width"),
5292 LexObjectProperty::Integer(LexInteger {
5293 ..Default::default()
5294 }),
5295 );
5296 map
5297 },
5298 ..Default::default()
5299 }),
5300 );
5301 map.insert(
5302 SmolStr::new_static("mode"),
5303 LexUserType::String(LexString {
5304 ..Default::default()
5305 }),
5306 );
5307 map.insert(
5308 SmolStr::new_static("multiplayerMode"),
5309 LexUserType::Object(LexObject {
5310 properties: {
5311 #[allow(unused_mut)]
5312 let mut map = BTreeMap::new();
5313 map.insert(
5314 SmolStr::new_static("hasCampaignCoop"),
5315 LexObjectProperty::Boolean(LexBoolean {
5316 ..Default::default()
5317 }),
5318 );
5319 map.insert(
5320 SmolStr::new_static("hasDropIn"),
5321 LexObjectProperty::Boolean(LexBoolean {
5322 ..Default::default()
5323 }),
5324 );
5325 map.insert(
5326 SmolStr::new_static("hasLanCoop"),
5327 LexObjectProperty::Boolean(LexBoolean {
5328 ..Default::default()
5329 }),
5330 );
5331 map.insert(
5332 SmolStr::new_static("hasSplitscreen"),
5333 LexObjectProperty::Boolean(LexBoolean {
5334 ..Default::default()
5335 }),
5336 );
5337 map.insert(
5338 SmolStr::new_static("hasSplitscreenOnline"),
5339 LexObjectProperty::Boolean(LexBoolean {
5340 ..Default::default()
5341 }),
5342 );
5343 map.insert(
5344 SmolStr::new_static("offlineCoopMax"),
5345 LexObjectProperty::Integer(LexInteger {
5346 ..Default::default()
5347 }),
5348 );
5349 map.insert(
5350 SmolStr::new_static("offlineMax"),
5351 LexObjectProperty::Integer(LexInteger {
5352 ..Default::default()
5353 }),
5354 );
5355 map.insert(
5356 SmolStr::new_static("onlineCoopMax"),
5357 LexObjectProperty::Integer(LexInteger {
5358 ..Default::default()
5359 }),
5360 );
5361 map.insert(
5362 SmolStr::new_static("onlineMax"),
5363 LexObjectProperty::Integer(LexInteger {
5364 ..Default::default()
5365 }),
5366 );
5367 map.insert(
5368 SmolStr::new_static("platform"),
5369 LexObjectProperty::String(LexString {
5370 ..Default::default()
5371 }),
5372 );
5373 map
5374 },
5375 ..Default::default()
5376 }),
5377 );
5378 map.insert(
5379 SmolStr::new_static("orgCreditView"),
5380 LexUserType::Object(LexObject {
5381 required: Some(vec![
5382 SmolStr::new_static("uri"),
5383 SmolStr::new_static("roles"),
5384 ]),
5385 properties: {
5386 #[allow(unused_mut)]
5387 let mut map = BTreeMap::new();
5388 map.insert(
5389 SmolStr::new_static("displayName"),
5390 LexObjectProperty::String(LexString {
5391 max_length: Some(640usize),
5392 ..Default::default()
5393 }),
5394 );
5395 map.insert(
5396 SmolStr::new_static("orgUri"),
5397 LexObjectProperty::String(LexString {
5398 format: Some(LexStringFormat::AtUri),
5399 ..Default::default()
5400 }),
5401 );
5402 map.insert(
5403 SmolStr::new_static("roles"),
5404 LexObjectProperty::Array(LexArray {
5405 items: LexArrayItem::Ref(LexRef {
5406 r#ref: CowStr::new_static(
5407 "games.gamesgamesgamesgames.defs#companyRole",
5408 ),
5409 ..Default::default()
5410 }),
5411 ..Default::default()
5412 }),
5413 );
5414 map.insert(
5415 SmolStr::new_static("uri"),
5416 LexObjectProperty::String(LexString {
5417 format: Some(LexStringFormat::AtUri),
5418 ..Default::default()
5419 }),
5420 );
5421 map
5422 },
5423 ..Default::default()
5424 }),
5425 );
5426 map.insert(
5427 SmolStr::new_static("orgProfileDetailView"),
5428 LexUserType::Object(LexObject {
5429 required: Some(vec![SmolStr::new_static("uri"), SmolStr::new_static("did")]),
5430 properties: {
5431 #[allow(unused_mut)]
5432 let mut map = BTreeMap::new();
5433 map.insert(
5434 SmolStr::new_static("avatar"),
5435 LexObjectProperty::Blob(LexBlob {
5436 ..Default::default()
5437 }),
5438 );
5439 map.insert(
5440 SmolStr::new_static("country"),
5441 LexObjectProperty::String(LexString {
5442 ..Default::default()
5443 }),
5444 );
5445 map.insert(
5446 SmolStr::new_static("createdAt"),
5447 LexObjectProperty::String(LexString {
5448 format: Some(LexStringFormat::Datetime),
5449 ..Default::default()
5450 }),
5451 );
5452 map.insert(
5453 SmolStr::new_static("description"),
5454 LexObjectProperty::String(LexString {
5455 max_length: Some(3000usize),
5456 ..Default::default()
5457 }),
5458 );
5459 map.insert(
5460 SmolStr::new_static("descriptionFacets"),
5461 LexObjectProperty::Array(LexArray {
5462 items: LexArrayItem::Ref(LexRef {
5463 r#ref: CowStr::new_static("app.bsky.richtext.facet"),
5464 ..Default::default()
5465 }),
5466 ..Default::default()
5467 }),
5468 );
5469 map.insert(
5470 SmolStr::new_static("did"),
5471 LexObjectProperty::String(LexString {
5472 format: Some(LexStringFormat::Did),
5473 ..Default::default()
5474 }),
5475 );
5476 map.insert(
5477 SmolStr::new_static("displayName"),
5478 LexObjectProperty::String(LexString {
5479 max_length: Some(640usize),
5480 ..Default::default()
5481 }),
5482 );
5483 map.insert(
5484 SmolStr::new_static("foundedAt"),
5485 LexObjectProperty::String(LexString {
5486 format: Some(LexStringFormat::Datetime),
5487 ..Default::default()
5488 }),
5489 );
5490 map.insert(
5491 SmolStr::new_static("media"),
5492 LexObjectProperty::Array(LexArray {
5493 items: LexArrayItem::Ref(LexRef {
5494 r#ref: CowStr::new_static(
5495 "games.gamesgamesgamesgames.defs#mediaItem",
5496 ),
5497 ..Default::default()
5498 }),
5499 ..Default::default()
5500 }),
5501 );
5502 map.insert(
5503 SmolStr::new_static("parent"),
5504 LexObjectProperty::String(LexString {
5505 format: Some(LexStringFormat::AtUri),
5506 ..Default::default()
5507 }),
5508 );
5509 map.insert(
5510 SmolStr::new_static("status"),
5511 LexObjectProperty::String(LexString {
5512 ..Default::default()
5513 }),
5514 );
5515 map.insert(
5516 SmolStr::new_static("uri"),
5517 LexObjectProperty::String(LexString {
5518 format: Some(LexStringFormat::AtUri),
5519 ..Default::default()
5520 }),
5521 );
5522 map.insert(
5523 SmolStr::new_static("websites"),
5524 LexObjectProperty::Array(LexArray {
5525 items: LexArrayItem::Ref(LexRef {
5526 r#ref: CowStr::new_static(
5527 "games.gamesgamesgamesgames.defs#website",
5528 ),
5529 ..Default::default()
5530 }),
5531 ..Default::default()
5532 }),
5533 );
5534 map
5535 },
5536 ..Default::default()
5537 }),
5538 );
5539 map.insert(
5540 SmolStr::new_static("orgProfileSummaryView"),
5541 LexUserType::Object(LexObject {
5542 required: Some(vec![SmolStr::new_static("uri"), SmolStr::new_static("did")]),
5543 properties: {
5544 #[allow(unused_mut)]
5545 let mut map = BTreeMap::new();
5546 map.insert(
5547 SmolStr::new_static("avatar"),
5548 LexObjectProperty::Blob(LexBlob {
5549 ..Default::default()
5550 }),
5551 );
5552 map.insert(
5553 SmolStr::new_static("did"),
5554 LexObjectProperty::String(LexString {
5555 format: Some(LexStringFormat::Did),
5556 ..Default::default()
5557 }),
5558 );
5559 map.insert(
5560 SmolStr::new_static("displayName"),
5561 LexObjectProperty::String(LexString {
5562 max_length: Some(640usize),
5563 ..Default::default()
5564 }),
5565 );
5566 map.insert(
5567 SmolStr::new_static("uri"),
5568 LexObjectProperty::String(LexString {
5569 format: Some(LexStringFormat::AtUri),
5570 ..Default::default()
5571 }),
5572 );
5573 map
5574 },
5575 ..Default::default()
5576 }),
5577 );
5578 map.insert(
5579 SmolStr::new_static("platformCategory"),
5580 LexUserType::String(LexString {
5581 ..Default::default()
5582 }),
5583 );
5584 map.insert(
5585 SmolStr::new_static("platformFeatures"),
5586 LexUserType::Object(LexObject {
5587 description: Some(CowStr::new_static(
5588 "Features supported by a game on a specific storefront/platform.",
5589 )),
5590 required: Some(vec![
5591 SmolStr::new_static("platform"),
5592 SmolStr::new_static("features"),
5593 ]),
5594 properties: {
5595 #[allow(unused_mut)]
5596 let mut map = BTreeMap::new();
5597 map.insert(
5598 SmolStr::new_static("features"),
5599 LexObjectProperty::Array(LexArray {
5600 items: LexArrayItem::String(LexString {
5601 ..Default::default()
5602 }),
5603 ..Default::default()
5604 }),
5605 );
5606 map.insert(
5607 SmolStr::new_static("platform"),
5608 LexObjectProperty::String(LexString {
5609 ..Default::default()
5610 }),
5611 );
5612 map
5613 },
5614 ..Default::default()
5615 }),
5616 );
5617 map.insert(
5618 SmolStr::new_static("platformSummaryView"),
5619 LexUserType::Object(LexObject {
5620 required: Some(vec![
5621 SmolStr::new_static("uri"),
5622 SmolStr::new_static("name"),
5623 ]),
5624 properties: {
5625 #[allow(unused_mut)]
5626 let mut map = BTreeMap::new();
5627 map.insert(
5628 SmolStr::new_static("abbreviation"),
5629 LexObjectProperty::String(LexString {
5630 ..Default::default()
5631 }),
5632 );
5633 map.insert(
5634 SmolStr::new_static("category"),
5635 LexObjectProperty::Ref(LexRef {
5636 r#ref: CowStr::new_static(
5637 "games.gamesgamesgamesgames.defs#platformCategory",
5638 ),
5639 ..Default::default()
5640 }),
5641 );
5642 map.insert(
5643 SmolStr::new_static("name"),
5644 LexObjectProperty::String(LexString {
5645 ..Default::default()
5646 }),
5647 );
5648 map.insert(
5649 SmolStr::new_static("slug"),
5650 LexObjectProperty::String(LexString {
5651 ..Default::default()
5652 }),
5653 );
5654 map.insert(
5655 SmolStr::new_static("uri"),
5656 LexObjectProperty::String(LexString {
5657 format: Some(LexStringFormat::AtUri),
5658 ..Default::default()
5659 }),
5660 );
5661 map
5662 },
5663 ..Default::default()
5664 }),
5665 );
5666 map.insert(
5667 SmolStr::new_static("platformVersion"),
5668 LexUserType::Object(LexObject {
5669 required: Some(vec![SmolStr::new_static("name")]),
5670 properties: {
5671 #[allow(unused_mut)]
5672 let mut map = BTreeMap::new();
5673 map.insert(
5674 SmolStr::new_static("connectivity"),
5675 LexObjectProperty::String(LexString {
5676 ..Default::default()
5677 }),
5678 );
5679 map.insert(
5680 SmolStr::new_static("cpu"),
5681 LexObjectProperty::String(LexString {
5682 ..Default::default()
5683 }),
5684 );
5685 map.insert(
5686 SmolStr::new_static("gpu"),
5687 LexObjectProperty::String(LexString {
5688 ..Default::default()
5689 }),
5690 );
5691 map.insert(
5692 SmolStr::new_static("maxResolution"),
5693 LexObjectProperty::String(LexString {
5694 ..Default::default()
5695 }),
5696 );
5697 map.insert(
5698 SmolStr::new_static("media"),
5699 LexObjectProperty::Array(LexArray {
5700 items: LexArrayItem::Ref(LexRef {
5701 r#ref: CowStr::new_static(
5702 "games.gamesgamesgamesgames.defs#mediaItem",
5703 ),
5704 ..Default::default()
5705 }),
5706 ..Default::default()
5707 }),
5708 );
5709 map.insert(
5710 SmolStr::new_static("memory"),
5711 LexObjectProperty::String(LexString {
5712 ..Default::default()
5713 }),
5714 );
5715 map.insert(
5716 SmolStr::new_static("name"),
5717 LexObjectProperty::String(LexString {
5718 ..Default::default()
5719 }),
5720 );
5721 map.insert(
5722 SmolStr::new_static("os"),
5723 LexObjectProperty::String(LexString {
5724 ..Default::default()
5725 }),
5726 );
5727 map.insert(
5728 SmolStr::new_static("output"),
5729 LexObjectProperty::String(LexString {
5730 ..Default::default()
5731 }),
5732 );
5733 map.insert(
5734 SmolStr::new_static("storage"),
5735 LexObjectProperty::String(LexString {
5736 ..Default::default()
5737 }),
5738 );
5739 map.insert(
5740 SmolStr::new_static("summary"),
5741 LexObjectProperty::String(LexString {
5742 ..Default::default()
5743 }),
5744 );
5745 map
5746 },
5747 ..Default::default()
5748 }),
5749 );
5750 map.insert(
5751 SmolStr::new_static("playerPerspective"),
5752 LexUserType::String(LexString {
5753 ..Default::default()
5754 }),
5755 );
5756 map.insert(
5757 SmolStr::new_static("profileSummaryView"),
5758 LexUserType::Object(LexObject {
5759 required: Some(vec![
5760 SmolStr::new_static("uri"),
5761 SmolStr::new_static("did"),
5762 SmolStr::new_static("profileType"),
5763 ]),
5764 properties: {
5765 #[allow(unused_mut)]
5766 let mut map = BTreeMap::new();
5767 map.insert(
5768 SmolStr::new_static("avatar"),
5769 LexObjectProperty::Blob(LexBlob {
5770 ..Default::default()
5771 }),
5772 );
5773 map.insert(
5774 SmolStr::new_static("did"),
5775 LexObjectProperty::String(LexString {
5776 format: Some(LexStringFormat::Did),
5777 ..Default::default()
5778 }),
5779 );
5780 map.insert(
5781 SmolStr::new_static("displayName"),
5782 LexObjectProperty::String(LexString {
5783 max_length: Some(640usize),
5784 ..Default::default()
5785 }),
5786 );
5787 map.insert(
5788 SmolStr::new_static("profileType"),
5789 LexObjectProperty::String(LexString {
5790 ..Default::default()
5791 }),
5792 );
5793 map.insert(
5794 SmolStr::new_static("uri"),
5795 LexObjectProperty::String(LexString {
5796 format: Some(LexStringFormat::AtUri),
5797 ..Default::default()
5798 }),
5799 );
5800 map
5801 },
5802 ..Default::default()
5803 }),
5804 );
5805 map.insert(
5806 SmolStr::new_static("release"),
5807 LexUserType::Object(LexObject {
5808 properties: {
5809 #[allow(unused_mut)]
5810 let mut map = BTreeMap::new();
5811 map.insert(
5812 SmolStr::new_static("platform"),
5813 LexObjectProperty::String(LexString {
5814 description: Some(CowStr::new_static(
5815 "Free-text platform name, used when no platform record exists.",
5816 )),
5817 ..Default::default()
5818 }),
5819 );
5820 map.insert(
5821 SmolStr::new_static("platformUri"),
5822 LexObjectProperty::String(LexString {
5823 description: Some(CowStr::new_static(
5824 "AT URI of a platform record.",
5825 )),
5826 format: Some(LexStringFormat::AtUri),
5827 ..Default::default()
5828 }),
5829 );
5830 map.insert(
5831 SmolStr::new_static("releaseDates"),
5832 LexObjectProperty::Array(LexArray {
5833 items: LexArrayItem::Ref(LexRef {
5834 r#ref: CowStr::new_static(
5835 "games.gamesgamesgamesgames.defs#releaseDate",
5836 ),
5837 ..Default::default()
5838 }),
5839 ..Default::default()
5840 }),
5841 );
5842 map
5843 },
5844 ..Default::default()
5845 }),
5846 );
5847 map.insert(
5848 SmolStr::new_static("releaseDate"),
5849 LexUserType::Object(LexObject {
5850 properties: {
5851 #[allow(unused_mut)]
5852 let mut map = BTreeMap::new();
5853 map.insert(
5854 SmolStr::new_static("region"),
5855 LexObjectProperty::String(LexString {
5856 ..Default::default()
5857 }),
5858 );
5859 map.insert(
5860 SmolStr::new_static("releasedAt"),
5861 LexObjectProperty::String(LexString {
5862 ..Default::default()
5863 }),
5864 );
5865 map.insert(
5866 SmolStr::new_static("releasedAtFormat"),
5867 LexObjectProperty::String(LexString {
5868 ..Default::default()
5869 }),
5870 );
5871 map.insert(
5872 SmolStr::new_static("status"),
5873 LexObjectProperty::String(LexString {
5874 ..Default::default()
5875 }),
5876 );
5877 map
5878 },
5879 ..Default::default()
5880 }),
5881 );
5882 map.insert(
5883 SmolStr::new_static("signature"),
5884 LexUserType::Object(LexObject {
5885 description: Some(CowStr::new_static("An inline attestation signature.")),
5886 required: Some(vec![
5887 SmolStr::new_static("key"),
5888 SmolStr::new_static("signature"),
5889 ]),
5890 properties: {
5891 #[allow(unused_mut)]
5892 let mut map = BTreeMap::new();
5893 map.insert(
5894 SmolStr::new_static("key"),
5895 LexObjectProperty::String(LexString {
5896 description: Some(CowStr::new_static(
5897 "DID key reference (e.g., did:web:example.com#signing1).",
5898 )),
5899 ..Default::default()
5900 }),
5901 );
5902 map.insert(
5903 SmolStr::new_static("signature"),
5904 LexObjectProperty::Bytes(LexBytes {
5905 ..Default::default()
5906 }),
5907 );
5908 map
5909 },
5910 ..Default::default()
5911 }),
5912 );
5913 map.insert(
5914 SmolStr::new_static("skeletonGameFeedItem"),
5915 LexUserType::Object(LexObject {
5916 required: Some(vec![SmolStr::new_static("game")]),
5917 properties: {
5918 #[allow(unused_mut)]
5919 let mut map = BTreeMap::new();
5920 map.insert(
5921 SmolStr::new_static("feedContext"),
5922 LexObjectProperty::String(LexString {
5923 max_length: Some(2000usize),
5924 ..Default::default()
5925 }),
5926 );
5927 map.insert(
5928 SmolStr::new_static("game"),
5929 LexObjectProperty::String(LexString {
5930 format: Some(LexStringFormat::AtUri),
5931 ..Default::default()
5932 }),
5933 );
5934 map
5935 },
5936 ..Default::default()
5937 }),
5938 );
5939 map.insert(
5940 SmolStr::new_static("systemRequirements"),
5941 LexUserType::Object(LexObject {
5942 description: Some(CowStr::new_static(
5943 "System requirements for a game on a specific platform.",
5944 )),
5945 required: Some(vec![SmolStr::new_static("platform")]),
5946 properties: {
5947 #[allow(unused_mut)]
5948 let mut map = BTreeMap::new();
5949 map.insert(
5950 SmolStr::new_static("minimum"),
5951 LexObjectProperty::Ref(LexRef {
5952 r#ref: CowStr::new_static("#systemSpec"),
5953 ..Default::default()
5954 }),
5955 );
5956 map.insert(
5957 SmolStr::new_static("platform"),
5958 LexObjectProperty::String(LexString {
5959 ..Default::default()
5960 }),
5961 );
5962 map.insert(
5963 SmolStr::new_static("recommended"),
5964 LexObjectProperty::Ref(LexRef {
5965 r#ref: CowStr::new_static("#systemSpec"),
5966 ..Default::default()
5967 }),
5968 );
5969 map
5970 },
5971 ..Default::default()
5972 }),
5973 );
5974 map.insert(
5975 SmolStr::new_static("systemSpec"),
5976 LexUserType::Object(LexObject {
5977 description: Some(CowStr::new_static(
5978 "Hardware/software specification for a platform.",
5979 )),
5980 properties: {
5981 #[allow(unused_mut)]
5982 let mut map = BTreeMap::new();
5983 map.insert(
5984 SmolStr::new_static("additionalNotes"),
5985 LexObjectProperty::String(LexString {
5986 ..Default::default()
5987 }),
5988 );
5989 map.insert(
5990 SmolStr::new_static("directx"),
5991 LexObjectProperty::String(LexString {
5992 ..Default::default()
5993 }),
5994 );
5995 map.insert(
5996 SmolStr::new_static("graphics"),
5997 LexObjectProperty::String(LexString {
5998 ..Default::default()
5999 }),
6000 );
6001 map.insert(
6002 SmolStr::new_static("memory"),
6003 LexObjectProperty::String(LexString {
6004 ..Default::default()
6005 }),
6006 );
6007 map.insert(
6008 SmolStr::new_static("os"),
6009 LexObjectProperty::String(LexString {
6010 ..Default::default()
6011 }),
6012 );
6013 map.insert(
6014 SmolStr::new_static("processor"),
6015 LexObjectProperty::String(LexString {
6016 ..Default::default()
6017 }),
6018 );
6019 map.insert(
6020 SmolStr::new_static("soundCard"),
6021 LexObjectProperty::String(LexString {
6022 ..Default::default()
6023 }),
6024 );
6025 map.insert(
6026 SmolStr::new_static("storage"),
6027 LexObjectProperty::String(LexString {
6028 ..Default::default()
6029 }),
6030 );
6031 map
6032 },
6033 ..Default::default()
6034 }),
6035 );
6036 map.insert(
6037 SmolStr::new_static("theme"),
6038 LexUserType::String(LexString {
6039 ..Default::default()
6040 }),
6041 );
6042 map.insert(
6043 SmolStr::new_static("timeToBeat"),
6044 LexUserType::Object(LexObject {
6045 properties: {
6046 #[allow(unused_mut)]
6047 let mut map = BTreeMap::new();
6048 map.insert(
6049 SmolStr::new_static("completely"),
6050 LexObjectProperty::Integer(LexInteger {
6051 ..Default::default()
6052 }),
6053 );
6054 map.insert(
6055 SmolStr::new_static("hastily"),
6056 LexObjectProperty::Integer(LexInteger {
6057 ..Default::default()
6058 }),
6059 );
6060 map.insert(
6061 SmolStr::new_static("normally"),
6062 LexObjectProperty::Integer(LexInteger {
6063 ..Default::default()
6064 }),
6065 );
6066 map
6067 },
6068 ..Default::default()
6069 }),
6070 );
6071 map.insert(
6072 SmolStr::new_static("viewerState"),
6073 LexUserType::Object(LexObject {
6074 properties: {
6075 #[allow(unused_mut)]
6076 let mut map = BTreeMap::new();
6077 map.insert(
6078 SmolStr::new_static("like"),
6079 LexObjectProperty::String(LexString {
6080 format: Some(LexStringFormat::AtUri),
6081 ..Default::default()
6082 }),
6083 );
6084 map
6085 },
6086 ..Default::default()
6087 }),
6088 );
6089 map.insert(
6090 SmolStr::new_static("website"),
6091 LexUserType::Object(LexObject {
6092 required: Some(vec![SmolStr::new_static("url")]),
6093 properties: {
6094 #[allow(unused_mut)]
6095 let mut map = BTreeMap::new();
6096 map.insert(
6097 SmolStr::new_static("type"),
6098 LexObjectProperty::String(LexString {
6099 ..Default::default()
6100 }),
6101 );
6102 map.insert(
6103 SmolStr::new_static("url"),
6104 LexObjectProperty::String(LexString {
6105 format: Some(LexStringFormat::Uri),
6106 ..Default::default()
6107 }),
6108 );
6109 map
6110 },
6111 ..Default::default()
6112 }),
6113 );
6114 map
6115 },
6116 ..Default::default()
6117 }
6118}
6119
6120pub mod activity_list_view_state {
6121
6122 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
6123 #[allow(unused)]
6124 use ::core::marker::PhantomData;
6125 mod sealed {
6126 pub trait Sealed {}
6127 }
6128 pub trait State: sealed::Sealed {
6130 type CreatedAt;
6131 type Name;
6132 type Uri;
6133 }
6134 pub struct Empty(());
6136 impl sealed::Sealed for Empty {}
6137 impl State for Empty {
6138 type CreatedAt = Unset;
6139 type Name = Unset;
6140 type Uri = Unset;
6141 }
6142 pub struct SetCreatedAt<St: State = Empty>(PhantomData<fn() -> St>);
6144 impl<St: State> sealed::Sealed for SetCreatedAt<St> {}
6145 impl<St: State> State for SetCreatedAt<St> {
6146 type CreatedAt = Set<members::created_at>;
6147 type Name = St::Name;
6148 type Uri = St::Uri;
6149 }
6150 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
6152 impl<St: State> sealed::Sealed for SetName<St> {}
6153 impl<St: State> State for SetName<St> {
6154 type CreatedAt = St::CreatedAt;
6155 type Name = Set<members::name>;
6156 type Uri = St::Uri;
6157 }
6158 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
6160 impl<St: State> sealed::Sealed for SetUri<St> {}
6161 impl<St: State> State for SetUri<St> {
6162 type CreatedAt = St::CreatedAt;
6163 type Name = St::Name;
6164 type Uri = Set<members::uri>;
6165 }
6166 #[allow(non_camel_case_types)]
6168 pub mod members {
6169 pub struct created_at(());
6171 pub struct name(());
6173 pub struct uri(());
6175 }
6176}
6177
6178pub struct ActivityListViewBuilder<St: activity_list_view_state::State, S: BosStr = DefaultStr> {
6180 _state: PhantomData<fn() -> St>,
6181 _fields: (Option<Datetime>, Option<S>, Option<AtUri<S>>),
6182 _type: PhantomData<fn() -> S>,
6183}
6184
6185impl ActivityListView<DefaultStr> {
6186 pub fn new() -> ActivityListViewBuilder<activity_list_view_state::Empty, DefaultStr> {
6188 ActivityListViewBuilder::new()
6189 }
6190}
6191
6192impl<S: BosStr> ActivityListView<S> {
6193 pub fn builder() -> ActivityListViewBuilder<activity_list_view_state::Empty, S> {
6195 ActivityListViewBuilder::builder()
6196 }
6197}
6198
6199impl ActivityListViewBuilder<activity_list_view_state::Empty, DefaultStr> {
6200 pub fn new() -> Self {
6202 ActivityListViewBuilder {
6203 _state: PhantomData,
6204 _fields: (None, None, None),
6205 _type: PhantomData,
6206 }
6207 }
6208}
6209
6210impl<S: BosStr> ActivityListViewBuilder<activity_list_view_state::Empty, S> {
6211 pub fn builder() -> Self {
6213 ActivityListViewBuilder {
6214 _state: PhantomData,
6215 _fields: (None, None, None),
6216 _type: PhantomData,
6217 }
6218 }
6219}
6220
6221impl<St, S: BosStr> ActivityListViewBuilder<St, S>
6222where
6223 St: activity_list_view_state::State,
6224 St::CreatedAt: activity_list_view_state::IsUnset,
6225{
6226 pub fn created_at(
6228 mut self,
6229 value: impl Into<Datetime>,
6230 ) -> ActivityListViewBuilder<activity_list_view_state::SetCreatedAt<St>, S> {
6231 self._fields.0 = Option::Some(value.into());
6232 ActivityListViewBuilder {
6233 _state: PhantomData,
6234 _fields: self._fields,
6235 _type: PhantomData,
6236 }
6237 }
6238}
6239
6240impl<St, S: BosStr> ActivityListViewBuilder<St, S>
6241where
6242 St: activity_list_view_state::State,
6243 St::Name: activity_list_view_state::IsUnset,
6244{
6245 pub fn name(
6247 mut self,
6248 value: impl Into<S>,
6249 ) -> ActivityListViewBuilder<activity_list_view_state::SetName<St>, S> {
6250 self._fields.1 = Option::Some(value.into());
6251 ActivityListViewBuilder {
6252 _state: PhantomData,
6253 _fields: self._fields,
6254 _type: PhantomData,
6255 }
6256 }
6257}
6258
6259impl<St, S: BosStr> ActivityListViewBuilder<St, S>
6260where
6261 St: activity_list_view_state::State,
6262 St::Uri: activity_list_view_state::IsUnset,
6263{
6264 pub fn uri(
6266 mut self,
6267 value: impl Into<AtUri<S>>,
6268 ) -> ActivityListViewBuilder<activity_list_view_state::SetUri<St>, S> {
6269 self._fields.2 = Option::Some(value.into());
6270 ActivityListViewBuilder {
6271 _state: PhantomData,
6272 _fields: self._fields,
6273 _type: PhantomData,
6274 }
6275 }
6276}
6277
6278impl<St, S: BosStr> ActivityListViewBuilder<St, S>
6279where
6280 St: activity_list_view_state::State,
6281 St::CreatedAt: activity_list_view_state::IsSet,
6282 St::Name: activity_list_view_state::IsSet,
6283 St::Uri: activity_list_view_state::IsSet,
6284{
6285 pub fn build(self) -> ActivityListView<S> {
6287 ActivityListView {
6288 created_at: self._fields.0.unwrap(),
6289 name: self._fields.1.unwrap(),
6290 uri: self._fields.2.unwrap(),
6291 extra_data: Default::default(),
6292 }
6293 }
6294 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> ActivityListView<S> {
6296 ActivityListView {
6297 created_at: self._fields.0.unwrap(),
6298 name: self._fields.1.unwrap(),
6299 uri: self._fields.2.unwrap(),
6300 extra_data: Some(extra_data),
6301 }
6302 }
6303}
6304
6305pub mod activity_review_view_state {
6306
6307 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
6308 #[allow(unused)]
6309 use ::core::marker::PhantomData;
6310 mod sealed {
6311 pub trait Sealed {}
6312 }
6313 pub trait State: sealed::Sealed {
6315 type CreatedAt;
6316 type Rating;
6317 type Uri;
6318 }
6319 pub struct Empty(());
6321 impl sealed::Sealed for Empty {}
6322 impl State for Empty {
6323 type CreatedAt = Unset;
6324 type Rating = Unset;
6325 type Uri = Unset;
6326 }
6327 pub struct SetCreatedAt<St: State = Empty>(PhantomData<fn() -> St>);
6329 impl<St: State> sealed::Sealed for SetCreatedAt<St> {}
6330 impl<St: State> State for SetCreatedAt<St> {
6331 type CreatedAt = Set<members::created_at>;
6332 type Rating = St::Rating;
6333 type Uri = St::Uri;
6334 }
6335 pub struct SetRating<St: State = Empty>(PhantomData<fn() -> St>);
6337 impl<St: State> sealed::Sealed for SetRating<St> {}
6338 impl<St: State> State for SetRating<St> {
6339 type CreatedAt = St::CreatedAt;
6340 type Rating = Set<members::rating>;
6341 type Uri = St::Uri;
6342 }
6343 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
6345 impl<St: State> sealed::Sealed for SetUri<St> {}
6346 impl<St: State> State for SetUri<St> {
6347 type CreatedAt = St::CreatedAt;
6348 type Rating = St::Rating;
6349 type Uri = Set<members::uri>;
6350 }
6351 #[allow(non_camel_case_types)]
6353 pub mod members {
6354 pub struct created_at(());
6356 pub struct rating(());
6358 pub struct uri(());
6360 }
6361}
6362
6363pub struct ActivityReviewViewBuilder<St: activity_review_view_state::State, S: BosStr = DefaultStr>
6365{
6366 _state: PhantomData<fn() -> St>,
6367 _fields: (
6368 Option<bool>,
6369 Option<Datetime>,
6370 Option<i64>,
6371 Option<Vec<S>>,
6372 Option<S>,
6373 Option<S>,
6374 Option<AtUri<S>>,
6375 ),
6376 _type: PhantomData<fn() -> S>,
6377}
6378
6379impl ActivityReviewView<DefaultStr> {
6380 pub fn new() -> ActivityReviewViewBuilder<activity_review_view_state::Empty, DefaultStr> {
6382 ActivityReviewViewBuilder::new()
6383 }
6384}
6385
6386impl<S: BosStr> ActivityReviewView<S> {
6387 pub fn builder() -> ActivityReviewViewBuilder<activity_review_view_state::Empty, S> {
6389 ActivityReviewViewBuilder::builder()
6390 }
6391}
6392
6393impl ActivityReviewViewBuilder<activity_review_view_state::Empty, DefaultStr> {
6394 pub fn new() -> Self {
6396 ActivityReviewViewBuilder {
6397 _state: PhantomData,
6398 _fields: (None, None, None, None, None, None, None),
6399 _type: PhantomData,
6400 }
6401 }
6402}
6403
6404impl<S: BosStr> ActivityReviewViewBuilder<activity_review_view_state::Empty, S> {
6405 pub fn builder() -> Self {
6407 ActivityReviewViewBuilder {
6408 _state: PhantomData,
6409 _fields: (None, None, None, None, None, None, None),
6410 _type: PhantomData,
6411 }
6412 }
6413}
6414
6415impl<St: activity_review_view_state::State, S: BosStr> ActivityReviewViewBuilder<St, S> {
6416 pub fn contains_spoilers(mut self, value: impl Into<Option<bool>>) -> Self {
6418 self._fields.0 = value.into();
6419 self
6420 }
6421 pub fn maybe_contains_spoilers(mut self, value: Option<bool>) -> Self {
6423 self._fields.0 = value;
6424 self
6425 }
6426}
6427
6428impl<St, S: BosStr> ActivityReviewViewBuilder<St, S>
6429where
6430 St: activity_review_view_state::State,
6431 St::CreatedAt: activity_review_view_state::IsUnset,
6432{
6433 pub fn created_at(
6435 mut self,
6436 value: impl Into<Datetime>,
6437 ) -> ActivityReviewViewBuilder<activity_review_view_state::SetCreatedAt<St>, S> {
6438 self._fields.1 = Option::Some(value.into());
6439 ActivityReviewViewBuilder {
6440 _state: PhantomData,
6441 _fields: self._fields,
6442 _type: PhantomData,
6443 }
6444 }
6445}
6446
6447impl<St, S: BosStr> ActivityReviewViewBuilder<St, S>
6448where
6449 St: activity_review_view_state::State,
6450 St::Rating: activity_review_view_state::IsUnset,
6451{
6452 pub fn rating(
6454 mut self,
6455 value: impl Into<i64>,
6456 ) -> ActivityReviewViewBuilder<activity_review_view_state::SetRating<St>, S> {
6457 self._fields.2 = Option::Some(value.into());
6458 ActivityReviewViewBuilder {
6459 _state: PhantomData,
6460 _fields: self._fields,
6461 _type: PhantomData,
6462 }
6463 }
6464}
6465
6466impl<St: activity_review_view_state::State, S: BosStr> ActivityReviewViewBuilder<St, S> {
6467 pub fn tags(mut self, value: impl Into<Option<Vec<S>>>) -> Self {
6469 self._fields.3 = value.into();
6470 self
6471 }
6472 pub fn maybe_tags(mut self, value: Option<Vec<S>>) -> Self {
6474 self._fields.3 = value;
6475 self
6476 }
6477}
6478
6479impl<St: activity_review_view_state::State, S: BosStr> ActivityReviewViewBuilder<St, S> {
6480 pub fn text(mut self, value: impl Into<Option<S>>) -> Self {
6482 self._fields.4 = value.into();
6483 self
6484 }
6485 pub fn maybe_text(mut self, value: Option<S>) -> Self {
6487 self._fields.4 = value;
6488 self
6489 }
6490}
6491
6492impl<St: activity_review_view_state::State, S: BosStr> ActivityReviewViewBuilder<St, S> {
6493 pub fn title(mut self, value: impl Into<Option<S>>) -> Self {
6495 self._fields.5 = value.into();
6496 self
6497 }
6498 pub fn maybe_title(mut self, value: Option<S>) -> Self {
6500 self._fields.5 = value;
6501 self
6502 }
6503}
6504
6505impl<St, S: BosStr> ActivityReviewViewBuilder<St, S>
6506where
6507 St: activity_review_view_state::State,
6508 St::Uri: activity_review_view_state::IsUnset,
6509{
6510 pub fn uri(
6512 mut self,
6513 value: impl Into<AtUri<S>>,
6514 ) -> ActivityReviewViewBuilder<activity_review_view_state::SetUri<St>, S> {
6515 self._fields.6 = Option::Some(value.into());
6516 ActivityReviewViewBuilder {
6517 _state: PhantomData,
6518 _fields: self._fields,
6519 _type: PhantomData,
6520 }
6521 }
6522}
6523
6524impl<St, S: BosStr> ActivityReviewViewBuilder<St, S>
6525where
6526 St: activity_review_view_state::State,
6527 St::CreatedAt: activity_review_view_state::IsSet,
6528 St::Rating: activity_review_view_state::IsSet,
6529 St::Uri: activity_review_view_state::IsSet,
6530{
6531 pub fn build(self) -> ActivityReviewView<S> {
6533 ActivityReviewView {
6534 contains_spoilers: self._fields.0,
6535 created_at: self._fields.1.unwrap(),
6536 rating: self._fields.2.unwrap(),
6537 tags: self._fields.3,
6538 text: self._fields.4,
6539 title: self._fields.5,
6540 uri: self._fields.6.unwrap(),
6541 extra_data: Default::default(),
6542 }
6543 }
6544 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> ActivityReviewView<S> {
6546 ActivityReviewView {
6547 contains_spoilers: self._fields.0,
6548 created_at: self._fields.1.unwrap(),
6549 rating: self._fields.2.unwrap(),
6550 tags: self._fields.3,
6551 text: self._fields.4,
6552 title: self._fields.5,
6553 uri: self._fields.6.unwrap(),
6554 extra_data: Some(extra_data),
6555 }
6556 }
6557}
6558
6559pub mod actor_credit_view_state {
6560
6561 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
6562 #[allow(unused)]
6563 use ::core::marker::PhantomData;
6564 mod sealed {
6565 pub trait Sealed {}
6566 }
6567 pub trait State: sealed::Sealed {
6569 type Credits;
6570 type Uri;
6571 }
6572 pub struct Empty(());
6574 impl sealed::Sealed for Empty {}
6575 impl State for Empty {
6576 type Credits = Unset;
6577 type Uri = Unset;
6578 }
6579 pub struct SetCredits<St: State = Empty>(PhantomData<fn() -> St>);
6581 impl<St: State> sealed::Sealed for SetCredits<St> {}
6582 impl<St: State> State for SetCredits<St> {
6583 type Credits = Set<members::credits>;
6584 type Uri = St::Uri;
6585 }
6586 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
6588 impl<St: State> sealed::Sealed for SetUri<St> {}
6589 impl<St: State> State for SetUri<St> {
6590 type Credits = St::Credits;
6591 type Uri = Set<members::uri>;
6592 }
6593 #[allow(non_camel_case_types)]
6595 pub mod members {
6596 pub struct credits(());
6598 pub struct uri(());
6600 }
6601}
6602
6603pub struct ActorCreditViewBuilder<St: actor_credit_view_state::State, S: BosStr = DefaultStr> {
6605 _state: PhantomData<fn() -> St>,
6606 _fields: (
6607 Option<AtUri<S>>,
6608 Option<Vec<games_gamesgamesgamesgames::CreditEntry<S>>>,
6609 Option<S>,
6610 Option<AtUri<S>>,
6611 ),
6612 _type: PhantomData<fn() -> S>,
6613}
6614
6615impl ActorCreditView<DefaultStr> {
6616 pub fn new() -> ActorCreditViewBuilder<actor_credit_view_state::Empty, DefaultStr> {
6618 ActorCreditViewBuilder::new()
6619 }
6620}
6621
6622impl<S: BosStr> ActorCreditView<S> {
6623 pub fn builder() -> ActorCreditViewBuilder<actor_credit_view_state::Empty, S> {
6625 ActorCreditViewBuilder::builder()
6626 }
6627}
6628
6629impl ActorCreditViewBuilder<actor_credit_view_state::Empty, DefaultStr> {
6630 pub fn new() -> Self {
6632 ActorCreditViewBuilder {
6633 _state: PhantomData,
6634 _fields: (None, None, None, None),
6635 _type: PhantomData,
6636 }
6637 }
6638}
6639
6640impl<S: BosStr> ActorCreditViewBuilder<actor_credit_view_state::Empty, S> {
6641 pub fn builder() -> Self {
6643 ActorCreditViewBuilder {
6644 _state: PhantomData,
6645 _fields: (None, None, None, None),
6646 _type: PhantomData,
6647 }
6648 }
6649}
6650
6651impl<St: actor_credit_view_state::State, S: BosStr> ActorCreditViewBuilder<St, S> {
6652 pub fn actor_uri(mut self, value: impl Into<Option<AtUri<S>>>) -> Self {
6654 self._fields.0 = value.into();
6655 self
6656 }
6657 pub fn maybe_actor_uri(mut self, value: Option<AtUri<S>>) -> Self {
6659 self._fields.0 = value;
6660 self
6661 }
6662}
6663
6664impl<St, S: BosStr> ActorCreditViewBuilder<St, S>
6665where
6666 St: actor_credit_view_state::State,
6667 St::Credits: actor_credit_view_state::IsUnset,
6668{
6669 pub fn credits(
6671 mut self,
6672 value: impl Into<Vec<games_gamesgamesgamesgames::CreditEntry<S>>>,
6673 ) -> ActorCreditViewBuilder<actor_credit_view_state::SetCredits<St>, S> {
6674 self._fields.1 = Option::Some(value.into());
6675 ActorCreditViewBuilder {
6676 _state: PhantomData,
6677 _fields: self._fields,
6678 _type: PhantomData,
6679 }
6680 }
6681}
6682
6683impl<St: actor_credit_view_state::State, S: BosStr> ActorCreditViewBuilder<St, S> {
6684 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
6686 self._fields.2 = value.into();
6687 self
6688 }
6689 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
6691 self._fields.2 = value;
6692 self
6693 }
6694}
6695
6696impl<St, S: BosStr> ActorCreditViewBuilder<St, S>
6697where
6698 St: actor_credit_view_state::State,
6699 St::Uri: actor_credit_view_state::IsUnset,
6700{
6701 pub fn uri(
6703 mut self,
6704 value: impl Into<AtUri<S>>,
6705 ) -> ActorCreditViewBuilder<actor_credit_view_state::SetUri<St>, S> {
6706 self._fields.3 = Option::Some(value.into());
6707 ActorCreditViewBuilder {
6708 _state: PhantomData,
6709 _fields: self._fields,
6710 _type: PhantomData,
6711 }
6712 }
6713}
6714
6715impl<St, S: BosStr> ActorCreditViewBuilder<St, S>
6716where
6717 St: actor_credit_view_state::State,
6718 St::Credits: actor_credit_view_state::IsSet,
6719 St::Uri: actor_credit_view_state::IsSet,
6720{
6721 pub fn build(self) -> ActorCreditView<S> {
6723 ActorCreditView {
6724 actor_uri: self._fields.0,
6725 credits: self._fields.1.unwrap(),
6726 display_name: self._fields.2,
6727 uri: self._fields.3.unwrap(),
6728 extra_data: Default::default(),
6729 }
6730 }
6731 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> ActorCreditView<S> {
6733 ActorCreditView {
6734 actor_uri: self._fields.0,
6735 credits: self._fields.1.unwrap(),
6736 display_name: self._fields.2,
6737 uri: self._fields.3.unwrap(),
6738 extra_data: Some(extra_data),
6739 }
6740 }
6741}
6742
6743pub mod actor_profile_detail_view_state {
6744
6745 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
6746 #[allow(unused)]
6747 use ::core::marker::PhantomData;
6748 mod sealed {
6749 pub trait Sealed {}
6750 }
6751 pub trait State: sealed::Sealed {
6753 type Did;
6754 type Uri;
6755 }
6756 pub struct Empty(());
6758 impl sealed::Sealed for Empty {}
6759 impl State for Empty {
6760 type Did = Unset;
6761 type Uri = Unset;
6762 }
6763 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
6765 impl<St: State> sealed::Sealed for SetDid<St> {}
6766 impl<St: State> State for SetDid<St> {
6767 type Did = Set<members::did>;
6768 type Uri = St::Uri;
6769 }
6770 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
6772 impl<St: State> sealed::Sealed for SetUri<St> {}
6773 impl<St: State> State for SetUri<St> {
6774 type Did = St::Did;
6775 type Uri = Set<members::uri>;
6776 }
6777 #[allow(non_camel_case_types)]
6779 pub mod members {
6780 pub struct did(());
6782 pub struct uri(());
6784 }
6785}
6786
6787pub struct ActorProfileDetailViewBuilder<
6789 St: actor_profile_detail_view_state::State,
6790 S: BosStr = DefaultStr,
6791> {
6792 _state: PhantomData<fn() -> St>,
6793 _fields: (
6794 Option<BlobRef<S>>,
6795 Option<Datetime>,
6796 Option<S>,
6797 Option<Vec<Facet<S>>>,
6798 Option<Did<S>>,
6799 Option<S>,
6800 Option<S>,
6801 Option<AtUri<S>>,
6802 Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
6803 ),
6804 _type: PhantomData<fn() -> S>,
6805}
6806
6807impl ActorProfileDetailView<DefaultStr> {
6808 pub fn new() -> ActorProfileDetailViewBuilder<actor_profile_detail_view_state::Empty, DefaultStr>
6810 {
6811 ActorProfileDetailViewBuilder::new()
6812 }
6813}
6814
6815impl<S: BosStr> ActorProfileDetailView<S> {
6816 pub fn builder() -> ActorProfileDetailViewBuilder<actor_profile_detail_view_state::Empty, S> {
6818 ActorProfileDetailViewBuilder::builder()
6819 }
6820}
6821
6822impl ActorProfileDetailViewBuilder<actor_profile_detail_view_state::Empty, DefaultStr> {
6823 pub fn new() -> Self {
6825 ActorProfileDetailViewBuilder {
6826 _state: PhantomData,
6827 _fields: (None, None, None, None, None, None, None, None, None),
6828 _type: PhantomData,
6829 }
6830 }
6831}
6832
6833impl<S: BosStr> ActorProfileDetailViewBuilder<actor_profile_detail_view_state::Empty, S> {
6834 pub fn builder() -> Self {
6836 ActorProfileDetailViewBuilder {
6837 _state: PhantomData,
6838 _fields: (None, None, None, None, None, None, None, None, None),
6839 _type: PhantomData,
6840 }
6841 }
6842}
6843
6844impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6845 pub fn avatar(mut self, value: impl Into<Option<BlobRef<S>>>) -> Self {
6847 self._fields.0 = value.into();
6848 self
6849 }
6850 pub fn maybe_avatar(mut self, value: Option<BlobRef<S>>) -> Self {
6852 self._fields.0 = value;
6853 self
6854 }
6855}
6856
6857impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6858 pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
6860 self._fields.1 = value.into();
6861 self
6862 }
6863 pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
6865 self._fields.1 = value;
6866 self
6867 }
6868}
6869
6870impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6871 pub fn description(mut self, value: impl Into<Option<S>>) -> Self {
6873 self._fields.2 = value.into();
6874 self
6875 }
6876 pub fn maybe_description(mut self, value: Option<S>) -> Self {
6878 self._fields.2 = value;
6879 self
6880 }
6881}
6882
6883impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6884 pub fn description_facets(mut self, value: impl Into<Option<Vec<Facet<S>>>>) -> Self {
6886 self._fields.3 = value.into();
6887 self
6888 }
6889 pub fn maybe_description_facets(mut self, value: Option<Vec<Facet<S>>>) -> Self {
6891 self._fields.3 = value;
6892 self
6893 }
6894}
6895
6896impl<St, S: BosStr> ActorProfileDetailViewBuilder<St, S>
6897where
6898 St: actor_profile_detail_view_state::State,
6899 St::Did: actor_profile_detail_view_state::IsUnset,
6900{
6901 pub fn did(
6903 mut self,
6904 value: impl Into<Did<S>>,
6905 ) -> ActorProfileDetailViewBuilder<actor_profile_detail_view_state::SetDid<St>, S> {
6906 self._fields.4 = Option::Some(value.into());
6907 ActorProfileDetailViewBuilder {
6908 _state: PhantomData,
6909 _fields: self._fields,
6910 _type: PhantomData,
6911 }
6912 }
6913}
6914
6915impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6916 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
6918 self._fields.5 = value.into();
6919 self
6920 }
6921 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
6923 self._fields.5 = value;
6924 self
6925 }
6926}
6927
6928impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6929 pub fn pronouns(mut self, value: impl Into<Option<S>>) -> Self {
6931 self._fields.6 = value.into();
6932 self
6933 }
6934 pub fn maybe_pronouns(mut self, value: Option<S>) -> Self {
6936 self._fields.6 = value;
6937 self
6938 }
6939}
6940
6941impl<St, S: BosStr> ActorProfileDetailViewBuilder<St, S>
6942where
6943 St: actor_profile_detail_view_state::State,
6944 St::Uri: actor_profile_detail_view_state::IsUnset,
6945{
6946 pub fn uri(
6948 mut self,
6949 value: impl Into<AtUri<S>>,
6950 ) -> ActorProfileDetailViewBuilder<actor_profile_detail_view_state::SetUri<St>, S> {
6951 self._fields.7 = Option::Some(value.into());
6952 ActorProfileDetailViewBuilder {
6953 _state: PhantomData,
6954 _fields: self._fields,
6955 _type: PhantomData,
6956 }
6957 }
6958}
6959
6960impl<St: actor_profile_detail_view_state::State, S: BosStr> ActorProfileDetailViewBuilder<St, S> {
6961 pub fn websites(
6963 mut self,
6964 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<S>>>>,
6965 ) -> Self {
6966 self._fields.8 = value.into();
6967 self
6968 }
6969 pub fn maybe_websites(
6971 mut self,
6972 value: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
6973 ) -> Self {
6974 self._fields.8 = value;
6975 self
6976 }
6977}
6978
6979impl<St, S: BosStr> ActorProfileDetailViewBuilder<St, S>
6980where
6981 St: actor_profile_detail_view_state::State,
6982 St::Did: actor_profile_detail_view_state::IsSet,
6983 St::Uri: actor_profile_detail_view_state::IsSet,
6984{
6985 pub fn build(self) -> ActorProfileDetailView<S> {
6987 ActorProfileDetailView {
6988 avatar: self._fields.0,
6989 created_at: self._fields.1,
6990 description: self._fields.2,
6991 description_facets: self._fields.3,
6992 did: self._fields.4.unwrap(),
6993 display_name: self._fields.5,
6994 pronouns: self._fields.6,
6995 uri: self._fields.7.unwrap(),
6996 websites: self._fields.8,
6997 extra_data: Default::default(),
6998 }
6999 }
7000 pub fn build_with_data(
7002 self,
7003 extra_data: BTreeMap<SmolStr, Data<S>>,
7004 ) -> ActorProfileDetailView<S> {
7005 ActorProfileDetailView {
7006 avatar: self._fields.0,
7007 created_at: self._fields.1,
7008 description: self._fields.2,
7009 description_facets: self._fields.3,
7010 did: self._fields.4.unwrap(),
7011 display_name: self._fields.5,
7012 pronouns: self._fields.6,
7013 uri: self._fields.7.unwrap(),
7014 websites: self._fields.8,
7015 extra_data: Some(extra_data),
7016 }
7017 }
7018}
7019
7020pub mod actor_profile_summary_view_state {
7021
7022 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7023 #[allow(unused)]
7024 use ::core::marker::PhantomData;
7025 mod sealed {
7026 pub trait Sealed {}
7027 }
7028 pub trait State: sealed::Sealed {
7030 type Did;
7031 type Uri;
7032 }
7033 pub struct Empty(());
7035 impl sealed::Sealed for Empty {}
7036 impl State for Empty {
7037 type Did = Unset;
7038 type Uri = Unset;
7039 }
7040 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
7042 impl<St: State> sealed::Sealed for SetDid<St> {}
7043 impl<St: State> State for SetDid<St> {
7044 type Did = Set<members::did>;
7045 type Uri = St::Uri;
7046 }
7047 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
7049 impl<St: State> sealed::Sealed for SetUri<St> {}
7050 impl<St: State> State for SetUri<St> {
7051 type Did = St::Did;
7052 type Uri = Set<members::uri>;
7053 }
7054 #[allow(non_camel_case_types)]
7056 pub mod members {
7057 pub struct did(());
7059 pub struct uri(());
7061 }
7062}
7063
7064pub struct ActorProfileSummaryViewBuilder<
7066 St: actor_profile_summary_view_state::State,
7067 S: BosStr = DefaultStr,
7068> {
7069 _state: PhantomData<fn() -> St>,
7070 _fields: (
7071 Option<BlobRef<S>>,
7072 Option<Did<S>>,
7073 Option<S>,
7074 Option<AtUri<S>>,
7075 ),
7076 _type: PhantomData<fn() -> S>,
7077}
7078
7079impl ActorProfileSummaryView<DefaultStr> {
7080 pub fn new()
7082 -> ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::Empty, DefaultStr> {
7083 ActorProfileSummaryViewBuilder::new()
7084 }
7085}
7086
7087impl<S: BosStr> ActorProfileSummaryView<S> {
7088 pub fn builder() -> ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::Empty, S> {
7090 ActorProfileSummaryViewBuilder::builder()
7091 }
7092}
7093
7094impl ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::Empty, DefaultStr> {
7095 pub fn new() -> Self {
7097 ActorProfileSummaryViewBuilder {
7098 _state: PhantomData,
7099 _fields: (None, None, None, None),
7100 _type: PhantomData,
7101 }
7102 }
7103}
7104
7105impl<S: BosStr> ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::Empty, S> {
7106 pub fn builder() -> Self {
7108 ActorProfileSummaryViewBuilder {
7109 _state: PhantomData,
7110 _fields: (None, None, None, None),
7111 _type: PhantomData,
7112 }
7113 }
7114}
7115
7116impl<St: actor_profile_summary_view_state::State, S: BosStr> ActorProfileSummaryViewBuilder<St, S> {
7117 pub fn avatar(mut self, value: impl Into<Option<BlobRef<S>>>) -> Self {
7119 self._fields.0 = value.into();
7120 self
7121 }
7122 pub fn maybe_avatar(mut self, value: Option<BlobRef<S>>) -> Self {
7124 self._fields.0 = value;
7125 self
7126 }
7127}
7128
7129impl<St, S: BosStr> ActorProfileSummaryViewBuilder<St, S>
7130where
7131 St: actor_profile_summary_view_state::State,
7132 St::Did: actor_profile_summary_view_state::IsUnset,
7133{
7134 pub fn did(
7136 mut self,
7137 value: impl Into<Did<S>>,
7138 ) -> ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::SetDid<St>, S> {
7139 self._fields.1 = Option::Some(value.into());
7140 ActorProfileSummaryViewBuilder {
7141 _state: PhantomData,
7142 _fields: self._fields,
7143 _type: PhantomData,
7144 }
7145 }
7146}
7147
7148impl<St: actor_profile_summary_view_state::State, S: BosStr> ActorProfileSummaryViewBuilder<St, S> {
7149 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
7151 self._fields.2 = value.into();
7152 self
7153 }
7154 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
7156 self._fields.2 = value;
7157 self
7158 }
7159}
7160
7161impl<St, S: BosStr> ActorProfileSummaryViewBuilder<St, S>
7162where
7163 St: actor_profile_summary_view_state::State,
7164 St::Uri: actor_profile_summary_view_state::IsUnset,
7165{
7166 pub fn uri(
7168 mut self,
7169 value: impl Into<AtUri<S>>,
7170 ) -> ActorProfileSummaryViewBuilder<actor_profile_summary_view_state::SetUri<St>, S> {
7171 self._fields.3 = Option::Some(value.into());
7172 ActorProfileSummaryViewBuilder {
7173 _state: PhantomData,
7174 _fields: self._fields,
7175 _type: PhantomData,
7176 }
7177 }
7178}
7179
7180impl<St, S: BosStr> ActorProfileSummaryViewBuilder<St, S>
7181where
7182 St: actor_profile_summary_view_state::State,
7183 St::Did: actor_profile_summary_view_state::IsSet,
7184 St::Uri: actor_profile_summary_view_state::IsSet,
7185{
7186 pub fn build(self) -> ActorProfileSummaryView<S> {
7188 ActorProfileSummaryView {
7189 avatar: self._fields.0,
7190 did: self._fields.1.unwrap(),
7191 display_name: self._fields.2,
7192 uri: self._fields.3.unwrap(),
7193 extra_data: Default::default(),
7194 }
7195 }
7196 pub fn build_with_data(
7198 self,
7199 extra_data: BTreeMap<SmolStr, Data<S>>,
7200 ) -> ActorProfileSummaryView<S> {
7201 ActorProfileSummaryView {
7202 avatar: self._fields.0,
7203 did: self._fields.1.unwrap(),
7204 display_name: self._fields.2,
7205 uri: self._fields.3.unwrap(),
7206 extra_data: Some(extra_data),
7207 }
7208 }
7209}
7210
7211pub mod collection_summary_view_state {
7212
7213 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7214 #[allow(unused)]
7215 use ::core::marker::PhantomData;
7216 mod sealed {
7217 pub trait Sealed {}
7218 }
7219 pub trait State: sealed::Sealed {
7221 type Name;
7222 type Uri;
7223 }
7224 pub struct Empty(());
7226 impl sealed::Sealed for Empty {}
7227 impl State for Empty {
7228 type Name = Unset;
7229 type Uri = Unset;
7230 }
7231 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
7233 impl<St: State> sealed::Sealed for SetName<St> {}
7234 impl<St: State> State for SetName<St> {
7235 type Name = Set<members::name>;
7236 type Uri = St::Uri;
7237 }
7238 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
7240 impl<St: State> sealed::Sealed for SetUri<St> {}
7241 impl<St: State> State for SetUri<St> {
7242 type Name = St::Name;
7243 type Uri = Set<members::uri>;
7244 }
7245 #[allow(non_camel_case_types)]
7247 pub mod members {
7248 pub struct name(());
7250 pub struct uri(());
7252 }
7253}
7254
7255pub struct CollectionSummaryViewBuilder<
7257 St: collection_summary_view_state::State,
7258 S: BosStr = DefaultStr,
7259> {
7260 _state: PhantomData<fn() -> St>,
7261 _fields: (
7262 Option<S>,
7263 Option<S>,
7264 Option<CollectionSummaryViewType<S>>,
7265 Option<AtUri<S>>,
7266 ),
7267 _type: PhantomData<fn() -> S>,
7268}
7269
7270impl CollectionSummaryView<DefaultStr> {
7271 pub fn new() -> CollectionSummaryViewBuilder<collection_summary_view_state::Empty, DefaultStr> {
7273 CollectionSummaryViewBuilder::new()
7274 }
7275}
7276
7277impl<S: BosStr> CollectionSummaryView<S> {
7278 pub fn builder() -> CollectionSummaryViewBuilder<collection_summary_view_state::Empty, S> {
7280 CollectionSummaryViewBuilder::builder()
7281 }
7282}
7283
7284impl CollectionSummaryViewBuilder<collection_summary_view_state::Empty, DefaultStr> {
7285 pub fn new() -> Self {
7287 CollectionSummaryViewBuilder {
7288 _state: PhantomData,
7289 _fields: (None, None, None, None),
7290 _type: PhantomData,
7291 }
7292 }
7293}
7294
7295impl<S: BosStr> CollectionSummaryViewBuilder<collection_summary_view_state::Empty, S> {
7296 pub fn builder() -> Self {
7298 CollectionSummaryViewBuilder {
7299 _state: PhantomData,
7300 _fields: (None, None, None, None),
7301 _type: PhantomData,
7302 }
7303 }
7304}
7305
7306impl<St, S: BosStr> CollectionSummaryViewBuilder<St, S>
7307where
7308 St: collection_summary_view_state::State,
7309 St::Name: collection_summary_view_state::IsUnset,
7310{
7311 pub fn name(
7313 mut self,
7314 value: impl Into<S>,
7315 ) -> CollectionSummaryViewBuilder<collection_summary_view_state::SetName<St>, S> {
7316 self._fields.0 = Option::Some(value.into());
7317 CollectionSummaryViewBuilder {
7318 _state: PhantomData,
7319 _fields: self._fields,
7320 _type: PhantomData,
7321 }
7322 }
7323}
7324
7325impl<St: collection_summary_view_state::State, S: BosStr> CollectionSummaryViewBuilder<St, S> {
7326 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
7328 self._fields.1 = value.into();
7329 self
7330 }
7331 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
7333 self._fields.1 = value;
7334 self
7335 }
7336}
7337
7338impl<St: collection_summary_view_state::State, S: BosStr> CollectionSummaryViewBuilder<St, S> {
7339 pub fn r#type(mut self, value: impl Into<Option<CollectionSummaryViewType<S>>>) -> Self {
7341 self._fields.2 = value.into();
7342 self
7343 }
7344 pub fn maybe_type(mut self, value: Option<CollectionSummaryViewType<S>>) -> Self {
7346 self._fields.2 = value;
7347 self
7348 }
7349}
7350
7351impl<St, S: BosStr> CollectionSummaryViewBuilder<St, S>
7352where
7353 St: collection_summary_view_state::State,
7354 St::Uri: collection_summary_view_state::IsUnset,
7355{
7356 pub fn uri(
7358 mut self,
7359 value: impl Into<AtUri<S>>,
7360 ) -> CollectionSummaryViewBuilder<collection_summary_view_state::SetUri<St>, S> {
7361 self._fields.3 = Option::Some(value.into());
7362 CollectionSummaryViewBuilder {
7363 _state: PhantomData,
7364 _fields: self._fields,
7365 _type: PhantomData,
7366 }
7367 }
7368}
7369
7370impl<St, S: BosStr> CollectionSummaryViewBuilder<St, S>
7371where
7372 St: collection_summary_view_state::State,
7373 St::Name: collection_summary_view_state::IsSet,
7374 St::Uri: collection_summary_view_state::IsSet,
7375{
7376 pub fn build(self) -> CollectionSummaryView<S> {
7378 CollectionSummaryView {
7379 name: self._fields.0.unwrap(),
7380 slug: self._fields.1,
7381 r#type: self._fields.2,
7382 uri: self._fields.3.unwrap(),
7383 extra_data: Default::default(),
7384 }
7385 }
7386 pub fn build_with_data(
7388 self,
7389 extra_data: BTreeMap<SmolStr, Data<S>>,
7390 ) -> CollectionSummaryView<S> {
7391 CollectionSummaryView {
7392 name: self._fields.0.unwrap(),
7393 slug: self._fields.1,
7394 r#type: self._fields.2,
7395 uri: self._fields.3.unwrap(),
7396 extra_data: Some(extra_data),
7397 }
7398 }
7399}
7400
7401pub mod community_feed_actor_view_state {
7402
7403 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7404 #[allow(unused)]
7405 use ::core::marker::PhantomData;
7406 mod sealed {
7407 pub trait Sealed {}
7408 }
7409 pub trait State: sealed::Sealed {
7411 type Did;
7412 }
7413 pub struct Empty(());
7415 impl sealed::Sealed for Empty {}
7416 impl State for Empty {
7417 type Did = Unset;
7418 }
7419 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
7421 impl<St: State> sealed::Sealed for SetDid<St> {}
7422 impl<St: State> State for SetDid<St> {
7423 type Did = Set<members::did>;
7424 }
7425 #[allow(non_camel_case_types)]
7427 pub mod members {
7428 pub struct did(());
7430 }
7431}
7432
7433pub struct CommunityFeedActorViewBuilder<
7435 St: community_feed_actor_view_state::State,
7436 S: BosStr = DefaultStr,
7437> {
7438 _state: PhantomData<fn() -> St>,
7439 _fields: (Option<Did<S>>, Option<S>, Option<S>),
7440 _type: PhantomData<fn() -> S>,
7441}
7442
7443impl CommunityFeedActorView<DefaultStr> {
7444 pub fn new() -> CommunityFeedActorViewBuilder<community_feed_actor_view_state::Empty, DefaultStr>
7446 {
7447 CommunityFeedActorViewBuilder::new()
7448 }
7449}
7450
7451impl<S: BosStr> CommunityFeedActorView<S> {
7452 pub fn builder() -> CommunityFeedActorViewBuilder<community_feed_actor_view_state::Empty, S> {
7454 CommunityFeedActorViewBuilder::builder()
7455 }
7456}
7457
7458impl CommunityFeedActorViewBuilder<community_feed_actor_view_state::Empty, DefaultStr> {
7459 pub fn new() -> Self {
7461 CommunityFeedActorViewBuilder {
7462 _state: PhantomData,
7463 _fields: (None, None, None),
7464 _type: PhantomData,
7465 }
7466 }
7467}
7468
7469impl<S: BosStr> CommunityFeedActorViewBuilder<community_feed_actor_view_state::Empty, S> {
7470 pub fn builder() -> Self {
7472 CommunityFeedActorViewBuilder {
7473 _state: PhantomData,
7474 _fields: (None, None, None),
7475 _type: PhantomData,
7476 }
7477 }
7478}
7479
7480impl<St, S: BosStr> CommunityFeedActorViewBuilder<St, S>
7481where
7482 St: community_feed_actor_view_state::State,
7483 St::Did: community_feed_actor_view_state::IsUnset,
7484{
7485 pub fn did(
7487 mut self,
7488 value: impl Into<Did<S>>,
7489 ) -> CommunityFeedActorViewBuilder<community_feed_actor_view_state::SetDid<St>, S> {
7490 self._fields.0 = Option::Some(value.into());
7491 CommunityFeedActorViewBuilder {
7492 _state: PhantomData,
7493 _fields: self._fields,
7494 _type: PhantomData,
7495 }
7496 }
7497}
7498
7499impl<St: community_feed_actor_view_state::State, S: BosStr> CommunityFeedActorViewBuilder<St, S> {
7500 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
7502 self._fields.1 = value.into();
7503 self
7504 }
7505 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
7507 self._fields.1 = value;
7508 self
7509 }
7510}
7511
7512impl<St: community_feed_actor_view_state::State, S: BosStr> CommunityFeedActorViewBuilder<St, S> {
7513 pub fn handle(mut self, value: impl Into<Option<S>>) -> Self {
7515 self._fields.2 = value.into();
7516 self
7517 }
7518 pub fn maybe_handle(mut self, value: Option<S>) -> Self {
7520 self._fields.2 = value;
7521 self
7522 }
7523}
7524
7525impl<St, S: BosStr> CommunityFeedActorViewBuilder<St, S>
7526where
7527 St: community_feed_actor_view_state::State,
7528 St::Did: community_feed_actor_view_state::IsSet,
7529{
7530 pub fn build(self) -> CommunityFeedActorView<S> {
7532 CommunityFeedActorView {
7533 did: self._fields.0.unwrap(),
7534 display_name: self._fields.1,
7535 handle: self._fields.2,
7536 extra_data: Default::default(),
7537 }
7538 }
7539 pub fn build_with_data(
7541 self,
7542 extra_data: BTreeMap<SmolStr, Data<S>>,
7543 ) -> CommunityFeedActorView<S> {
7544 CommunityFeedActorView {
7545 did: self._fields.0.unwrap(),
7546 display_name: self._fields.1,
7547 handle: self._fields.2,
7548 extra_data: Some(extra_data),
7549 }
7550 }
7551}
7552
7553pub mod community_feed_item_state {
7554
7555 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7556 #[allow(unused)]
7557 use ::core::marker::PhantomData;
7558 mod sealed {
7559 pub trait Sealed {}
7560 }
7561 pub trait State: sealed::Sealed {
7563 type Actor;
7564 type CreatedAt;
7565 type Type;
7566 }
7567 pub struct Empty(());
7569 impl sealed::Sealed for Empty {}
7570 impl State for Empty {
7571 type Actor = Unset;
7572 type CreatedAt = Unset;
7573 type Type = Unset;
7574 }
7575 pub struct SetActor<St: State = Empty>(PhantomData<fn() -> St>);
7577 impl<St: State> sealed::Sealed for SetActor<St> {}
7578 impl<St: State> State for SetActor<St> {
7579 type Actor = Set<members::actor>;
7580 type CreatedAt = St::CreatedAt;
7581 type Type = St::Type;
7582 }
7583 pub struct SetCreatedAt<St: State = Empty>(PhantomData<fn() -> St>);
7585 impl<St: State> sealed::Sealed for SetCreatedAt<St> {}
7586 impl<St: State> State for SetCreatedAt<St> {
7587 type Actor = St::Actor;
7588 type CreatedAt = Set<members::created_at>;
7589 type Type = St::Type;
7590 }
7591 pub struct SetType<St: State = Empty>(PhantomData<fn() -> St>);
7593 impl<St: State> sealed::Sealed for SetType<St> {}
7594 impl<St: State> State for SetType<St> {
7595 type Actor = St::Actor;
7596 type CreatedAt = St::CreatedAt;
7597 type Type = Set<members::r#type>;
7598 }
7599 #[allow(non_camel_case_types)]
7601 pub mod members {
7602 pub struct actor(());
7604 pub struct created_at(());
7606 pub struct r#type(());
7608 }
7609}
7610
7611pub struct CommunityFeedItemBuilder<St: community_feed_item_state::State, S: BosStr = DefaultStr> {
7613 _state: PhantomData<fn() -> St>,
7614 _fields: (
7615 Option<games_gamesgamesgamesgames::CommunityFeedActorView<S>>,
7616 Option<Datetime>,
7617 Option<games_gamesgamesgamesgames::GameView<S>>,
7618 Option<games_gamesgamesgamesgames::ActivityListView<S>>,
7619 Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
7620 Option<CommunityFeedItemType<S>>,
7621 ),
7622 _type: PhantomData<fn() -> S>,
7623}
7624
7625impl CommunityFeedItem<DefaultStr> {
7626 pub fn new() -> CommunityFeedItemBuilder<community_feed_item_state::Empty, DefaultStr> {
7628 CommunityFeedItemBuilder::new()
7629 }
7630}
7631
7632impl<S: BosStr> CommunityFeedItem<S> {
7633 pub fn builder() -> CommunityFeedItemBuilder<community_feed_item_state::Empty, S> {
7635 CommunityFeedItemBuilder::builder()
7636 }
7637}
7638
7639impl CommunityFeedItemBuilder<community_feed_item_state::Empty, DefaultStr> {
7640 pub fn new() -> Self {
7642 CommunityFeedItemBuilder {
7643 _state: PhantomData,
7644 _fields: (None, None, None, None, None, None),
7645 _type: PhantomData,
7646 }
7647 }
7648}
7649
7650impl<S: BosStr> CommunityFeedItemBuilder<community_feed_item_state::Empty, S> {
7651 pub fn builder() -> Self {
7653 CommunityFeedItemBuilder {
7654 _state: PhantomData,
7655 _fields: (None, None, None, None, None, None),
7656 _type: PhantomData,
7657 }
7658 }
7659}
7660
7661impl<St, S: BosStr> CommunityFeedItemBuilder<St, S>
7662where
7663 St: community_feed_item_state::State,
7664 St::Actor: community_feed_item_state::IsUnset,
7665{
7666 pub fn actor(
7668 mut self,
7669 value: impl Into<games_gamesgamesgamesgames::CommunityFeedActorView<S>>,
7670 ) -> CommunityFeedItemBuilder<community_feed_item_state::SetActor<St>, S> {
7671 self._fields.0 = Option::Some(value.into());
7672 CommunityFeedItemBuilder {
7673 _state: PhantomData,
7674 _fields: self._fields,
7675 _type: PhantomData,
7676 }
7677 }
7678}
7679
7680impl<St, S: BosStr> CommunityFeedItemBuilder<St, S>
7681where
7682 St: community_feed_item_state::State,
7683 St::CreatedAt: community_feed_item_state::IsUnset,
7684{
7685 pub fn created_at(
7687 mut self,
7688 value: impl Into<Datetime>,
7689 ) -> CommunityFeedItemBuilder<community_feed_item_state::SetCreatedAt<St>, S> {
7690 self._fields.1 = Option::Some(value.into());
7691 CommunityFeedItemBuilder {
7692 _state: PhantomData,
7693 _fields: self._fields,
7694 _type: PhantomData,
7695 }
7696 }
7697}
7698
7699impl<St: community_feed_item_state::State, S: BosStr> CommunityFeedItemBuilder<St, S> {
7700 pub fn game(
7702 mut self,
7703 value: impl Into<Option<games_gamesgamesgamesgames::GameView<S>>>,
7704 ) -> Self {
7705 self._fields.2 = value.into();
7706 self
7707 }
7708 pub fn maybe_game(mut self, value: Option<games_gamesgamesgamesgames::GameView<S>>) -> Self {
7710 self._fields.2 = value;
7711 self
7712 }
7713}
7714
7715impl<St: community_feed_item_state::State, S: BosStr> CommunityFeedItemBuilder<St, S> {
7716 pub fn list(
7718 mut self,
7719 value: impl Into<Option<games_gamesgamesgamesgames::ActivityListView<S>>>,
7720 ) -> Self {
7721 self._fields.3 = value.into();
7722 self
7723 }
7724 pub fn maybe_list(
7726 mut self,
7727 value: Option<games_gamesgamesgamesgames::ActivityListView<S>>,
7728 ) -> Self {
7729 self._fields.3 = value;
7730 self
7731 }
7732}
7733
7734impl<St: community_feed_item_state::State, S: BosStr> CommunityFeedItemBuilder<St, S> {
7735 pub fn review(
7737 mut self,
7738 value: impl Into<Option<games_gamesgamesgamesgames::ActivityReviewView<S>>>,
7739 ) -> Self {
7740 self._fields.4 = value.into();
7741 self
7742 }
7743 pub fn maybe_review(
7745 mut self,
7746 value: Option<games_gamesgamesgamesgames::ActivityReviewView<S>>,
7747 ) -> Self {
7748 self._fields.4 = value;
7749 self
7750 }
7751}
7752
7753impl<St, S: BosStr> CommunityFeedItemBuilder<St, S>
7754where
7755 St: community_feed_item_state::State,
7756 St::Type: community_feed_item_state::IsUnset,
7757{
7758 pub fn r#type(
7760 mut self,
7761 value: impl Into<CommunityFeedItemType<S>>,
7762 ) -> CommunityFeedItemBuilder<community_feed_item_state::SetType<St>, S> {
7763 self._fields.5 = Option::Some(value.into());
7764 CommunityFeedItemBuilder {
7765 _state: PhantomData,
7766 _fields: self._fields,
7767 _type: PhantomData,
7768 }
7769 }
7770}
7771
7772impl<St, S: BosStr> CommunityFeedItemBuilder<St, S>
7773where
7774 St: community_feed_item_state::State,
7775 St::Actor: community_feed_item_state::IsSet,
7776 St::CreatedAt: community_feed_item_state::IsSet,
7777 St::Type: community_feed_item_state::IsSet,
7778{
7779 pub fn build(self) -> CommunityFeedItem<S> {
7781 CommunityFeedItem {
7782 actor: self._fields.0.unwrap(),
7783 created_at: self._fields.1.unwrap(),
7784 game: self._fields.2,
7785 list: self._fields.3,
7786 review: self._fields.4,
7787 r#type: self._fields.5.unwrap(),
7788 extra_data: Default::default(),
7789 }
7790 }
7791 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> CommunityFeedItem<S> {
7793 CommunityFeedItem {
7794 actor: self._fields.0.unwrap(),
7795 created_at: self._fields.1.unwrap(),
7796 game: self._fields.2,
7797 list: self._fields.3,
7798 review: self._fields.4,
7799 r#type: self._fields.5.unwrap(),
7800 extra_data: Some(extra_data),
7801 }
7802 }
7803}
7804
7805pub mod credit_entry_state {
7806
7807 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7808 #[allow(unused)]
7809 use ::core::marker::PhantomData;
7810 mod sealed {
7811 pub trait Sealed {}
7812 }
7813 pub trait State: sealed::Sealed {
7815 type Role;
7816 }
7817 pub struct Empty(());
7819 impl sealed::Sealed for Empty {}
7820 impl State for Empty {
7821 type Role = Unset;
7822 }
7823 pub struct SetRole<St: State = Empty>(PhantomData<fn() -> St>);
7825 impl<St: State> sealed::Sealed for SetRole<St> {}
7826 impl<St: State> State for SetRole<St> {
7827 type Role = Set<members::role>;
7828 }
7829 #[allow(non_camel_case_types)]
7831 pub mod members {
7832 pub struct role(());
7834 }
7835}
7836
7837pub struct CreditEntryBuilder<St: credit_entry_state::State, S: BosStr = DefaultStr> {
7839 _state: PhantomData<fn() -> St>,
7840 _fields: (
7841 Option<S>,
7842 Option<games_gamesgamesgamesgames::IndividualRole<S>>,
7843 ),
7844 _type: PhantomData<fn() -> S>,
7845}
7846
7847impl CreditEntry<DefaultStr> {
7848 pub fn new() -> CreditEntryBuilder<credit_entry_state::Empty, DefaultStr> {
7850 CreditEntryBuilder::new()
7851 }
7852}
7853
7854impl<S: BosStr> CreditEntry<S> {
7855 pub fn builder() -> CreditEntryBuilder<credit_entry_state::Empty, S> {
7857 CreditEntryBuilder::builder()
7858 }
7859}
7860
7861impl CreditEntryBuilder<credit_entry_state::Empty, DefaultStr> {
7862 pub fn new() -> Self {
7864 CreditEntryBuilder {
7865 _state: PhantomData,
7866 _fields: (None, None),
7867 _type: PhantomData,
7868 }
7869 }
7870}
7871
7872impl<S: BosStr> CreditEntryBuilder<credit_entry_state::Empty, S> {
7873 pub fn builder() -> Self {
7875 CreditEntryBuilder {
7876 _state: PhantomData,
7877 _fields: (None, None),
7878 _type: PhantomData,
7879 }
7880 }
7881}
7882
7883impl<St: credit_entry_state::State, S: BosStr> CreditEntryBuilder<St, S> {
7884 pub fn department(mut self, value: impl Into<Option<S>>) -> Self {
7886 self._fields.0 = value.into();
7887 self
7888 }
7889 pub fn maybe_department(mut self, value: Option<S>) -> Self {
7891 self._fields.0 = value;
7892 self
7893 }
7894}
7895
7896impl<St, S: BosStr> CreditEntryBuilder<St, S>
7897where
7898 St: credit_entry_state::State,
7899 St::Role: credit_entry_state::IsUnset,
7900{
7901 pub fn role(
7903 mut self,
7904 value: impl Into<games_gamesgamesgamesgames::IndividualRole<S>>,
7905 ) -> CreditEntryBuilder<credit_entry_state::SetRole<St>, S> {
7906 self._fields.1 = Option::Some(value.into());
7907 CreditEntryBuilder {
7908 _state: PhantomData,
7909 _fields: self._fields,
7910 _type: PhantomData,
7911 }
7912 }
7913}
7914
7915impl<St, S: BosStr> CreditEntryBuilder<St, S>
7916where
7917 St: credit_entry_state::State,
7918 St::Role: credit_entry_state::IsSet,
7919{
7920 pub fn build(self) -> CreditEntry<S> {
7922 CreditEntry {
7923 department: self._fields.0,
7924 role: self._fields.1.unwrap(),
7925 extra_data: Default::default(),
7926 }
7927 }
7928 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> CreditEntry<S> {
7930 CreditEntry {
7931 department: self._fields.0,
7932 role: self._fields.1.unwrap(),
7933 extra_data: Some(extra_data),
7934 }
7935 }
7936}
7937
7938pub mod engine_summary_view_state {
7939
7940 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
7941 #[allow(unused)]
7942 use ::core::marker::PhantomData;
7943 mod sealed {
7944 pub trait Sealed {}
7945 }
7946 pub trait State: sealed::Sealed {
7948 type Name;
7949 type Uri;
7950 }
7951 pub struct Empty(());
7953 impl sealed::Sealed for Empty {}
7954 impl State for Empty {
7955 type Name = Unset;
7956 type Uri = Unset;
7957 }
7958 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
7960 impl<St: State> sealed::Sealed for SetName<St> {}
7961 impl<St: State> State for SetName<St> {
7962 type Name = Set<members::name>;
7963 type Uri = St::Uri;
7964 }
7965 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
7967 impl<St: State> sealed::Sealed for SetUri<St> {}
7968 impl<St: State> State for SetUri<St> {
7969 type Name = St::Name;
7970 type Uri = Set<members::uri>;
7971 }
7972 #[allow(non_camel_case_types)]
7974 pub mod members {
7975 pub struct name(());
7977 pub struct uri(());
7979 }
7980}
7981
7982pub struct EngineSummaryViewBuilder<St: engine_summary_view_state::State, S: BosStr = DefaultStr> {
7984 _state: PhantomData<fn() -> St>,
7985 _fields: (Option<S>, Option<S>, Option<AtUri<S>>),
7986 _type: PhantomData<fn() -> S>,
7987}
7988
7989impl EngineSummaryView<DefaultStr> {
7990 pub fn new() -> EngineSummaryViewBuilder<engine_summary_view_state::Empty, DefaultStr> {
7992 EngineSummaryViewBuilder::new()
7993 }
7994}
7995
7996impl<S: BosStr> EngineSummaryView<S> {
7997 pub fn builder() -> EngineSummaryViewBuilder<engine_summary_view_state::Empty, S> {
7999 EngineSummaryViewBuilder::builder()
8000 }
8001}
8002
8003impl EngineSummaryViewBuilder<engine_summary_view_state::Empty, DefaultStr> {
8004 pub fn new() -> Self {
8006 EngineSummaryViewBuilder {
8007 _state: PhantomData,
8008 _fields: (None, None, None),
8009 _type: PhantomData,
8010 }
8011 }
8012}
8013
8014impl<S: BosStr> EngineSummaryViewBuilder<engine_summary_view_state::Empty, S> {
8015 pub fn builder() -> Self {
8017 EngineSummaryViewBuilder {
8018 _state: PhantomData,
8019 _fields: (None, None, None),
8020 _type: PhantomData,
8021 }
8022 }
8023}
8024
8025impl<St, S: BosStr> EngineSummaryViewBuilder<St, S>
8026where
8027 St: engine_summary_view_state::State,
8028 St::Name: engine_summary_view_state::IsUnset,
8029{
8030 pub fn name(
8032 mut self,
8033 value: impl Into<S>,
8034 ) -> EngineSummaryViewBuilder<engine_summary_view_state::SetName<St>, S> {
8035 self._fields.0 = Option::Some(value.into());
8036 EngineSummaryViewBuilder {
8037 _state: PhantomData,
8038 _fields: self._fields,
8039 _type: PhantomData,
8040 }
8041 }
8042}
8043
8044impl<St: engine_summary_view_state::State, S: BosStr> EngineSummaryViewBuilder<St, S> {
8045 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
8047 self._fields.1 = value.into();
8048 self
8049 }
8050 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
8052 self._fields.1 = value;
8053 self
8054 }
8055}
8056
8057impl<St, S: BosStr> EngineSummaryViewBuilder<St, S>
8058where
8059 St: engine_summary_view_state::State,
8060 St::Uri: engine_summary_view_state::IsUnset,
8061{
8062 pub fn uri(
8064 mut self,
8065 value: impl Into<AtUri<S>>,
8066 ) -> EngineSummaryViewBuilder<engine_summary_view_state::SetUri<St>, S> {
8067 self._fields.2 = Option::Some(value.into());
8068 EngineSummaryViewBuilder {
8069 _state: PhantomData,
8070 _fields: self._fields,
8071 _type: PhantomData,
8072 }
8073 }
8074}
8075
8076impl<St, S: BosStr> EngineSummaryViewBuilder<St, S>
8077where
8078 St: engine_summary_view_state::State,
8079 St::Name: engine_summary_view_state::IsSet,
8080 St::Uri: engine_summary_view_state::IsSet,
8081{
8082 pub fn build(self) -> EngineSummaryView<S> {
8084 EngineSummaryView {
8085 name: self._fields.0.unwrap(),
8086 slug: self._fields.1,
8087 uri: self._fields.2.unwrap(),
8088 extra_data: Default::default(),
8089 }
8090 }
8091 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> EngineSummaryView<S> {
8093 EngineSummaryView {
8094 name: self._fields.0.unwrap(),
8095 slug: self._fields.1,
8096 uri: self._fields.2.unwrap(),
8097 extra_data: Some(extra_data),
8098 }
8099 }
8100}
8101
8102pub mod game_detail_view_state {
8103
8104 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
8105 #[allow(unused)]
8106 use ::core::marker::PhantomData;
8107 mod sealed {
8108 pub trait Sealed {}
8109 }
8110 pub trait State: sealed::Sealed {
8112 type CreatedAt;
8113 type Name;
8114 type Uri;
8115 }
8116 pub struct Empty(());
8118 impl sealed::Sealed for Empty {}
8119 impl State for Empty {
8120 type CreatedAt = Unset;
8121 type Name = Unset;
8122 type Uri = Unset;
8123 }
8124 pub struct SetCreatedAt<St: State = Empty>(PhantomData<fn() -> St>);
8126 impl<St: State> sealed::Sealed for SetCreatedAt<St> {}
8127 impl<St: State> State for SetCreatedAt<St> {
8128 type CreatedAt = Set<members::created_at>;
8129 type Name = St::Name;
8130 type Uri = St::Uri;
8131 }
8132 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
8134 impl<St: State> sealed::Sealed for SetName<St> {}
8135 impl<St: State> State for SetName<St> {
8136 type CreatedAt = St::CreatedAt;
8137 type Name = Set<members::name>;
8138 type Uri = St::Uri;
8139 }
8140 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
8142 impl<St: State> sealed::Sealed for SetUri<St> {}
8143 impl<St: State> State for SetUri<St> {
8144 type CreatedAt = St::CreatedAt;
8145 type Name = St::Name;
8146 type Uri = Set<members::uri>;
8147 }
8148 #[allow(non_camel_case_types)]
8150 pub mod members {
8151 pub struct created_at(());
8153 pub struct name(());
8155 pub struct uri(());
8157 }
8158}
8159
8160pub struct GameDetailViewBuilder<St: game_detail_view_state::State, S: BosStr = DefaultStr> {
8162 _state: PhantomData<fn() -> St>,
8163 _fields: (
8164 Option<Vec<games_gamesgamesgamesgames::ActorCreditView<S>>>,
8165 Option<Vec<games_gamesgamesgamesgames::AgeRating<S>>>,
8166 Option<Vec<games_gamesgamesgamesgames::AlternativeName<S>>>,
8167 Option<games_gamesgamesgamesgames::ApplicationType<S>>,
8168 Option<Vec<AtUri<S>>>,
8169 Option<Datetime>,
8170 Option<Vec<AtUri<S>>>,
8171 Option<games_gamesgamesgamesgames::ExternalIds<S>>,
8172 Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
8173 Option<Vec<S>>,
8174 Option<Vec<games_gamesgamesgamesgames::LanguageSupport<S>>>,
8175 Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
8176 Option<Vec<games_gamesgamesgamesgames::Mode<S>>>,
8177 Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<S>>>,
8178 Option<S>,
8179 Option<Vec<games_gamesgamesgamesgames::OrgCreditView<S>>>,
8180 Option<AtUri<S>>,
8181 Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<S>>>,
8182 Option<Datetime>,
8183 Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
8184 Option<S>,
8185 Option<S>,
8186 Option<S>,
8187 Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
8188 Option<games_gamesgamesgamesgames::TimeToBeat<S>>,
8189 Option<AtUri<S>>,
8190 Option<Vec<games_gamesgamesgamesgames::ExternalVideo<S>>>,
8191 Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
8192 ),
8193 _type: PhantomData<fn() -> S>,
8194}
8195
8196impl GameDetailView<DefaultStr> {
8197 pub fn new() -> GameDetailViewBuilder<game_detail_view_state::Empty, DefaultStr> {
8199 GameDetailViewBuilder::new()
8200 }
8201}
8202
8203impl<S: BosStr> GameDetailView<S> {
8204 pub fn builder() -> GameDetailViewBuilder<game_detail_view_state::Empty, S> {
8206 GameDetailViewBuilder::builder()
8207 }
8208}
8209
8210impl GameDetailViewBuilder<game_detail_view_state::Empty, DefaultStr> {
8211 pub fn new() -> Self {
8213 GameDetailViewBuilder {
8214 _state: PhantomData,
8215 _fields: (
8216 None, None, None, None, None, None, None, None, None, None, None, None, None, None,
8217 None, None, None, None, None, None, None, None, None, None, None, None, None, None,
8218 ),
8219 _type: PhantomData,
8220 }
8221 }
8222}
8223
8224impl<S: BosStr> GameDetailViewBuilder<game_detail_view_state::Empty, S> {
8225 pub fn builder() -> Self {
8227 GameDetailViewBuilder {
8228 _state: PhantomData,
8229 _fields: (
8230 None, None, None, None, None, None, None, None, None, None, None, None, None, None,
8231 None, None, None, None, None, None, None, None, None, None, None, None, None, None,
8232 ),
8233 _type: PhantomData,
8234 }
8235 }
8236}
8237
8238impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8239 pub fn actor_credits(
8241 mut self,
8242 value: impl Into<Option<Vec<games_gamesgamesgamesgames::ActorCreditView<S>>>>,
8243 ) -> Self {
8244 self._fields.0 = value.into();
8245 self
8246 }
8247 pub fn maybe_actor_credits(
8249 mut self,
8250 value: Option<Vec<games_gamesgamesgamesgames::ActorCreditView<S>>>,
8251 ) -> Self {
8252 self._fields.0 = value;
8253 self
8254 }
8255}
8256
8257impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8258 pub fn age_ratings(
8260 mut self,
8261 value: impl Into<Option<Vec<games_gamesgamesgamesgames::AgeRating<S>>>>,
8262 ) -> Self {
8263 self._fields.1 = value.into();
8264 self
8265 }
8266 pub fn maybe_age_ratings(
8268 mut self,
8269 value: Option<Vec<games_gamesgamesgamesgames::AgeRating<S>>>,
8270 ) -> Self {
8271 self._fields.1 = value;
8272 self
8273 }
8274}
8275
8276impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8277 pub fn alternative_names(
8279 mut self,
8280 value: impl Into<Option<Vec<games_gamesgamesgamesgames::AlternativeName<S>>>>,
8281 ) -> Self {
8282 self._fields.2 = value.into();
8283 self
8284 }
8285 pub fn maybe_alternative_names(
8287 mut self,
8288 value: Option<Vec<games_gamesgamesgamesgames::AlternativeName<S>>>,
8289 ) -> Self {
8290 self._fields.2 = value;
8291 self
8292 }
8293}
8294
8295impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8296 pub fn application_type(
8298 mut self,
8299 value: impl Into<Option<games_gamesgamesgamesgames::ApplicationType<S>>>,
8300 ) -> Self {
8301 self._fields.3 = value.into();
8302 self
8303 }
8304 pub fn maybe_application_type(
8306 mut self,
8307 value: Option<games_gamesgamesgamesgames::ApplicationType<S>>,
8308 ) -> Self {
8309 self._fields.3 = value;
8310 self
8311 }
8312}
8313
8314impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8315 pub fn collections(mut self, value: impl Into<Option<Vec<AtUri<S>>>>) -> Self {
8317 self._fields.4 = value.into();
8318 self
8319 }
8320 pub fn maybe_collections(mut self, value: Option<Vec<AtUri<S>>>) -> Self {
8322 self._fields.4 = value;
8323 self
8324 }
8325}
8326
8327impl<St, S: BosStr> GameDetailViewBuilder<St, S>
8328where
8329 St: game_detail_view_state::State,
8330 St::CreatedAt: game_detail_view_state::IsUnset,
8331{
8332 pub fn created_at(
8334 mut self,
8335 value: impl Into<Datetime>,
8336 ) -> GameDetailViewBuilder<game_detail_view_state::SetCreatedAt<St>, S> {
8337 self._fields.5 = Option::Some(value.into());
8338 GameDetailViewBuilder {
8339 _state: PhantomData,
8340 _fields: self._fields,
8341 _type: PhantomData,
8342 }
8343 }
8344}
8345
8346impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8347 pub fn engines(mut self, value: impl Into<Option<Vec<AtUri<S>>>>) -> Self {
8349 self._fields.6 = value.into();
8350 self
8351 }
8352 pub fn maybe_engines(mut self, value: Option<Vec<AtUri<S>>>) -> Self {
8354 self._fields.6 = value;
8355 self
8356 }
8357}
8358
8359impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8360 pub fn external_ids(
8362 mut self,
8363 value: impl Into<Option<games_gamesgamesgamesgames::ExternalIds<S>>>,
8364 ) -> Self {
8365 self._fields.7 = value.into();
8366 self
8367 }
8368 pub fn maybe_external_ids(
8370 mut self,
8371 value: Option<games_gamesgamesgamesgames::ExternalIds<S>>,
8372 ) -> Self {
8373 self._fields.7 = value;
8374 self
8375 }
8376}
8377
8378impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8379 pub fn genres(
8381 mut self,
8382 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Genre<S>>>>,
8383 ) -> Self {
8384 self._fields.8 = value.into();
8385 self
8386 }
8387 pub fn maybe_genres(
8389 mut self,
8390 value: Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
8391 ) -> Self {
8392 self._fields.8 = value;
8393 self
8394 }
8395}
8396
8397impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8398 pub fn keywords(mut self, value: impl Into<Option<Vec<S>>>) -> Self {
8400 self._fields.9 = value.into();
8401 self
8402 }
8403 pub fn maybe_keywords(mut self, value: Option<Vec<S>>) -> Self {
8405 self._fields.9 = value;
8406 self
8407 }
8408}
8409
8410impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8411 pub fn language_supports(
8413 mut self,
8414 value: impl Into<Option<Vec<games_gamesgamesgamesgames::LanguageSupport<S>>>>,
8415 ) -> Self {
8416 self._fields.10 = value.into();
8417 self
8418 }
8419 pub fn maybe_language_supports(
8421 mut self,
8422 value: Option<Vec<games_gamesgamesgamesgames::LanguageSupport<S>>>,
8423 ) -> Self {
8424 self._fields.10 = value;
8425 self
8426 }
8427}
8428
8429impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8430 pub fn media(
8432 mut self,
8433 value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>>,
8434 ) -> Self {
8435 self._fields.11 = value.into();
8436 self
8437 }
8438 pub fn maybe_media(
8440 mut self,
8441 value: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
8442 ) -> Self {
8443 self._fields.11 = value;
8444 self
8445 }
8446}
8447
8448impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8449 pub fn modes(
8451 mut self,
8452 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Mode<S>>>>,
8453 ) -> Self {
8454 self._fields.12 = value.into();
8455 self
8456 }
8457 pub fn maybe_modes(mut self, value: Option<Vec<games_gamesgamesgamesgames::Mode<S>>>) -> Self {
8459 self._fields.12 = value;
8460 self
8461 }
8462}
8463
8464impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8465 pub fn multiplayer_modes(
8467 mut self,
8468 value: impl Into<Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<S>>>>,
8469 ) -> Self {
8470 self._fields.13 = value.into();
8471 self
8472 }
8473 pub fn maybe_multiplayer_modes(
8475 mut self,
8476 value: Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<S>>>,
8477 ) -> Self {
8478 self._fields.13 = value;
8479 self
8480 }
8481}
8482
8483impl<St, S: BosStr> GameDetailViewBuilder<St, S>
8484where
8485 St: game_detail_view_state::State,
8486 St::Name: game_detail_view_state::IsUnset,
8487{
8488 pub fn name(
8490 mut self,
8491 value: impl Into<S>,
8492 ) -> GameDetailViewBuilder<game_detail_view_state::SetName<St>, S> {
8493 self._fields.14 = Option::Some(value.into());
8494 GameDetailViewBuilder {
8495 _state: PhantomData,
8496 _fields: self._fields,
8497 _type: PhantomData,
8498 }
8499 }
8500}
8501
8502impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8503 pub fn org_credits(
8505 mut self,
8506 value: impl Into<Option<Vec<games_gamesgamesgamesgames::OrgCreditView<S>>>>,
8507 ) -> Self {
8508 self._fields.15 = value.into();
8509 self
8510 }
8511 pub fn maybe_org_credits(
8513 mut self,
8514 value: Option<Vec<games_gamesgamesgamesgames::OrgCreditView<S>>>,
8515 ) -> Self {
8516 self._fields.15 = value;
8517 self
8518 }
8519}
8520
8521impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8522 pub fn parent(mut self, value: impl Into<Option<AtUri<S>>>) -> Self {
8524 self._fields.16 = value.into();
8525 self
8526 }
8527 pub fn maybe_parent(mut self, value: Option<AtUri<S>>) -> Self {
8529 self._fields.16 = value;
8530 self
8531 }
8532}
8533
8534impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8535 pub fn player_perspectives(
8537 mut self,
8538 value: impl Into<Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<S>>>>,
8539 ) -> Self {
8540 self._fields.17 = value.into();
8541 self
8542 }
8543 pub fn maybe_player_perspectives(
8545 mut self,
8546 value: Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<S>>>,
8547 ) -> Self {
8548 self._fields.17 = value;
8549 self
8550 }
8551}
8552
8553impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8554 pub fn published_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
8556 self._fields.18 = value.into();
8557 self
8558 }
8559 pub fn maybe_published_at(mut self, value: Option<Datetime>) -> Self {
8561 self._fields.18 = value;
8562 self
8563 }
8564}
8565
8566impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8567 pub fn releases(
8569 mut self,
8570 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Release<S>>>>,
8571 ) -> Self {
8572 self._fields.19 = value.into();
8573 self
8574 }
8575 pub fn maybe_releases(
8577 mut self,
8578 value: Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
8579 ) -> Self {
8580 self._fields.19 = value;
8581 self
8582 }
8583}
8584
8585impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8586 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
8588 self._fields.20 = value.into();
8589 self
8590 }
8591 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
8593 self._fields.20 = value;
8594 self
8595 }
8596}
8597
8598impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8599 pub fn storyline(mut self, value: impl Into<Option<S>>) -> Self {
8601 self._fields.21 = value.into();
8602 self
8603 }
8604 pub fn maybe_storyline(mut self, value: Option<S>) -> Self {
8606 self._fields.21 = value;
8607 self
8608 }
8609}
8610
8611impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8612 pub fn summary(mut self, value: impl Into<Option<S>>) -> Self {
8614 self._fields.22 = value.into();
8615 self
8616 }
8617 pub fn maybe_summary(mut self, value: Option<S>) -> Self {
8619 self._fields.22 = value;
8620 self
8621 }
8622}
8623
8624impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8625 pub fn themes(
8627 mut self,
8628 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Theme<S>>>>,
8629 ) -> Self {
8630 self._fields.23 = value.into();
8631 self
8632 }
8633 pub fn maybe_themes(
8635 mut self,
8636 value: Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
8637 ) -> Self {
8638 self._fields.23 = value;
8639 self
8640 }
8641}
8642
8643impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8644 pub fn time_to_beat(
8646 mut self,
8647 value: impl Into<Option<games_gamesgamesgamesgames::TimeToBeat<S>>>,
8648 ) -> Self {
8649 self._fields.24 = value.into();
8650 self
8651 }
8652 pub fn maybe_time_to_beat(
8654 mut self,
8655 value: Option<games_gamesgamesgamesgames::TimeToBeat<S>>,
8656 ) -> Self {
8657 self._fields.24 = value;
8658 self
8659 }
8660}
8661
8662impl<St, S: BosStr> GameDetailViewBuilder<St, S>
8663where
8664 St: game_detail_view_state::State,
8665 St::Uri: game_detail_view_state::IsUnset,
8666{
8667 pub fn uri(
8669 mut self,
8670 value: impl Into<AtUri<S>>,
8671 ) -> GameDetailViewBuilder<game_detail_view_state::SetUri<St>, S> {
8672 self._fields.25 = Option::Some(value.into());
8673 GameDetailViewBuilder {
8674 _state: PhantomData,
8675 _fields: self._fields,
8676 _type: PhantomData,
8677 }
8678 }
8679}
8680
8681impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8682 pub fn videos(
8684 mut self,
8685 value: impl Into<Option<Vec<games_gamesgamesgamesgames::ExternalVideo<S>>>>,
8686 ) -> Self {
8687 self._fields.26 = value.into();
8688 self
8689 }
8690 pub fn maybe_videos(
8692 mut self,
8693 value: Option<Vec<games_gamesgamesgamesgames::ExternalVideo<S>>>,
8694 ) -> Self {
8695 self._fields.26 = value;
8696 self
8697 }
8698}
8699
8700impl<St: game_detail_view_state::State, S: BosStr> GameDetailViewBuilder<St, S> {
8701 pub fn websites(
8703 mut self,
8704 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<S>>>>,
8705 ) -> Self {
8706 self._fields.27 = value.into();
8707 self
8708 }
8709 pub fn maybe_websites(
8711 mut self,
8712 value: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
8713 ) -> Self {
8714 self._fields.27 = value;
8715 self
8716 }
8717}
8718
8719impl<St, S: BosStr> GameDetailViewBuilder<St, S>
8720where
8721 St: game_detail_view_state::State,
8722 St::CreatedAt: game_detail_view_state::IsSet,
8723 St::Name: game_detail_view_state::IsSet,
8724 St::Uri: game_detail_view_state::IsSet,
8725{
8726 pub fn build(self) -> GameDetailView<S> {
8728 GameDetailView {
8729 actor_credits: self._fields.0,
8730 age_ratings: self._fields.1,
8731 alternative_names: self._fields.2,
8732 application_type: self._fields.3,
8733 collections: self._fields.4,
8734 created_at: self._fields.5.unwrap(),
8735 engines: self._fields.6,
8736 external_ids: self._fields.7,
8737 genres: self._fields.8,
8738 keywords: self._fields.9,
8739 language_supports: self._fields.10,
8740 media: self._fields.11,
8741 modes: self._fields.12,
8742 multiplayer_modes: self._fields.13,
8743 name: self._fields.14.unwrap(),
8744 org_credits: self._fields.15,
8745 parent: self._fields.16,
8746 player_perspectives: self._fields.17,
8747 published_at: self._fields.18,
8748 releases: self._fields.19,
8749 slug: self._fields.20,
8750 storyline: self._fields.21,
8751 summary: self._fields.22,
8752 themes: self._fields.23,
8753 time_to_beat: self._fields.24,
8754 uri: self._fields.25.unwrap(),
8755 videos: self._fields.26,
8756 websites: self._fields.27,
8757 extra_data: Default::default(),
8758 }
8759 }
8760 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> GameDetailView<S> {
8762 GameDetailView {
8763 actor_credits: self._fields.0,
8764 age_ratings: self._fields.1,
8765 alternative_names: self._fields.2,
8766 application_type: self._fields.3,
8767 collections: self._fields.4,
8768 created_at: self._fields.5.unwrap(),
8769 engines: self._fields.6,
8770 external_ids: self._fields.7,
8771 genres: self._fields.8,
8772 keywords: self._fields.9,
8773 language_supports: self._fields.10,
8774 media: self._fields.11,
8775 modes: self._fields.12,
8776 multiplayer_modes: self._fields.13,
8777 name: self._fields.14.unwrap(),
8778 org_credits: self._fields.15,
8779 parent: self._fields.16,
8780 player_perspectives: self._fields.17,
8781 published_at: self._fields.18,
8782 releases: self._fields.19,
8783 slug: self._fields.20,
8784 storyline: self._fields.21,
8785 summary: self._fields.22,
8786 themes: self._fields.23,
8787 time_to_beat: self._fields.24,
8788 uri: self._fields.25.unwrap(),
8789 videos: self._fields.26,
8790 websites: self._fields.27,
8791 extra_data: Some(extra_data),
8792 }
8793 }
8794}
8795
8796pub mod game_feed_view_item_state {
8797
8798 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
8799 #[allow(unused)]
8800 use ::core::marker::PhantomData;
8801 mod sealed {
8802 pub trait Sealed {}
8803 }
8804 pub trait State: sealed::Sealed {
8806 type Game;
8807 }
8808 pub struct Empty(());
8810 impl sealed::Sealed for Empty {}
8811 impl State for Empty {
8812 type Game = Unset;
8813 }
8814 pub struct SetGame<St: State = Empty>(PhantomData<fn() -> St>);
8816 impl<St: State> sealed::Sealed for SetGame<St> {}
8817 impl<St: State> State for SetGame<St> {
8818 type Game = Set<members::game>;
8819 }
8820 #[allow(non_camel_case_types)]
8822 pub mod members {
8823 pub struct game(());
8825 }
8826}
8827
8828pub struct GameFeedViewItemBuilder<St: game_feed_view_item_state::State, S: BosStr = DefaultStr> {
8830 _state: PhantomData<fn() -> St>,
8831 _fields: (Option<S>, Option<games_gamesgamesgamesgames::GameView<S>>),
8832 _type: PhantomData<fn() -> S>,
8833}
8834
8835impl GameFeedViewItem<DefaultStr> {
8836 pub fn new() -> GameFeedViewItemBuilder<game_feed_view_item_state::Empty, DefaultStr> {
8838 GameFeedViewItemBuilder::new()
8839 }
8840}
8841
8842impl<S: BosStr> GameFeedViewItem<S> {
8843 pub fn builder() -> GameFeedViewItemBuilder<game_feed_view_item_state::Empty, S> {
8845 GameFeedViewItemBuilder::builder()
8846 }
8847}
8848
8849impl GameFeedViewItemBuilder<game_feed_view_item_state::Empty, DefaultStr> {
8850 pub fn new() -> Self {
8852 GameFeedViewItemBuilder {
8853 _state: PhantomData,
8854 _fields: (None, None),
8855 _type: PhantomData,
8856 }
8857 }
8858}
8859
8860impl<S: BosStr> GameFeedViewItemBuilder<game_feed_view_item_state::Empty, S> {
8861 pub fn builder() -> Self {
8863 GameFeedViewItemBuilder {
8864 _state: PhantomData,
8865 _fields: (None, None),
8866 _type: PhantomData,
8867 }
8868 }
8869}
8870
8871impl<St: game_feed_view_item_state::State, S: BosStr> GameFeedViewItemBuilder<St, S> {
8872 pub fn feed_context(mut self, value: impl Into<Option<S>>) -> Self {
8874 self._fields.0 = value.into();
8875 self
8876 }
8877 pub fn maybe_feed_context(mut self, value: Option<S>) -> Self {
8879 self._fields.0 = value;
8880 self
8881 }
8882}
8883
8884impl<St, S: BosStr> GameFeedViewItemBuilder<St, S>
8885where
8886 St: game_feed_view_item_state::State,
8887 St::Game: game_feed_view_item_state::IsUnset,
8888{
8889 pub fn game(
8891 mut self,
8892 value: impl Into<games_gamesgamesgamesgames::GameView<S>>,
8893 ) -> GameFeedViewItemBuilder<game_feed_view_item_state::SetGame<St>, S> {
8894 self._fields.1 = Option::Some(value.into());
8895 GameFeedViewItemBuilder {
8896 _state: PhantomData,
8897 _fields: self._fields,
8898 _type: PhantomData,
8899 }
8900 }
8901}
8902
8903impl<St, S: BosStr> GameFeedViewItemBuilder<St, S>
8904where
8905 St: game_feed_view_item_state::State,
8906 St::Game: game_feed_view_item_state::IsSet,
8907{
8908 pub fn build(self) -> GameFeedViewItem<S> {
8910 GameFeedViewItem {
8911 feed_context: self._fields.0,
8912 game: self._fields.1.unwrap(),
8913 extra_data: Default::default(),
8914 }
8915 }
8916 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> GameFeedViewItem<S> {
8918 GameFeedViewItem {
8919 feed_context: self._fields.0,
8920 game: self._fields.1.unwrap(),
8921 extra_data: Some(extra_data),
8922 }
8923 }
8924}
8925
8926pub mod game_summary_view_state {
8927
8928 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
8929 #[allow(unused)]
8930 use ::core::marker::PhantomData;
8931 mod sealed {
8932 pub trait Sealed {}
8933 }
8934 pub trait State: sealed::Sealed {
8936 type Name;
8937 type Uri;
8938 }
8939 pub struct Empty(());
8941 impl sealed::Sealed for Empty {}
8942 impl State for Empty {
8943 type Name = Unset;
8944 type Uri = Unset;
8945 }
8946 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
8948 impl<St: State> sealed::Sealed for SetName<St> {}
8949 impl<St: State> State for SetName<St> {
8950 type Name = Set<members::name>;
8951 type Uri = St::Uri;
8952 }
8953 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
8955 impl<St: State> sealed::Sealed for SetUri<St> {}
8956 impl<St: State> State for SetUri<St> {
8957 type Name = St::Name;
8958 type Uri = Set<members::uri>;
8959 }
8960 #[allow(non_camel_case_types)]
8962 pub mod members {
8963 pub struct name(());
8965 pub struct uri(());
8967 }
8968}
8969
8970pub struct GameSummaryViewBuilder<St: game_summary_view_state::State, S: BosStr = DefaultStr> {
8972 _state: PhantomData<fn() -> St>,
8973 _fields: (
8974 Option<games_gamesgamesgamesgames::ApplicationType<S>>,
8975 Option<i64>,
8976 Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
8977 Option<S>,
8978 Option<S>,
8979 Option<S>,
8980 Option<AtUri<S>>,
8981 ),
8982 _type: PhantomData<fn() -> S>,
8983}
8984
8985impl GameSummaryView<DefaultStr> {
8986 pub fn new() -> GameSummaryViewBuilder<game_summary_view_state::Empty, DefaultStr> {
8988 GameSummaryViewBuilder::new()
8989 }
8990}
8991
8992impl<S: BosStr> GameSummaryView<S> {
8993 pub fn builder() -> GameSummaryViewBuilder<game_summary_view_state::Empty, S> {
8995 GameSummaryViewBuilder::builder()
8996 }
8997}
8998
8999impl GameSummaryViewBuilder<game_summary_view_state::Empty, DefaultStr> {
9000 pub fn new() -> Self {
9002 GameSummaryViewBuilder {
9003 _state: PhantomData,
9004 _fields: (None, None, None, None, None, None, None),
9005 _type: PhantomData,
9006 }
9007 }
9008}
9009
9010impl<S: BosStr> GameSummaryViewBuilder<game_summary_view_state::Empty, S> {
9011 pub fn builder() -> Self {
9013 GameSummaryViewBuilder {
9014 _state: PhantomData,
9015 _fields: (None, None, None, None, None, None, None),
9016 _type: PhantomData,
9017 }
9018 }
9019}
9020
9021impl<St: game_summary_view_state::State, S: BosStr> GameSummaryViewBuilder<St, S> {
9022 pub fn application_type(
9024 mut self,
9025 value: impl Into<Option<games_gamesgamesgamesgames::ApplicationType<S>>>,
9026 ) -> Self {
9027 self._fields.0 = value.into();
9028 self
9029 }
9030 pub fn maybe_application_type(
9032 mut self,
9033 value: Option<games_gamesgamesgamesgames::ApplicationType<S>>,
9034 ) -> Self {
9035 self._fields.0 = value;
9036 self
9037 }
9038}
9039
9040impl<St: game_summary_view_state::State, S: BosStr> GameSummaryViewBuilder<St, S> {
9041 pub fn first_release_date(mut self, value: impl Into<Option<i64>>) -> Self {
9043 self._fields.1 = value.into();
9044 self
9045 }
9046 pub fn maybe_first_release_date(mut self, value: Option<i64>) -> Self {
9048 self._fields.1 = value;
9049 self
9050 }
9051}
9052
9053impl<St: game_summary_view_state::State, S: BosStr> GameSummaryViewBuilder<St, S> {
9054 pub fn media(
9056 mut self,
9057 value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>>,
9058 ) -> Self {
9059 self._fields.2 = value.into();
9060 self
9061 }
9062 pub fn maybe_media(
9064 mut self,
9065 value: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
9066 ) -> Self {
9067 self._fields.2 = value;
9068 self
9069 }
9070}
9071
9072impl<St, S: BosStr> GameSummaryViewBuilder<St, S>
9073where
9074 St: game_summary_view_state::State,
9075 St::Name: game_summary_view_state::IsUnset,
9076{
9077 pub fn name(
9079 mut self,
9080 value: impl Into<S>,
9081 ) -> GameSummaryViewBuilder<game_summary_view_state::SetName<St>, S> {
9082 self._fields.3 = Option::Some(value.into());
9083 GameSummaryViewBuilder {
9084 _state: PhantomData,
9085 _fields: self._fields,
9086 _type: PhantomData,
9087 }
9088 }
9089}
9090
9091impl<St: game_summary_view_state::State, S: BosStr> GameSummaryViewBuilder<St, S> {
9092 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
9094 self._fields.4 = value.into();
9095 self
9096 }
9097 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
9099 self._fields.4 = value;
9100 self
9101 }
9102}
9103
9104impl<St: game_summary_view_state::State, S: BosStr> GameSummaryViewBuilder<St, S> {
9105 pub fn summary(mut self, value: impl Into<Option<S>>) -> Self {
9107 self._fields.5 = value.into();
9108 self
9109 }
9110 pub fn maybe_summary(mut self, value: Option<S>) -> Self {
9112 self._fields.5 = value;
9113 self
9114 }
9115}
9116
9117impl<St, S: BosStr> GameSummaryViewBuilder<St, S>
9118where
9119 St: game_summary_view_state::State,
9120 St::Uri: game_summary_view_state::IsUnset,
9121{
9122 pub fn uri(
9124 mut self,
9125 value: impl Into<AtUri<S>>,
9126 ) -> GameSummaryViewBuilder<game_summary_view_state::SetUri<St>, S> {
9127 self._fields.6 = Option::Some(value.into());
9128 GameSummaryViewBuilder {
9129 _state: PhantomData,
9130 _fields: self._fields,
9131 _type: PhantomData,
9132 }
9133 }
9134}
9135
9136impl<St, S: BosStr> GameSummaryViewBuilder<St, S>
9137where
9138 St: game_summary_view_state::State,
9139 St::Name: game_summary_view_state::IsSet,
9140 St::Uri: game_summary_view_state::IsSet,
9141{
9142 pub fn build(self) -> GameSummaryView<S> {
9144 GameSummaryView {
9145 application_type: self._fields.0,
9146 first_release_date: self._fields.1,
9147 media: self._fields.2,
9148 name: self._fields.3.unwrap(),
9149 slug: self._fields.4,
9150 summary: self._fields.5,
9151 uri: self._fields.6.unwrap(),
9152 extra_data: Default::default(),
9153 }
9154 }
9155 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> GameSummaryView<S> {
9157 GameSummaryView {
9158 application_type: self._fields.0,
9159 first_release_date: self._fields.1,
9160 media: self._fields.2,
9161 name: self._fields.3.unwrap(),
9162 slug: self._fields.4,
9163 summary: self._fields.5,
9164 uri: self._fields.6.unwrap(),
9165 extra_data: Some(extra_data),
9166 }
9167 }
9168}
9169
9170pub mod game_view_state {
9171
9172 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
9173 #[allow(unused)]
9174 use ::core::marker::PhantomData;
9175 mod sealed {
9176 pub trait Sealed {}
9177 }
9178 pub trait State: sealed::Sealed {
9180 type ApplicationType;
9181 type Name;
9182 type Uri;
9183 }
9184 pub struct Empty(());
9186 impl sealed::Sealed for Empty {}
9187 impl State for Empty {
9188 type ApplicationType = Unset;
9189 type Name = Unset;
9190 type Uri = Unset;
9191 }
9192 pub struct SetApplicationType<St: State = Empty>(PhantomData<fn() -> St>);
9194 impl<St: State> sealed::Sealed for SetApplicationType<St> {}
9195 impl<St: State> State for SetApplicationType<St> {
9196 type ApplicationType = Set<members::application_type>;
9197 type Name = St::Name;
9198 type Uri = St::Uri;
9199 }
9200 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
9202 impl<St: State> sealed::Sealed for SetName<St> {}
9203 impl<St: State> State for SetName<St> {
9204 type ApplicationType = St::ApplicationType;
9205 type Name = Set<members::name>;
9206 type Uri = St::Uri;
9207 }
9208 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
9210 impl<St: State> sealed::Sealed for SetUri<St> {}
9211 impl<St: State> State for SetUri<St> {
9212 type ApplicationType = St::ApplicationType;
9213 type Name = St::Name;
9214 type Uri = Set<members::uri>;
9215 }
9216 #[allow(non_camel_case_types)]
9218 pub mod members {
9219 pub struct application_type(());
9221 pub struct name(());
9223 pub struct uri(());
9225 }
9226}
9227
9228pub struct GameViewBuilder<St: game_view_state::State, S: BosStr = DefaultStr> {
9230 _state: PhantomData<fn() -> St>,
9231 _fields: (
9232 Option<games_gamesgamesgamesgames::ApplicationType<S>>,
9233 Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
9234 Option<i64>,
9235 Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
9236 Option<S>,
9237 Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
9238 Option<S>,
9239 Option<S>,
9240 Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
9241 Option<AtUri<S>>,
9242 Option<games_gamesgamesgamesgames::ViewerState<S>>,
9243 ),
9244 _type: PhantomData<fn() -> S>,
9245}
9246
9247impl GameView<DefaultStr> {
9248 pub fn new() -> GameViewBuilder<game_view_state::Empty, DefaultStr> {
9250 GameViewBuilder::new()
9251 }
9252}
9253
9254impl<S: BosStr> GameView<S> {
9255 pub fn builder() -> GameViewBuilder<game_view_state::Empty, S> {
9257 GameViewBuilder::builder()
9258 }
9259}
9260
9261impl GameViewBuilder<game_view_state::Empty, DefaultStr> {
9262 pub fn new() -> Self {
9264 GameViewBuilder {
9265 _state: PhantomData,
9266 _fields: (
9267 None, None, None, None, None, None, None, None, None, None, None,
9268 ),
9269 _type: PhantomData,
9270 }
9271 }
9272}
9273
9274impl<S: BosStr> GameViewBuilder<game_view_state::Empty, S> {
9275 pub fn builder() -> Self {
9277 GameViewBuilder {
9278 _state: PhantomData,
9279 _fields: (
9280 None, None, None, None, None, None, None, None, None, None, None,
9281 ),
9282 _type: PhantomData,
9283 }
9284 }
9285}
9286
9287impl<St, S: BosStr> GameViewBuilder<St, S>
9288where
9289 St: game_view_state::State,
9290 St::ApplicationType: game_view_state::IsUnset,
9291{
9292 pub fn application_type(
9294 mut self,
9295 value: impl Into<games_gamesgamesgamesgames::ApplicationType<S>>,
9296 ) -> GameViewBuilder<game_view_state::SetApplicationType<St>, S> {
9297 self._fields.0 = Option::Some(value.into());
9298 GameViewBuilder {
9299 _state: PhantomData,
9300 _fields: self._fields,
9301 _type: PhantomData,
9302 }
9303 }
9304}
9305
9306impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9307 pub fn genres(
9309 mut self,
9310 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Genre<S>>>>,
9311 ) -> Self {
9312 self._fields.1 = value.into();
9313 self
9314 }
9315 pub fn maybe_genres(
9317 mut self,
9318 value: Option<Vec<games_gamesgamesgamesgames::Genre<S>>>,
9319 ) -> Self {
9320 self._fields.1 = value;
9321 self
9322 }
9323}
9324
9325impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9326 pub fn like_count(mut self, value: impl Into<Option<i64>>) -> Self {
9328 self._fields.2 = value.into();
9329 self
9330 }
9331 pub fn maybe_like_count(mut self, value: Option<i64>) -> Self {
9333 self._fields.2 = value;
9334 self
9335 }
9336}
9337
9338impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9339 pub fn media(
9341 mut self,
9342 value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>>,
9343 ) -> Self {
9344 self._fields.3 = value.into();
9345 self
9346 }
9347 pub fn maybe_media(
9349 mut self,
9350 value: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
9351 ) -> Self {
9352 self._fields.3 = value;
9353 self
9354 }
9355}
9356
9357impl<St, S: BosStr> GameViewBuilder<St, S>
9358where
9359 St: game_view_state::State,
9360 St::Name: game_view_state::IsUnset,
9361{
9362 pub fn name(mut self, value: impl Into<S>) -> GameViewBuilder<game_view_state::SetName<St>, S> {
9364 self._fields.4 = Option::Some(value.into());
9365 GameViewBuilder {
9366 _state: PhantomData,
9367 _fields: self._fields,
9368 _type: PhantomData,
9369 }
9370 }
9371}
9372
9373impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9374 pub fn releases(
9376 mut self,
9377 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Release<S>>>>,
9378 ) -> Self {
9379 self._fields.5 = value.into();
9380 self
9381 }
9382 pub fn maybe_releases(
9384 mut self,
9385 value: Option<Vec<games_gamesgamesgamesgames::Release<S>>>,
9386 ) -> Self {
9387 self._fields.5 = value;
9388 self
9389 }
9390}
9391
9392impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9393 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
9395 self._fields.6 = value.into();
9396 self
9397 }
9398 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
9400 self._fields.6 = value;
9401 self
9402 }
9403}
9404
9405impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9406 pub fn summary(mut self, value: impl Into<Option<S>>) -> Self {
9408 self._fields.7 = value.into();
9409 self
9410 }
9411 pub fn maybe_summary(mut self, value: Option<S>) -> Self {
9413 self._fields.7 = value;
9414 self
9415 }
9416}
9417
9418impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9419 pub fn themes(
9421 mut self,
9422 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Theme<S>>>>,
9423 ) -> Self {
9424 self._fields.8 = value.into();
9425 self
9426 }
9427 pub fn maybe_themes(
9429 mut self,
9430 value: Option<Vec<games_gamesgamesgamesgames::Theme<S>>>,
9431 ) -> Self {
9432 self._fields.8 = value;
9433 self
9434 }
9435}
9436
9437impl<St, S: BosStr> GameViewBuilder<St, S>
9438where
9439 St: game_view_state::State,
9440 St::Uri: game_view_state::IsUnset,
9441{
9442 pub fn uri(
9444 mut self,
9445 value: impl Into<AtUri<S>>,
9446 ) -> GameViewBuilder<game_view_state::SetUri<St>, S> {
9447 self._fields.9 = Option::Some(value.into());
9448 GameViewBuilder {
9449 _state: PhantomData,
9450 _fields: self._fields,
9451 _type: PhantomData,
9452 }
9453 }
9454}
9455
9456impl<St: game_view_state::State, S: BosStr> GameViewBuilder<St, S> {
9457 pub fn viewer(
9459 mut self,
9460 value: impl Into<Option<games_gamesgamesgamesgames::ViewerState<S>>>,
9461 ) -> Self {
9462 self._fields.10 = value.into();
9463 self
9464 }
9465 pub fn maybe_viewer(
9467 mut self,
9468 value: Option<games_gamesgamesgamesgames::ViewerState<S>>,
9469 ) -> Self {
9470 self._fields.10 = value;
9471 self
9472 }
9473}
9474
9475impl<St, S: BosStr> GameViewBuilder<St, S>
9476where
9477 St: game_view_state::State,
9478 St::ApplicationType: game_view_state::IsSet,
9479 St::Name: game_view_state::IsSet,
9480 St::Uri: game_view_state::IsSet,
9481{
9482 pub fn build(self) -> GameView<S> {
9484 GameView {
9485 application_type: self._fields.0.unwrap(),
9486 genres: self._fields.1,
9487 like_count: self._fields.2,
9488 media: self._fields.3,
9489 name: self._fields.4.unwrap(),
9490 releases: self._fields.5,
9491 slug: self._fields.6,
9492 summary: self._fields.7,
9493 themes: self._fields.8,
9494 uri: self._fields.9.unwrap(),
9495 viewer: self._fields.10,
9496 extra_data: Default::default(),
9497 }
9498 }
9499 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> GameView<S> {
9501 GameView {
9502 application_type: self._fields.0.unwrap(),
9503 genres: self._fields.1,
9504 like_count: self._fields.2,
9505 media: self._fields.3,
9506 name: self._fields.4.unwrap(),
9507 releases: self._fields.5,
9508 slug: self._fields.6,
9509 summary: self._fields.7,
9510 themes: self._fields.8,
9511 uri: self._fields.9.unwrap(),
9512 viewer: self._fields.10,
9513 extra_data: Some(extra_data),
9514 }
9515 }
9516}
9517
9518pub mod org_credit_view_state {
9519
9520 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
9521 #[allow(unused)]
9522 use ::core::marker::PhantomData;
9523 mod sealed {
9524 pub trait Sealed {}
9525 }
9526 pub trait State: sealed::Sealed {
9528 type Roles;
9529 type Uri;
9530 }
9531 pub struct Empty(());
9533 impl sealed::Sealed for Empty {}
9534 impl State for Empty {
9535 type Roles = Unset;
9536 type Uri = Unset;
9537 }
9538 pub struct SetRoles<St: State = Empty>(PhantomData<fn() -> St>);
9540 impl<St: State> sealed::Sealed for SetRoles<St> {}
9541 impl<St: State> State for SetRoles<St> {
9542 type Roles = Set<members::roles>;
9543 type Uri = St::Uri;
9544 }
9545 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
9547 impl<St: State> sealed::Sealed for SetUri<St> {}
9548 impl<St: State> State for SetUri<St> {
9549 type Roles = St::Roles;
9550 type Uri = Set<members::uri>;
9551 }
9552 #[allow(non_camel_case_types)]
9554 pub mod members {
9555 pub struct roles(());
9557 pub struct uri(());
9559 }
9560}
9561
9562pub struct OrgCreditViewBuilder<St: org_credit_view_state::State, S: BosStr = DefaultStr> {
9564 _state: PhantomData<fn() -> St>,
9565 _fields: (
9566 Option<S>,
9567 Option<AtUri<S>>,
9568 Option<Vec<games_gamesgamesgamesgames::CompanyRole<S>>>,
9569 Option<AtUri<S>>,
9570 ),
9571 _type: PhantomData<fn() -> S>,
9572}
9573
9574impl OrgCreditView<DefaultStr> {
9575 pub fn new() -> OrgCreditViewBuilder<org_credit_view_state::Empty, DefaultStr> {
9577 OrgCreditViewBuilder::new()
9578 }
9579}
9580
9581impl<S: BosStr> OrgCreditView<S> {
9582 pub fn builder() -> OrgCreditViewBuilder<org_credit_view_state::Empty, S> {
9584 OrgCreditViewBuilder::builder()
9585 }
9586}
9587
9588impl OrgCreditViewBuilder<org_credit_view_state::Empty, DefaultStr> {
9589 pub fn new() -> Self {
9591 OrgCreditViewBuilder {
9592 _state: PhantomData,
9593 _fields: (None, None, None, None),
9594 _type: PhantomData,
9595 }
9596 }
9597}
9598
9599impl<S: BosStr> OrgCreditViewBuilder<org_credit_view_state::Empty, S> {
9600 pub fn builder() -> Self {
9602 OrgCreditViewBuilder {
9603 _state: PhantomData,
9604 _fields: (None, None, None, None),
9605 _type: PhantomData,
9606 }
9607 }
9608}
9609
9610impl<St: org_credit_view_state::State, S: BosStr> OrgCreditViewBuilder<St, S> {
9611 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
9613 self._fields.0 = value.into();
9614 self
9615 }
9616 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
9618 self._fields.0 = value;
9619 self
9620 }
9621}
9622
9623impl<St: org_credit_view_state::State, S: BosStr> OrgCreditViewBuilder<St, S> {
9624 pub fn org_uri(mut self, value: impl Into<Option<AtUri<S>>>) -> Self {
9626 self._fields.1 = value.into();
9627 self
9628 }
9629 pub fn maybe_org_uri(mut self, value: Option<AtUri<S>>) -> Self {
9631 self._fields.1 = value;
9632 self
9633 }
9634}
9635
9636impl<St, S: BosStr> OrgCreditViewBuilder<St, S>
9637where
9638 St: org_credit_view_state::State,
9639 St::Roles: org_credit_view_state::IsUnset,
9640{
9641 pub fn roles(
9643 mut self,
9644 value: impl Into<Vec<games_gamesgamesgamesgames::CompanyRole<S>>>,
9645 ) -> OrgCreditViewBuilder<org_credit_view_state::SetRoles<St>, S> {
9646 self._fields.2 = Option::Some(value.into());
9647 OrgCreditViewBuilder {
9648 _state: PhantomData,
9649 _fields: self._fields,
9650 _type: PhantomData,
9651 }
9652 }
9653}
9654
9655impl<St, S: BosStr> OrgCreditViewBuilder<St, S>
9656where
9657 St: org_credit_view_state::State,
9658 St::Uri: org_credit_view_state::IsUnset,
9659{
9660 pub fn uri(
9662 mut self,
9663 value: impl Into<AtUri<S>>,
9664 ) -> OrgCreditViewBuilder<org_credit_view_state::SetUri<St>, S> {
9665 self._fields.3 = Option::Some(value.into());
9666 OrgCreditViewBuilder {
9667 _state: PhantomData,
9668 _fields: self._fields,
9669 _type: PhantomData,
9670 }
9671 }
9672}
9673
9674impl<St, S: BosStr> OrgCreditViewBuilder<St, S>
9675where
9676 St: org_credit_view_state::State,
9677 St::Roles: org_credit_view_state::IsSet,
9678 St::Uri: org_credit_view_state::IsSet,
9679{
9680 pub fn build(self) -> OrgCreditView<S> {
9682 OrgCreditView {
9683 display_name: self._fields.0,
9684 org_uri: self._fields.1,
9685 roles: self._fields.2.unwrap(),
9686 uri: self._fields.3.unwrap(),
9687 extra_data: Default::default(),
9688 }
9689 }
9690 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> OrgCreditView<S> {
9692 OrgCreditView {
9693 display_name: self._fields.0,
9694 org_uri: self._fields.1,
9695 roles: self._fields.2.unwrap(),
9696 uri: self._fields.3.unwrap(),
9697 extra_data: Some(extra_data),
9698 }
9699 }
9700}
9701
9702pub mod org_profile_detail_view_state {
9703
9704 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
9705 #[allow(unused)]
9706 use ::core::marker::PhantomData;
9707 mod sealed {
9708 pub trait Sealed {}
9709 }
9710 pub trait State: sealed::Sealed {
9712 type Did;
9713 type Uri;
9714 }
9715 pub struct Empty(());
9717 impl sealed::Sealed for Empty {}
9718 impl State for Empty {
9719 type Did = Unset;
9720 type Uri = Unset;
9721 }
9722 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
9724 impl<St: State> sealed::Sealed for SetDid<St> {}
9725 impl<St: State> State for SetDid<St> {
9726 type Did = Set<members::did>;
9727 type Uri = St::Uri;
9728 }
9729 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
9731 impl<St: State> sealed::Sealed for SetUri<St> {}
9732 impl<St: State> State for SetUri<St> {
9733 type Did = St::Did;
9734 type Uri = Set<members::uri>;
9735 }
9736 #[allow(non_camel_case_types)]
9738 pub mod members {
9739 pub struct did(());
9741 pub struct uri(());
9743 }
9744}
9745
9746pub struct OrgProfileDetailViewBuilder<
9748 St: org_profile_detail_view_state::State,
9749 S: BosStr = DefaultStr,
9750> {
9751 _state: PhantomData<fn() -> St>,
9752 _fields: (
9753 Option<BlobRef<S>>,
9754 Option<S>,
9755 Option<Datetime>,
9756 Option<S>,
9757 Option<Vec<Facet<S>>>,
9758 Option<Did<S>>,
9759 Option<S>,
9760 Option<Datetime>,
9761 Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
9762 Option<AtUri<S>>,
9763 Option<OrgProfileDetailViewStatus<S>>,
9764 Option<AtUri<S>>,
9765 Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
9766 ),
9767 _type: PhantomData<fn() -> S>,
9768}
9769
9770impl OrgProfileDetailView<DefaultStr> {
9771 pub fn new() -> OrgProfileDetailViewBuilder<org_profile_detail_view_state::Empty, DefaultStr> {
9773 OrgProfileDetailViewBuilder::new()
9774 }
9775}
9776
9777impl<S: BosStr> OrgProfileDetailView<S> {
9778 pub fn builder() -> OrgProfileDetailViewBuilder<org_profile_detail_view_state::Empty, S> {
9780 OrgProfileDetailViewBuilder::builder()
9781 }
9782}
9783
9784impl OrgProfileDetailViewBuilder<org_profile_detail_view_state::Empty, DefaultStr> {
9785 pub fn new() -> Self {
9787 OrgProfileDetailViewBuilder {
9788 _state: PhantomData,
9789 _fields: (
9790 None, None, None, None, None, None, None, None, None, None, None, None, None,
9791 ),
9792 _type: PhantomData,
9793 }
9794 }
9795}
9796
9797impl<S: BosStr> OrgProfileDetailViewBuilder<org_profile_detail_view_state::Empty, S> {
9798 pub fn builder() -> Self {
9800 OrgProfileDetailViewBuilder {
9801 _state: PhantomData,
9802 _fields: (
9803 None, None, None, None, None, None, None, None, None, None, None, None, None,
9804 ),
9805 _type: PhantomData,
9806 }
9807 }
9808}
9809
9810impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9811 pub fn avatar(mut self, value: impl Into<Option<BlobRef<S>>>) -> Self {
9813 self._fields.0 = value.into();
9814 self
9815 }
9816 pub fn maybe_avatar(mut self, value: Option<BlobRef<S>>) -> Self {
9818 self._fields.0 = value;
9819 self
9820 }
9821}
9822
9823impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9824 pub fn country(mut self, value: impl Into<Option<S>>) -> Self {
9826 self._fields.1 = value.into();
9827 self
9828 }
9829 pub fn maybe_country(mut self, value: Option<S>) -> Self {
9831 self._fields.1 = value;
9832 self
9833 }
9834}
9835
9836impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9837 pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
9839 self._fields.2 = value.into();
9840 self
9841 }
9842 pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
9844 self._fields.2 = value;
9845 self
9846 }
9847}
9848
9849impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9850 pub fn description(mut self, value: impl Into<Option<S>>) -> Self {
9852 self._fields.3 = value.into();
9853 self
9854 }
9855 pub fn maybe_description(mut self, value: Option<S>) -> Self {
9857 self._fields.3 = value;
9858 self
9859 }
9860}
9861
9862impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9863 pub fn description_facets(mut self, value: impl Into<Option<Vec<Facet<S>>>>) -> Self {
9865 self._fields.4 = value.into();
9866 self
9867 }
9868 pub fn maybe_description_facets(mut self, value: Option<Vec<Facet<S>>>) -> Self {
9870 self._fields.4 = value;
9871 self
9872 }
9873}
9874
9875impl<St, S: BosStr> OrgProfileDetailViewBuilder<St, S>
9876where
9877 St: org_profile_detail_view_state::State,
9878 St::Did: org_profile_detail_view_state::IsUnset,
9879{
9880 pub fn did(
9882 mut self,
9883 value: impl Into<Did<S>>,
9884 ) -> OrgProfileDetailViewBuilder<org_profile_detail_view_state::SetDid<St>, S> {
9885 self._fields.5 = Option::Some(value.into());
9886 OrgProfileDetailViewBuilder {
9887 _state: PhantomData,
9888 _fields: self._fields,
9889 _type: PhantomData,
9890 }
9891 }
9892}
9893
9894impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9895 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
9897 self._fields.6 = value.into();
9898 self
9899 }
9900 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
9902 self._fields.6 = value;
9903 self
9904 }
9905}
9906
9907impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9908 pub fn founded_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
9910 self._fields.7 = value.into();
9911 self
9912 }
9913 pub fn maybe_founded_at(mut self, value: Option<Datetime>) -> Self {
9915 self._fields.7 = value;
9916 self
9917 }
9918}
9919
9920impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9921 pub fn media(
9923 mut self,
9924 value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>>,
9925 ) -> Self {
9926 self._fields.8 = value.into();
9927 self
9928 }
9929 pub fn maybe_media(
9931 mut self,
9932 value: Option<Vec<games_gamesgamesgamesgames::MediaItem<S>>>,
9933 ) -> Self {
9934 self._fields.8 = value;
9935 self
9936 }
9937}
9938
9939impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9940 pub fn parent(mut self, value: impl Into<Option<AtUri<S>>>) -> Self {
9942 self._fields.9 = value.into();
9943 self
9944 }
9945 pub fn maybe_parent(mut self, value: Option<AtUri<S>>) -> Self {
9947 self._fields.9 = value;
9948 self
9949 }
9950}
9951
9952impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9953 pub fn status(mut self, value: impl Into<Option<OrgProfileDetailViewStatus<S>>>) -> Self {
9955 self._fields.10 = value.into();
9956 self
9957 }
9958 pub fn maybe_status(mut self, value: Option<OrgProfileDetailViewStatus<S>>) -> Self {
9960 self._fields.10 = value;
9961 self
9962 }
9963}
9964
9965impl<St, S: BosStr> OrgProfileDetailViewBuilder<St, S>
9966where
9967 St: org_profile_detail_view_state::State,
9968 St::Uri: org_profile_detail_view_state::IsUnset,
9969{
9970 pub fn uri(
9972 mut self,
9973 value: impl Into<AtUri<S>>,
9974 ) -> OrgProfileDetailViewBuilder<org_profile_detail_view_state::SetUri<St>, S> {
9975 self._fields.11 = Option::Some(value.into());
9976 OrgProfileDetailViewBuilder {
9977 _state: PhantomData,
9978 _fields: self._fields,
9979 _type: PhantomData,
9980 }
9981 }
9982}
9983
9984impl<St: org_profile_detail_view_state::State, S: BosStr> OrgProfileDetailViewBuilder<St, S> {
9985 pub fn websites(
9987 mut self,
9988 value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<S>>>>,
9989 ) -> Self {
9990 self._fields.12 = value.into();
9991 self
9992 }
9993 pub fn maybe_websites(
9995 mut self,
9996 value: Option<Vec<games_gamesgamesgamesgames::Website<S>>>,
9997 ) -> Self {
9998 self._fields.12 = value;
9999 self
10000 }
10001}
10002
10003impl<St, S: BosStr> OrgProfileDetailViewBuilder<St, S>
10004where
10005 St: org_profile_detail_view_state::State,
10006 St::Did: org_profile_detail_view_state::IsSet,
10007 St::Uri: org_profile_detail_view_state::IsSet,
10008{
10009 pub fn build(self) -> OrgProfileDetailView<S> {
10011 OrgProfileDetailView {
10012 avatar: self._fields.0,
10013 country: self._fields.1,
10014 created_at: self._fields.2,
10015 description: self._fields.3,
10016 description_facets: self._fields.4,
10017 did: self._fields.5.unwrap(),
10018 display_name: self._fields.6,
10019 founded_at: self._fields.7,
10020 media: self._fields.8,
10021 parent: self._fields.9,
10022 status: self._fields.10,
10023 uri: self._fields.11.unwrap(),
10024 websites: self._fields.12,
10025 extra_data: Default::default(),
10026 }
10027 }
10028 pub fn build_with_data(
10030 self,
10031 extra_data: BTreeMap<SmolStr, Data<S>>,
10032 ) -> OrgProfileDetailView<S> {
10033 OrgProfileDetailView {
10034 avatar: self._fields.0,
10035 country: self._fields.1,
10036 created_at: self._fields.2,
10037 description: self._fields.3,
10038 description_facets: self._fields.4,
10039 did: self._fields.5.unwrap(),
10040 display_name: self._fields.6,
10041 founded_at: self._fields.7,
10042 media: self._fields.8,
10043 parent: self._fields.9,
10044 status: self._fields.10,
10045 uri: self._fields.11.unwrap(),
10046 websites: self._fields.12,
10047 extra_data: Some(extra_data),
10048 }
10049 }
10050}
10051
10052pub mod org_profile_summary_view_state {
10053
10054 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10055 #[allow(unused)]
10056 use ::core::marker::PhantomData;
10057 mod sealed {
10058 pub trait Sealed {}
10059 }
10060 pub trait State: sealed::Sealed {
10062 type Did;
10063 type Uri;
10064 }
10065 pub struct Empty(());
10067 impl sealed::Sealed for Empty {}
10068 impl State for Empty {
10069 type Did = Unset;
10070 type Uri = Unset;
10071 }
10072 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
10074 impl<St: State> sealed::Sealed for SetDid<St> {}
10075 impl<St: State> State for SetDid<St> {
10076 type Did = Set<members::did>;
10077 type Uri = St::Uri;
10078 }
10079 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
10081 impl<St: State> sealed::Sealed for SetUri<St> {}
10082 impl<St: State> State for SetUri<St> {
10083 type Did = St::Did;
10084 type Uri = Set<members::uri>;
10085 }
10086 #[allow(non_camel_case_types)]
10088 pub mod members {
10089 pub struct did(());
10091 pub struct uri(());
10093 }
10094}
10095
10096pub struct OrgProfileSummaryViewBuilder<
10098 St: org_profile_summary_view_state::State,
10099 S: BosStr = DefaultStr,
10100> {
10101 _state: PhantomData<fn() -> St>,
10102 _fields: (
10103 Option<BlobRef<S>>,
10104 Option<Did<S>>,
10105 Option<S>,
10106 Option<AtUri<S>>,
10107 ),
10108 _type: PhantomData<fn() -> S>,
10109}
10110
10111impl OrgProfileSummaryView<DefaultStr> {
10112 pub fn new() -> OrgProfileSummaryViewBuilder<org_profile_summary_view_state::Empty, DefaultStr>
10114 {
10115 OrgProfileSummaryViewBuilder::new()
10116 }
10117}
10118
10119impl<S: BosStr> OrgProfileSummaryView<S> {
10120 pub fn builder() -> OrgProfileSummaryViewBuilder<org_profile_summary_view_state::Empty, S> {
10122 OrgProfileSummaryViewBuilder::builder()
10123 }
10124}
10125
10126impl OrgProfileSummaryViewBuilder<org_profile_summary_view_state::Empty, DefaultStr> {
10127 pub fn new() -> Self {
10129 OrgProfileSummaryViewBuilder {
10130 _state: PhantomData,
10131 _fields: (None, None, None, None),
10132 _type: PhantomData,
10133 }
10134 }
10135}
10136
10137impl<S: BosStr> OrgProfileSummaryViewBuilder<org_profile_summary_view_state::Empty, S> {
10138 pub fn builder() -> Self {
10140 OrgProfileSummaryViewBuilder {
10141 _state: PhantomData,
10142 _fields: (None, None, None, None),
10143 _type: PhantomData,
10144 }
10145 }
10146}
10147
10148impl<St: org_profile_summary_view_state::State, S: BosStr> OrgProfileSummaryViewBuilder<St, S> {
10149 pub fn avatar(mut self, value: impl Into<Option<BlobRef<S>>>) -> Self {
10151 self._fields.0 = value.into();
10152 self
10153 }
10154 pub fn maybe_avatar(mut self, value: Option<BlobRef<S>>) -> Self {
10156 self._fields.0 = value;
10157 self
10158 }
10159}
10160
10161impl<St, S: BosStr> OrgProfileSummaryViewBuilder<St, S>
10162where
10163 St: org_profile_summary_view_state::State,
10164 St::Did: org_profile_summary_view_state::IsUnset,
10165{
10166 pub fn did(
10168 mut self,
10169 value: impl Into<Did<S>>,
10170 ) -> OrgProfileSummaryViewBuilder<org_profile_summary_view_state::SetDid<St>, S> {
10171 self._fields.1 = Option::Some(value.into());
10172 OrgProfileSummaryViewBuilder {
10173 _state: PhantomData,
10174 _fields: self._fields,
10175 _type: PhantomData,
10176 }
10177 }
10178}
10179
10180impl<St: org_profile_summary_view_state::State, S: BosStr> OrgProfileSummaryViewBuilder<St, S> {
10181 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
10183 self._fields.2 = value.into();
10184 self
10185 }
10186 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
10188 self._fields.2 = value;
10189 self
10190 }
10191}
10192
10193impl<St, S: BosStr> OrgProfileSummaryViewBuilder<St, S>
10194where
10195 St: org_profile_summary_view_state::State,
10196 St::Uri: org_profile_summary_view_state::IsUnset,
10197{
10198 pub fn uri(
10200 mut self,
10201 value: impl Into<AtUri<S>>,
10202 ) -> OrgProfileSummaryViewBuilder<org_profile_summary_view_state::SetUri<St>, S> {
10203 self._fields.3 = Option::Some(value.into());
10204 OrgProfileSummaryViewBuilder {
10205 _state: PhantomData,
10206 _fields: self._fields,
10207 _type: PhantomData,
10208 }
10209 }
10210}
10211
10212impl<St, S: BosStr> OrgProfileSummaryViewBuilder<St, S>
10213where
10214 St: org_profile_summary_view_state::State,
10215 St::Did: org_profile_summary_view_state::IsSet,
10216 St::Uri: org_profile_summary_view_state::IsSet,
10217{
10218 pub fn build(self) -> OrgProfileSummaryView<S> {
10220 OrgProfileSummaryView {
10221 avatar: self._fields.0,
10222 did: self._fields.1.unwrap(),
10223 display_name: self._fields.2,
10224 uri: self._fields.3.unwrap(),
10225 extra_data: Default::default(),
10226 }
10227 }
10228 pub fn build_with_data(
10230 self,
10231 extra_data: BTreeMap<SmolStr, Data<S>>,
10232 ) -> OrgProfileSummaryView<S> {
10233 OrgProfileSummaryView {
10234 avatar: self._fields.0,
10235 did: self._fields.1.unwrap(),
10236 display_name: self._fields.2,
10237 uri: self._fields.3.unwrap(),
10238 extra_data: Some(extra_data),
10239 }
10240 }
10241}
10242
10243pub mod platform_features_state {
10244
10245 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10246 #[allow(unused)]
10247 use ::core::marker::PhantomData;
10248 mod sealed {
10249 pub trait Sealed {}
10250 }
10251 pub trait State: sealed::Sealed {
10253 type Features;
10254 type Platform;
10255 }
10256 pub struct Empty(());
10258 impl sealed::Sealed for Empty {}
10259 impl State for Empty {
10260 type Features = Unset;
10261 type Platform = Unset;
10262 }
10263 pub struct SetFeatures<St: State = Empty>(PhantomData<fn() -> St>);
10265 impl<St: State> sealed::Sealed for SetFeatures<St> {}
10266 impl<St: State> State for SetFeatures<St> {
10267 type Features = Set<members::features>;
10268 type Platform = St::Platform;
10269 }
10270 pub struct SetPlatform<St: State = Empty>(PhantomData<fn() -> St>);
10272 impl<St: State> sealed::Sealed for SetPlatform<St> {}
10273 impl<St: State> State for SetPlatform<St> {
10274 type Features = St::Features;
10275 type Platform = Set<members::platform>;
10276 }
10277 #[allow(non_camel_case_types)]
10279 pub mod members {
10280 pub struct features(());
10282 pub struct platform(());
10284 }
10285}
10286
10287pub struct PlatformFeaturesBuilder<St: platform_features_state::State, S: BosStr = DefaultStr> {
10289 _state: PhantomData<fn() -> St>,
10290 _fields: (Option<Vec<S>>, Option<PlatformFeaturesPlatform<S>>),
10291 _type: PhantomData<fn() -> S>,
10292}
10293
10294impl PlatformFeatures<DefaultStr> {
10295 pub fn new() -> PlatformFeaturesBuilder<platform_features_state::Empty, DefaultStr> {
10297 PlatformFeaturesBuilder::new()
10298 }
10299}
10300
10301impl<S: BosStr> PlatformFeatures<S> {
10302 pub fn builder() -> PlatformFeaturesBuilder<platform_features_state::Empty, S> {
10304 PlatformFeaturesBuilder::builder()
10305 }
10306}
10307
10308impl PlatformFeaturesBuilder<platform_features_state::Empty, DefaultStr> {
10309 pub fn new() -> Self {
10311 PlatformFeaturesBuilder {
10312 _state: PhantomData,
10313 _fields: (None, None),
10314 _type: PhantomData,
10315 }
10316 }
10317}
10318
10319impl<S: BosStr> PlatformFeaturesBuilder<platform_features_state::Empty, S> {
10320 pub fn builder() -> Self {
10322 PlatformFeaturesBuilder {
10323 _state: PhantomData,
10324 _fields: (None, None),
10325 _type: PhantomData,
10326 }
10327 }
10328}
10329
10330impl<St, S: BosStr> PlatformFeaturesBuilder<St, S>
10331where
10332 St: platform_features_state::State,
10333 St::Features: platform_features_state::IsUnset,
10334{
10335 pub fn features(
10337 mut self,
10338 value: impl Into<Vec<S>>,
10339 ) -> PlatformFeaturesBuilder<platform_features_state::SetFeatures<St>, S> {
10340 self._fields.0 = Option::Some(value.into());
10341 PlatformFeaturesBuilder {
10342 _state: PhantomData,
10343 _fields: self._fields,
10344 _type: PhantomData,
10345 }
10346 }
10347}
10348
10349impl<St, S: BosStr> PlatformFeaturesBuilder<St, S>
10350where
10351 St: platform_features_state::State,
10352 St::Platform: platform_features_state::IsUnset,
10353{
10354 pub fn platform(
10356 mut self,
10357 value: impl Into<PlatformFeaturesPlatform<S>>,
10358 ) -> PlatformFeaturesBuilder<platform_features_state::SetPlatform<St>, S> {
10359 self._fields.1 = Option::Some(value.into());
10360 PlatformFeaturesBuilder {
10361 _state: PhantomData,
10362 _fields: self._fields,
10363 _type: PhantomData,
10364 }
10365 }
10366}
10367
10368impl<St, S: BosStr> PlatformFeaturesBuilder<St, S>
10369where
10370 St: platform_features_state::State,
10371 St::Features: platform_features_state::IsSet,
10372 St::Platform: platform_features_state::IsSet,
10373{
10374 pub fn build(self) -> PlatformFeatures<S> {
10376 PlatformFeatures {
10377 features: self._fields.0.unwrap(),
10378 platform: self._fields.1.unwrap(),
10379 extra_data: Default::default(),
10380 }
10381 }
10382 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> PlatformFeatures<S> {
10384 PlatformFeatures {
10385 features: self._fields.0.unwrap(),
10386 platform: self._fields.1.unwrap(),
10387 extra_data: Some(extra_data),
10388 }
10389 }
10390}
10391
10392pub mod platform_summary_view_state {
10393
10394 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10395 #[allow(unused)]
10396 use ::core::marker::PhantomData;
10397 mod sealed {
10398 pub trait Sealed {}
10399 }
10400 pub trait State: sealed::Sealed {
10402 type Name;
10403 type Uri;
10404 }
10405 pub struct Empty(());
10407 impl sealed::Sealed for Empty {}
10408 impl State for Empty {
10409 type Name = Unset;
10410 type Uri = Unset;
10411 }
10412 pub struct SetName<St: State = Empty>(PhantomData<fn() -> St>);
10414 impl<St: State> sealed::Sealed for SetName<St> {}
10415 impl<St: State> State for SetName<St> {
10416 type Name = Set<members::name>;
10417 type Uri = St::Uri;
10418 }
10419 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
10421 impl<St: State> sealed::Sealed for SetUri<St> {}
10422 impl<St: State> State for SetUri<St> {
10423 type Name = St::Name;
10424 type Uri = Set<members::uri>;
10425 }
10426 #[allow(non_camel_case_types)]
10428 pub mod members {
10429 pub struct name(());
10431 pub struct uri(());
10433 }
10434}
10435
10436pub struct PlatformSummaryViewBuilder<
10438 St: platform_summary_view_state::State,
10439 S: BosStr = DefaultStr,
10440> {
10441 _state: PhantomData<fn() -> St>,
10442 _fields: (
10443 Option<S>,
10444 Option<games_gamesgamesgamesgames::PlatformCategory<S>>,
10445 Option<S>,
10446 Option<S>,
10447 Option<AtUri<S>>,
10448 ),
10449 _type: PhantomData<fn() -> S>,
10450}
10451
10452impl PlatformSummaryView<DefaultStr> {
10453 pub fn new() -> PlatformSummaryViewBuilder<platform_summary_view_state::Empty, DefaultStr> {
10455 PlatformSummaryViewBuilder::new()
10456 }
10457}
10458
10459impl<S: BosStr> PlatformSummaryView<S> {
10460 pub fn builder() -> PlatformSummaryViewBuilder<platform_summary_view_state::Empty, S> {
10462 PlatformSummaryViewBuilder::builder()
10463 }
10464}
10465
10466impl PlatformSummaryViewBuilder<platform_summary_view_state::Empty, DefaultStr> {
10467 pub fn new() -> Self {
10469 PlatformSummaryViewBuilder {
10470 _state: PhantomData,
10471 _fields: (None, None, None, None, None),
10472 _type: PhantomData,
10473 }
10474 }
10475}
10476
10477impl<S: BosStr> PlatformSummaryViewBuilder<platform_summary_view_state::Empty, S> {
10478 pub fn builder() -> Self {
10480 PlatformSummaryViewBuilder {
10481 _state: PhantomData,
10482 _fields: (None, None, None, None, None),
10483 _type: PhantomData,
10484 }
10485 }
10486}
10487
10488impl<St: platform_summary_view_state::State, S: BosStr> PlatformSummaryViewBuilder<St, S> {
10489 pub fn abbreviation(mut self, value: impl Into<Option<S>>) -> Self {
10491 self._fields.0 = value.into();
10492 self
10493 }
10494 pub fn maybe_abbreviation(mut self, value: Option<S>) -> Self {
10496 self._fields.0 = value;
10497 self
10498 }
10499}
10500
10501impl<St: platform_summary_view_state::State, S: BosStr> PlatformSummaryViewBuilder<St, S> {
10502 pub fn category(
10504 mut self,
10505 value: impl Into<Option<games_gamesgamesgamesgames::PlatformCategory<S>>>,
10506 ) -> Self {
10507 self._fields.1 = value.into();
10508 self
10509 }
10510 pub fn maybe_category(
10512 mut self,
10513 value: Option<games_gamesgamesgamesgames::PlatformCategory<S>>,
10514 ) -> Self {
10515 self._fields.1 = value;
10516 self
10517 }
10518}
10519
10520impl<St, S: BosStr> PlatformSummaryViewBuilder<St, S>
10521where
10522 St: platform_summary_view_state::State,
10523 St::Name: platform_summary_view_state::IsUnset,
10524{
10525 pub fn name(
10527 mut self,
10528 value: impl Into<S>,
10529 ) -> PlatformSummaryViewBuilder<platform_summary_view_state::SetName<St>, S> {
10530 self._fields.2 = Option::Some(value.into());
10531 PlatformSummaryViewBuilder {
10532 _state: PhantomData,
10533 _fields: self._fields,
10534 _type: PhantomData,
10535 }
10536 }
10537}
10538
10539impl<St: platform_summary_view_state::State, S: BosStr> PlatformSummaryViewBuilder<St, S> {
10540 pub fn slug(mut self, value: impl Into<Option<S>>) -> Self {
10542 self._fields.3 = value.into();
10543 self
10544 }
10545 pub fn maybe_slug(mut self, value: Option<S>) -> Self {
10547 self._fields.3 = value;
10548 self
10549 }
10550}
10551
10552impl<St, S: BosStr> PlatformSummaryViewBuilder<St, S>
10553where
10554 St: platform_summary_view_state::State,
10555 St::Uri: platform_summary_view_state::IsUnset,
10556{
10557 pub fn uri(
10559 mut self,
10560 value: impl Into<AtUri<S>>,
10561 ) -> PlatformSummaryViewBuilder<platform_summary_view_state::SetUri<St>, S> {
10562 self._fields.4 = Option::Some(value.into());
10563 PlatformSummaryViewBuilder {
10564 _state: PhantomData,
10565 _fields: self._fields,
10566 _type: PhantomData,
10567 }
10568 }
10569}
10570
10571impl<St, S: BosStr> PlatformSummaryViewBuilder<St, S>
10572where
10573 St: platform_summary_view_state::State,
10574 St::Name: platform_summary_view_state::IsSet,
10575 St::Uri: platform_summary_view_state::IsSet,
10576{
10577 pub fn build(self) -> PlatformSummaryView<S> {
10579 PlatformSummaryView {
10580 abbreviation: self._fields.0,
10581 category: self._fields.1,
10582 name: self._fields.2.unwrap(),
10583 slug: self._fields.3,
10584 uri: self._fields.4.unwrap(),
10585 extra_data: Default::default(),
10586 }
10587 }
10588 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> PlatformSummaryView<S> {
10590 PlatformSummaryView {
10591 abbreviation: self._fields.0,
10592 category: self._fields.1,
10593 name: self._fields.2.unwrap(),
10594 slug: self._fields.3,
10595 uri: self._fields.4.unwrap(),
10596 extra_data: Some(extra_data),
10597 }
10598 }
10599}
10600
10601pub mod profile_summary_view_state {
10602
10603 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10604 #[allow(unused)]
10605 use ::core::marker::PhantomData;
10606 mod sealed {
10607 pub trait Sealed {}
10608 }
10609 pub trait State: sealed::Sealed {
10611 type Did;
10612 type ProfileType;
10613 type Uri;
10614 }
10615 pub struct Empty(());
10617 impl sealed::Sealed for Empty {}
10618 impl State for Empty {
10619 type Did = Unset;
10620 type ProfileType = Unset;
10621 type Uri = Unset;
10622 }
10623 pub struct SetDid<St: State = Empty>(PhantomData<fn() -> St>);
10625 impl<St: State> sealed::Sealed for SetDid<St> {}
10626 impl<St: State> State for SetDid<St> {
10627 type Did = Set<members::did>;
10628 type ProfileType = St::ProfileType;
10629 type Uri = St::Uri;
10630 }
10631 pub struct SetProfileType<St: State = Empty>(PhantomData<fn() -> St>);
10633 impl<St: State> sealed::Sealed for SetProfileType<St> {}
10634 impl<St: State> State for SetProfileType<St> {
10635 type Did = St::Did;
10636 type ProfileType = Set<members::profile_type>;
10637 type Uri = St::Uri;
10638 }
10639 pub struct SetUri<St: State = Empty>(PhantomData<fn() -> St>);
10641 impl<St: State> sealed::Sealed for SetUri<St> {}
10642 impl<St: State> State for SetUri<St> {
10643 type Did = St::Did;
10644 type ProfileType = St::ProfileType;
10645 type Uri = Set<members::uri>;
10646 }
10647 #[allow(non_camel_case_types)]
10649 pub mod members {
10650 pub struct did(());
10652 pub struct profile_type(());
10654 pub struct uri(());
10656 }
10657}
10658
10659pub struct ProfileSummaryViewBuilder<St: profile_summary_view_state::State, S: BosStr = DefaultStr>
10661{
10662 _state: PhantomData<fn() -> St>,
10663 _fields: (
10664 Option<BlobRef<S>>,
10665 Option<Did<S>>,
10666 Option<S>,
10667 Option<ProfileSummaryViewProfileType<S>>,
10668 Option<AtUri<S>>,
10669 ),
10670 _type: PhantomData<fn() -> S>,
10671}
10672
10673impl ProfileSummaryView<DefaultStr> {
10674 pub fn new() -> ProfileSummaryViewBuilder<profile_summary_view_state::Empty, DefaultStr> {
10676 ProfileSummaryViewBuilder::new()
10677 }
10678}
10679
10680impl<S: BosStr> ProfileSummaryView<S> {
10681 pub fn builder() -> ProfileSummaryViewBuilder<profile_summary_view_state::Empty, S> {
10683 ProfileSummaryViewBuilder::builder()
10684 }
10685}
10686
10687impl ProfileSummaryViewBuilder<profile_summary_view_state::Empty, DefaultStr> {
10688 pub fn new() -> Self {
10690 ProfileSummaryViewBuilder {
10691 _state: PhantomData,
10692 _fields: (None, None, None, None, None),
10693 _type: PhantomData,
10694 }
10695 }
10696}
10697
10698impl<S: BosStr> ProfileSummaryViewBuilder<profile_summary_view_state::Empty, S> {
10699 pub fn builder() -> Self {
10701 ProfileSummaryViewBuilder {
10702 _state: PhantomData,
10703 _fields: (None, None, None, None, None),
10704 _type: PhantomData,
10705 }
10706 }
10707}
10708
10709impl<St: profile_summary_view_state::State, S: BosStr> ProfileSummaryViewBuilder<St, S> {
10710 pub fn avatar(mut self, value: impl Into<Option<BlobRef<S>>>) -> Self {
10712 self._fields.0 = value.into();
10713 self
10714 }
10715 pub fn maybe_avatar(mut self, value: Option<BlobRef<S>>) -> Self {
10717 self._fields.0 = value;
10718 self
10719 }
10720}
10721
10722impl<St, S: BosStr> ProfileSummaryViewBuilder<St, S>
10723where
10724 St: profile_summary_view_state::State,
10725 St::Did: profile_summary_view_state::IsUnset,
10726{
10727 pub fn did(
10729 mut self,
10730 value: impl Into<Did<S>>,
10731 ) -> ProfileSummaryViewBuilder<profile_summary_view_state::SetDid<St>, S> {
10732 self._fields.1 = Option::Some(value.into());
10733 ProfileSummaryViewBuilder {
10734 _state: PhantomData,
10735 _fields: self._fields,
10736 _type: PhantomData,
10737 }
10738 }
10739}
10740
10741impl<St: profile_summary_view_state::State, S: BosStr> ProfileSummaryViewBuilder<St, S> {
10742 pub fn display_name(mut self, value: impl Into<Option<S>>) -> Self {
10744 self._fields.2 = value.into();
10745 self
10746 }
10747 pub fn maybe_display_name(mut self, value: Option<S>) -> Self {
10749 self._fields.2 = value;
10750 self
10751 }
10752}
10753
10754impl<St, S: BosStr> ProfileSummaryViewBuilder<St, S>
10755where
10756 St: profile_summary_view_state::State,
10757 St::ProfileType: profile_summary_view_state::IsUnset,
10758{
10759 pub fn profile_type(
10761 mut self,
10762 value: impl Into<ProfileSummaryViewProfileType<S>>,
10763 ) -> ProfileSummaryViewBuilder<profile_summary_view_state::SetProfileType<St>, S> {
10764 self._fields.3 = Option::Some(value.into());
10765 ProfileSummaryViewBuilder {
10766 _state: PhantomData,
10767 _fields: self._fields,
10768 _type: PhantomData,
10769 }
10770 }
10771}
10772
10773impl<St, S: BosStr> ProfileSummaryViewBuilder<St, S>
10774where
10775 St: profile_summary_view_state::State,
10776 St::Uri: profile_summary_view_state::IsUnset,
10777{
10778 pub fn uri(
10780 mut self,
10781 value: impl Into<AtUri<S>>,
10782 ) -> ProfileSummaryViewBuilder<profile_summary_view_state::SetUri<St>, S> {
10783 self._fields.4 = Option::Some(value.into());
10784 ProfileSummaryViewBuilder {
10785 _state: PhantomData,
10786 _fields: self._fields,
10787 _type: PhantomData,
10788 }
10789 }
10790}
10791
10792impl<St, S: BosStr> ProfileSummaryViewBuilder<St, S>
10793where
10794 St: profile_summary_view_state::State,
10795 St::Did: profile_summary_view_state::IsSet,
10796 St::ProfileType: profile_summary_view_state::IsSet,
10797 St::Uri: profile_summary_view_state::IsSet,
10798{
10799 pub fn build(self) -> ProfileSummaryView<S> {
10801 ProfileSummaryView {
10802 avatar: self._fields.0,
10803 did: self._fields.1.unwrap(),
10804 display_name: self._fields.2,
10805 profile_type: self._fields.3.unwrap(),
10806 uri: self._fields.4.unwrap(),
10807 extra_data: Default::default(),
10808 }
10809 }
10810 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> ProfileSummaryView<S> {
10812 ProfileSummaryView {
10813 avatar: self._fields.0,
10814 did: self._fields.1.unwrap(),
10815 display_name: self._fields.2,
10816 profile_type: self._fields.3.unwrap(),
10817 uri: self._fields.4.unwrap(),
10818 extra_data: Some(extra_data),
10819 }
10820 }
10821}
10822
10823pub mod signature_state {
10824
10825 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10826 #[allow(unused)]
10827 use ::core::marker::PhantomData;
10828 mod sealed {
10829 pub trait Sealed {}
10830 }
10831 pub trait State: sealed::Sealed {
10833 type Key;
10834 type Signature;
10835 }
10836 pub struct Empty(());
10838 impl sealed::Sealed for Empty {}
10839 impl State for Empty {
10840 type Key = Unset;
10841 type Signature = Unset;
10842 }
10843 pub struct SetKey<St: State = Empty>(PhantomData<fn() -> St>);
10845 impl<St: State> sealed::Sealed for SetKey<St> {}
10846 impl<St: State> State for SetKey<St> {
10847 type Key = Set<members::key>;
10848 type Signature = St::Signature;
10849 }
10850 pub struct SetSignature<St: State = Empty>(PhantomData<fn() -> St>);
10852 impl<St: State> sealed::Sealed for SetSignature<St> {}
10853 impl<St: State> State for SetSignature<St> {
10854 type Key = St::Key;
10855 type Signature = Set<members::signature>;
10856 }
10857 #[allow(non_camel_case_types)]
10859 pub mod members {
10860 pub struct key(());
10862 pub struct signature(());
10864 }
10865}
10866
10867pub struct SignatureBuilder<St: signature_state::State, S: BosStr = DefaultStr> {
10869 _state: PhantomData<fn() -> St>,
10870 _fields: (Option<S>, Option<Bytes>),
10871 _type: PhantomData<fn() -> S>,
10872}
10873
10874impl Signature<DefaultStr> {
10875 pub fn new() -> SignatureBuilder<signature_state::Empty, DefaultStr> {
10877 SignatureBuilder::new()
10878 }
10879}
10880
10881impl<S: BosStr> Signature<S> {
10882 pub fn builder() -> SignatureBuilder<signature_state::Empty, S> {
10884 SignatureBuilder::builder()
10885 }
10886}
10887
10888impl SignatureBuilder<signature_state::Empty, DefaultStr> {
10889 pub fn new() -> Self {
10891 SignatureBuilder {
10892 _state: PhantomData,
10893 _fields: (None, None),
10894 _type: PhantomData,
10895 }
10896 }
10897}
10898
10899impl<S: BosStr> SignatureBuilder<signature_state::Empty, S> {
10900 pub fn builder() -> Self {
10902 SignatureBuilder {
10903 _state: PhantomData,
10904 _fields: (None, None),
10905 _type: PhantomData,
10906 }
10907 }
10908}
10909
10910impl<St, S: BosStr> SignatureBuilder<St, S>
10911where
10912 St: signature_state::State,
10913 St::Key: signature_state::IsUnset,
10914{
10915 pub fn key(mut self, value: impl Into<S>) -> SignatureBuilder<signature_state::SetKey<St>, S> {
10917 self._fields.0 = Option::Some(value.into());
10918 SignatureBuilder {
10919 _state: PhantomData,
10920 _fields: self._fields,
10921 _type: PhantomData,
10922 }
10923 }
10924}
10925
10926impl<St, S: BosStr> SignatureBuilder<St, S>
10927where
10928 St: signature_state::State,
10929 St::Signature: signature_state::IsUnset,
10930{
10931 pub fn signature(
10933 mut self,
10934 value: impl Into<Bytes>,
10935 ) -> SignatureBuilder<signature_state::SetSignature<St>, S> {
10936 self._fields.1 = Option::Some(value.into());
10937 SignatureBuilder {
10938 _state: PhantomData,
10939 _fields: self._fields,
10940 _type: PhantomData,
10941 }
10942 }
10943}
10944
10945impl<St, S: BosStr> SignatureBuilder<St, S>
10946where
10947 St: signature_state::State,
10948 St::Key: signature_state::IsSet,
10949 St::Signature: signature_state::IsSet,
10950{
10951 pub fn build(self) -> Signature<S> {
10953 Signature {
10954 key: self._fields.0.unwrap(),
10955 signature: self._fields.1.unwrap(),
10956 extra_data: Default::default(),
10957 }
10958 }
10959 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> Signature<S> {
10961 Signature {
10962 key: self._fields.0.unwrap(),
10963 signature: self._fields.1.unwrap(),
10964 extra_data: Some(extra_data),
10965 }
10966 }
10967}
10968
10969pub mod skeleton_game_feed_item_state {
10970
10971 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
10972 #[allow(unused)]
10973 use ::core::marker::PhantomData;
10974 mod sealed {
10975 pub trait Sealed {}
10976 }
10977 pub trait State: sealed::Sealed {
10979 type Game;
10980 }
10981 pub struct Empty(());
10983 impl sealed::Sealed for Empty {}
10984 impl State for Empty {
10985 type Game = Unset;
10986 }
10987 pub struct SetGame<St: State = Empty>(PhantomData<fn() -> St>);
10989 impl<St: State> sealed::Sealed for SetGame<St> {}
10990 impl<St: State> State for SetGame<St> {
10991 type Game = Set<members::game>;
10992 }
10993 #[allow(non_camel_case_types)]
10995 pub mod members {
10996 pub struct game(());
10998 }
10999}
11000
11001pub struct SkeletonGameFeedItemBuilder<
11003 St: skeleton_game_feed_item_state::State,
11004 S: BosStr = DefaultStr,
11005> {
11006 _state: PhantomData<fn() -> St>,
11007 _fields: (Option<S>, Option<AtUri<S>>),
11008 _type: PhantomData<fn() -> S>,
11009}
11010
11011impl SkeletonGameFeedItem<DefaultStr> {
11012 pub fn new() -> SkeletonGameFeedItemBuilder<skeleton_game_feed_item_state::Empty, DefaultStr> {
11014 SkeletonGameFeedItemBuilder::new()
11015 }
11016}
11017
11018impl<S: BosStr> SkeletonGameFeedItem<S> {
11019 pub fn builder() -> SkeletonGameFeedItemBuilder<skeleton_game_feed_item_state::Empty, S> {
11021 SkeletonGameFeedItemBuilder::builder()
11022 }
11023}
11024
11025impl SkeletonGameFeedItemBuilder<skeleton_game_feed_item_state::Empty, DefaultStr> {
11026 pub fn new() -> Self {
11028 SkeletonGameFeedItemBuilder {
11029 _state: PhantomData,
11030 _fields: (None, None),
11031 _type: PhantomData,
11032 }
11033 }
11034}
11035
11036impl<S: BosStr> SkeletonGameFeedItemBuilder<skeleton_game_feed_item_state::Empty, S> {
11037 pub fn builder() -> Self {
11039 SkeletonGameFeedItemBuilder {
11040 _state: PhantomData,
11041 _fields: (None, None),
11042 _type: PhantomData,
11043 }
11044 }
11045}
11046
11047impl<St: skeleton_game_feed_item_state::State, S: BosStr> SkeletonGameFeedItemBuilder<St, S> {
11048 pub fn feed_context(mut self, value: impl Into<Option<S>>) -> Self {
11050 self._fields.0 = value.into();
11051 self
11052 }
11053 pub fn maybe_feed_context(mut self, value: Option<S>) -> Self {
11055 self._fields.0 = value;
11056 self
11057 }
11058}
11059
11060impl<St, S: BosStr> SkeletonGameFeedItemBuilder<St, S>
11061where
11062 St: skeleton_game_feed_item_state::State,
11063 St::Game: skeleton_game_feed_item_state::IsUnset,
11064{
11065 pub fn game(
11067 mut self,
11068 value: impl Into<AtUri<S>>,
11069 ) -> SkeletonGameFeedItemBuilder<skeleton_game_feed_item_state::SetGame<St>, S> {
11070 self._fields.1 = Option::Some(value.into());
11071 SkeletonGameFeedItemBuilder {
11072 _state: PhantomData,
11073 _fields: self._fields,
11074 _type: PhantomData,
11075 }
11076 }
11077}
11078
11079impl<St, S: BosStr> SkeletonGameFeedItemBuilder<St, S>
11080where
11081 St: skeleton_game_feed_item_state::State,
11082 St::Game: skeleton_game_feed_item_state::IsSet,
11083{
11084 pub fn build(self) -> SkeletonGameFeedItem<S> {
11086 SkeletonGameFeedItem {
11087 feed_context: self._fields.0,
11088 game: self._fields.1.unwrap(),
11089 extra_data: Default::default(),
11090 }
11091 }
11092 pub fn build_with_data(
11094 self,
11095 extra_data: BTreeMap<SmolStr, Data<S>>,
11096 ) -> SkeletonGameFeedItem<S> {
11097 SkeletonGameFeedItem {
11098 feed_context: self._fields.0,
11099 game: self._fields.1.unwrap(),
11100 extra_data: Some(extra_data),
11101 }
11102 }
11103}
11104
11105pub mod website_state {
11106
11107 pub use crate::builder_types::{IsSet, IsUnset, Set, Unset};
11108 #[allow(unused)]
11109 use ::core::marker::PhantomData;
11110 mod sealed {
11111 pub trait Sealed {}
11112 }
11113 pub trait State: sealed::Sealed {
11115 type Url;
11116 }
11117 pub struct Empty(());
11119 impl sealed::Sealed for Empty {}
11120 impl State for Empty {
11121 type Url = Unset;
11122 }
11123 pub struct SetUrl<St: State = Empty>(PhantomData<fn() -> St>);
11125 impl<St: State> sealed::Sealed for SetUrl<St> {}
11126 impl<St: State> State for SetUrl<St> {
11127 type Url = Set<members::url>;
11128 }
11129 #[allow(non_camel_case_types)]
11131 pub mod members {
11132 pub struct url(());
11134 }
11135}
11136
11137pub struct WebsiteBuilder<St: website_state::State, S: BosStr = DefaultStr> {
11139 _state: PhantomData<fn() -> St>,
11140 _fields: (Option<WebsiteType<S>>, Option<UriValue<S>>),
11141 _type: PhantomData<fn() -> S>,
11142}
11143
11144impl Website<DefaultStr> {
11145 pub fn new() -> WebsiteBuilder<website_state::Empty, DefaultStr> {
11147 WebsiteBuilder::new()
11148 }
11149}
11150
11151impl<S: BosStr> Website<S> {
11152 pub fn builder() -> WebsiteBuilder<website_state::Empty, S> {
11154 WebsiteBuilder::builder()
11155 }
11156}
11157
11158impl WebsiteBuilder<website_state::Empty, DefaultStr> {
11159 pub fn new() -> Self {
11161 WebsiteBuilder {
11162 _state: PhantomData,
11163 _fields: (None, None),
11164 _type: PhantomData,
11165 }
11166 }
11167}
11168
11169impl<S: BosStr> WebsiteBuilder<website_state::Empty, S> {
11170 pub fn builder() -> Self {
11172 WebsiteBuilder {
11173 _state: PhantomData,
11174 _fields: (None, None),
11175 _type: PhantomData,
11176 }
11177 }
11178}
11179
11180impl<St: website_state::State, S: BosStr> WebsiteBuilder<St, S> {
11181 pub fn r#type(mut self, value: impl Into<Option<WebsiteType<S>>>) -> Self {
11183 self._fields.0 = value.into();
11184 self
11185 }
11186 pub fn maybe_type(mut self, value: Option<WebsiteType<S>>) -> Self {
11188 self._fields.0 = value;
11189 self
11190 }
11191}
11192
11193impl<St, S: BosStr> WebsiteBuilder<St, S>
11194where
11195 St: website_state::State,
11196 St::Url: website_state::IsUnset,
11197{
11198 pub fn url(
11200 mut self,
11201 value: impl Into<UriValue<S>>,
11202 ) -> WebsiteBuilder<website_state::SetUrl<St>, S> {
11203 self._fields.1 = Option::Some(value.into());
11204 WebsiteBuilder {
11205 _state: PhantomData,
11206 _fields: self._fields,
11207 _type: PhantomData,
11208 }
11209 }
11210}
11211
11212impl<St, S: BosStr> WebsiteBuilder<St, S>
11213where
11214 St: website_state::State,
11215 St::Url: website_state::IsSet,
11216{
11217 pub fn build(self) -> Website<S> {
11219 Website {
11220 r#type: self._fields.0,
11221 url: self._fields.1.unwrap(),
11222 extra_data: Default::default(),
11223 }
11224 }
11225 pub fn build_with_data(self, extra_data: BTreeMap<SmolStr, Data<S>>) -> Website<S> {
11227 Website {
11228 r#type: self._fields.0,
11229 url: self._fields.1.unwrap(),
11230 extra_data: Some(extra_data),
11231 }
11232 }
11233}