pub mod actor;
pub mod claim;
pub mod claim_review;
pub mod collection;
pub mod create_claim;
pub mod create_game;
pub mod engine;
pub mod feed;
pub mod game;
pub mod get_claim;
pub mod get_game;
pub mod get_profile;
pub mod get_reviews;
pub mod graph;
pub mod list_claims;
pub mod list_games;
pub mod list_org_games;
pub mod migrate_claim;
pub mod org;
pub mod platform;
pub mod platform_family;
pub mod put_game;
pub mod redirect;
pub mod review_claim;
pub mod richtext;
pub mod search;
pub mod search_profiles_typeahead;
pub mod search_slugs;
pub mod slug;
#[allow(unused_imports)]
use alloc::collections::BTreeMap;
#[allow(unused_imports)]
use core::marker::PhantomData;
use jacquard_common::CowStr;
#[allow(unused_imports)]
use jacquard_common::deps::codegen::unicode_segmentation::UnicodeSegmentation;
use jacquard_common::types::blob::BlobRef;
use jacquard_common::types::string::{Did, AtUri, Datetime, UriValue};
use jacquard_derive::{IntoStatic, lexicon};
use jacquard_lexicon::lexicon::LexiconDoc;
use jacquard_lexicon::schema::LexiconSchema;
#[allow(unused_imports)]
use jacquard_lexicon::validation::{ConstraintError, ValidationPath};
use serde::{Serialize, Deserialize};
use crate::app_bsky::richtext::facet::Facet;
use crate::games_gamesgamesgamesgames;
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct ActorCreditView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub actor_uri: Option<AtUri<'a>>,
#[serde(borrow)]
pub credits: Vec<games_gamesgamesgamesgames::CreditEntry<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct ActorProfileDetailView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub avatar: Option<BlobRef<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub description: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub description_facets: Option<Vec<Facet<'a>>>,
#[serde(borrow)]
pub did: Did<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub pronouns: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub websites: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct ActorProfileSummaryView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub avatar: Option<BlobRef<'a>>,
#[serde(borrow)]
pub did: Did<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct AgeRating<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub content_descriptors: Option<Vec<CowStr<'a>>>,
#[serde(borrow)]
pub organization: AgeRatingOrganization<'a>,
#[serde(borrow)]
pub rating: CowStr<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum AgeRatingOrganization<'a> {
Esrb,
Pegi,
Cero,
Usk,
Grac,
ClassInd,
Acb,
Other(CowStr<'a>),
}
impl<'a> AgeRatingOrganization<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Esrb => "esrb",
Self::Pegi => "pegi",
Self::Cero => "cero",
Self::Usk => "usk",
Self::Grac => "grac",
Self::ClassInd => "classInd",
Self::Acb => "acb",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for AgeRatingOrganization<'a> {
fn from(s: &'a str) -> Self {
match s {
"esrb" => Self::Esrb,
"pegi" => Self::Pegi,
"cero" => Self::Cero,
"usk" => Self::Usk,
"grac" => Self::Grac,
"classInd" => Self::ClassInd,
"acb" => Self::Acb,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for AgeRatingOrganization<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"esrb" => Self::Esrb,
"pegi" => Self::Pegi,
"cero" => Self::Cero,
"usk" => Self::Usk,
"grac" => Self::Grac,
"classInd" => Self::ClassInd,
"acb" => Self::Acb,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for AgeRatingOrganization<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for AgeRatingOrganization<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for AgeRatingOrganization<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for AgeRatingOrganization<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for AgeRatingOrganization<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for AgeRatingOrganization<'_> {
type Output = AgeRatingOrganization<'static>;
fn into_static(self) -> Self::Output {
match self {
AgeRatingOrganization::Esrb => AgeRatingOrganization::Esrb,
AgeRatingOrganization::Pegi => AgeRatingOrganization::Pegi,
AgeRatingOrganization::Cero => AgeRatingOrganization::Cero,
AgeRatingOrganization::Usk => AgeRatingOrganization::Usk,
AgeRatingOrganization::Grac => AgeRatingOrganization::Grac,
AgeRatingOrganization::ClassInd => AgeRatingOrganization::ClassInd,
AgeRatingOrganization::Acb => AgeRatingOrganization::Acb,
AgeRatingOrganization::Other(v) => {
AgeRatingOrganization::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct AlternativeName<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub comment: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub locale: Option<CowStr<'a>>,
#[serde(borrow)]
pub name: CowStr<'a>,
}
pub type ApplicationType<'a> = CowStr<'a>;
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct CollectionSummaryView<'a> {
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub r#type: Option<CollectionSummaryViewType<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum CollectionSummaryViewType<'a> {
Franchise,
Series,
Curated,
Other(CowStr<'a>),
}
impl<'a> CollectionSummaryViewType<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Franchise => "franchise",
Self::Series => "series",
Self::Curated => "curated",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for CollectionSummaryViewType<'a> {
fn from(s: &'a str) -> Self {
match s {
"franchise" => Self::Franchise,
"series" => Self::Series,
"curated" => Self::Curated,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for CollectionSummaryViewType<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"franchise" => Self::Franchise,
"series" => Self::Series,
"curated" => Self::Curated,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for CollectionSummaryViewType<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for CollectionSummaryViewType<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for CollectionSummaryViewType<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for CollectionSummaryViewType<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for CollectionSummaryViewType<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for CollectionSummaryViewType<'_> {
type Output = CollectionSummaryViewType<'static>;
fn into_static(self) -> Self::Output {
match self {
CollectionSummaryViewType::Franchise => CollectionSummaryViewType::Franchise,
CollectionSummaryViewType::Series => CollectionSummaryViewType::Series,
CollectionSummaryViewType::Curated => CollectionSummaryViewType::Curated,
CollectionSummaryViewType::Other(v) => {
CollectionSummaryViewType::Other(v.into_static())
}
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum CompanyRole<'a> {
Developer,
Publisher,
Porter,
Supporter,
Other(CowStr<'a>),
}
impl<'a> CompanyRole<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Developer => "developer",
Self::Publisher => "publisher",
Self::Porter => "porter",
Self::Supporter => "supporter",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for CompanyRole<'a> {
fn from(s: &'a str) -> Self {
match s {
"developer" => Self::Developer,
"publisher" => Self::Publisher,
"porter" => Self::Porter,
"supporter" => Self::Supporter,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for CompanyRole<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"developer" => Self::Developer,
"publisher" => Self::Publisher,
"porter" => Self::Porter,
"supporter" => Self::Supporter,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for CompanyRole<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for CompanyRole<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for CompanyRole<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for CompanyRole<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for CompanyRole<'_> {
type Output = CompanyRole<'static>;
fn into_static(self) -> Self::Output {
match self {
CompanyRole::Developer => CompanyRole::Developer,
CompanyRole::Publisher => CompanyRole::Publisher,
CompanyRole::Porter => CompanyRole::Porter,
CompanyRole::Supporter => CompanyRole::Supporter,
CompanyRole::Other(v) => CompanyRole::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct CreditEntry<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub department: Option<CowStr<'a>>,
#[serde(borrow)]
pub role: games_gamesgamesgamesgames::IndividualRole<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct EngineSummaryView<'a> {
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExternalIds<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub apple_app_store: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub epic_games: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub gog: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub google_play: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub humble_bundle: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub igdb: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub itch_io: Option<games_gamesgamesgamesgames::ItchIoId<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub nintendo_eshop: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub play_station: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub steam: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub twitch: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub xbox: Option<CowStr<'a>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExternalVideo<'a> {
#[serde(borrow)]
pub platform: ExternalVideoPlatform<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub title: Option<CowStr<'a>>,
#[serde(borrow)]
pub video_id: CowStr<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ExternalVideoPlatform<'a> {
Youtube,
Twitch,
Vimeo,
Other(CowStr<'a>),
}
impl<'a> ExternalVideoPlatform<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Youtube => "youtube",
Self::Twitch => "twitch",
Self::Vimeo => "vimeo",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for ExternalVideoPlatform<'a> {
fn from(s: &'a str) -> Self {
match s {
"youtube" => Self::Youtube,
"twitch" => Self::Twitch,
"vimeo" => Self::Vimeo,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for ExternalVideoPlatform<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"youtube" => Self::Youtube,
"twitch" => Self::Twitch,
"vimeo" => Self::Vimeo,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for ExternalVideoPlatform<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for ExternalVideoPlatform<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for ExternalVideoPlatform<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for ExternalVideoPlatform<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for ExternalVideoPlatform<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for ExternalVideoPlatform<'_> {
type Output = ExternalVideoPlatform<'static>;
fn into_static(self) -> Self::Output {
match self {
ExternalVideoPlatform::Youtube => ExternalVideoPlatform::Youtube,
ExternalVideoPlatform::Twitch => ExternalVideoPlatform::Twitch,
ExternalVideoPlatform::Vimeo => ExternalVideoPlatform::Vimeo,
ExternalVideoPlatform::Other(v) => {
ExternalVideoPlatform::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct GameDetailView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub actor_credits: Option<Vec<games_gamesgamesgamesgames::ActorCreditView<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub age_ratings: Option<Vec<games_gamesgamesgamesgames::AgeRating<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub alternative_names: Option<Vec<games_gamesgamesgamesgames::AlternativeName<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub application_type: Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub collections: Option<Vec<AtUri<'a>>>,
pub created_at: Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub engines: Option<Vec<AtUri<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub external_ids: Option<games_gamesgamesgamesgames::ExternalIds<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub genres: Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub keywords: Option<Vec<CowStr<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub language_supports: Option<Vec<games_gamesgamesgamesgames::LanguageSupport<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub modes: Option<Vec<games_gamesgamesgamesgames::Mode<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub multiplayer_modes: Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<'a>>>,
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub org_credits: Option<Vec<games_gamesgamesgamesgames::OrgCreditView<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub parent: Option<AtUri<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub player_perspectives: Option<
Vec<games_gamesgamesgamesgames::PlayerPerspective<'a>>,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub published_at: Option<Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub releases: Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub storyline: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub summary: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub themes: Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub time_to_beat: Option<games_gamesgamesgamesgames::TimeToBeat<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub videos: Option<Vec<games_gamesgamesgamesgames::ExternalVideo<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub websites: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct GameFeedViewItem<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub feed_context: Option<CowStr<'a>>,
#[serde(borrow)]
pub game: games_gamesgamesgamesgames::GameView<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct GameSummaryView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub application_type: Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_release_date: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub summary: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct GameView<'a> {
#[serde(borrow)]
pub application_type: games_gamesgamesgamesgames::ApplicationType<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub genres: Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub like_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub releases: Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub summary: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub themes: Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub viewer: Option<games_gamesgamesgamesgames::ViewerState<'a>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Genre<'a> {
Fighting,
Music,
Platform,
PointAndClick,
Puzzle,
Racing,
Rpg,
Rts,
Shooter,
Simulator,
Other(CowStr<'a>),
}
impl<'a> Genre<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Fighting => "fighting",
Self::Music => "music",
Self::Platform => "platform",
Self::PointAndClick => "pointAndClick",
Self::Puzzle => "puzzle",
Self::Racing => "racing",
Self::Rpg => "rpg",
Self::Rts => "rts",
Self::Shooter => "shooter",
Self::Simulator => "simulator",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for Genre<'a> {
fn from(s: &'a str) -> Self {
match s {
"fighting" => Self::Fighting,
"music" => Self::Music,
"platform" => Self::Platform,
"pointAndClick" => Self::PointAndClick,
"puzzle" => Self::Puzzle,
"racing" => Self::Racing,
"rpg" => Self::Rpg,
"rts" => Self::Rts,
"shooter" => Self::Shooter,
"simulator" => Self::Simulator,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for Genre<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"fighting" => Self::Fighting,
"music" => Self::Music,
"platform" => Self::Platform,
"pointAndClick" => Self::PointAndClick,
"puzzle" => Self::Puzzle,
"racing" => Self::Racing,
"rpg" => Self::Rpg,
"rts" => Self::Rts,
"shooter" => Self::Shooter,
"simulator" => Self::Simulator,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for Genre<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for Genre<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for Genre<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for Genre<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for Genre<'_> {
type Output = Genre<'static>;
fn into_static(self) -> Self::Output {
match self {
Genre::Fighting => Genre::Fighting,
Genre::Music => Genre::Music,
Genre::Platform => Genre::Platform,
Genre::PointAndClick => Genre::PointAndClick,
Genre::Puzzle => Genre::Puzzle,
Genre::Racing => Genre::Racing,
Genre::Rpg => Genre::Rpg,
Genre::Rts => Genre::Rts,
Genre::Shooter => Genre::Shooter,
Genre::Simulator => Genre::Simulator,
Genre::Other(v) => Genre::Other(v.into_static()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum IndividualRole<'a> {
Director,
Producer,
Designer,
Programmer,
Artist,
Animator,
Writer,
Composer,
SoundDesigner,
VoiceActor,
Qa,
Localization,
CommunityManager,
Marketing,
Other(CowStr<'a>),
}
impl<'a> IndividualRole<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Director => "director",
Self::Producer => "producer",
Self::Designer => "designer",
Self::Programmer => "programmer",
Self::Artist => "artist",
Self::Animator => "animator",
Self::Writer => "writer",
Self::Composer => "composer",
Self::SoundDesigner => "soundDesigner",
Self::VoiceActor => "voiceActor",
Self::Qa => "qa",
Self::Localization => "localization",
Self::CommunityManager => "communityManager",
Self::Marketing => "marketing",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for IndividualRole<'a> {
fn from(s: &'a str) -> Self {
match s {
"director" => Self::Director,
"producer" => Self::Producer,
"designer" => Self::Designer,
"programmer" => Self::Programmer,
"artist" => Self::Artist,
"animator" => Self::Animator,
"writer" => Self::Writer,
"composer" => Self::Composer,
"soundDesigner" => Self::SoundDesigner,
"voiceActor" => Self::VoiceActor,
"qa" => Self::Qa,
"localization" => Self::Localization,
"communityManager" => Self::CommunityManager,
"marketing" => Self::Marketing,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for IndividualRole<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"director" => Self::Director,
"producer" => Self::Producer,
"designer" => Self::Designer,
"programmer" => Self::Programmer,
"artist" => Self::Artist,
"animator" => Self::Animator,
"writer" => Self::Writer,
"composer" => Self::Composer,
"soundDesigner" => Self::SoundDesigner,
"voiceActor" => Self::VoiceActor,
"qa" => Self::Qa,
"localization" => Self::Localization,
"communityManager" => Self::CommunityManager,
"marketing" => Self::Marketing,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for IndividualRole<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for IndividualRole<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for IndividualRole<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for IndividualRole<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for IndividualRole<'_> {
type Output = IndividualRole<'static>;
fn into_static(self) -> Self::Output {
match self {
IndividualRole::Director => IndividualRole::Director,
IndividualRole::Producer => IndividualRole::Producer,
IndividualRole::Designer => IndividualRole::Designer,
IndividualRole::Programmer => IndividualRole::Programmer,
IndividualRole::Artist => IndividualRole::Artist,
IndividualRole::Animator => IndividualRole::Animator,
IndividualRole::Writer => IndividualRole::Writer,
IndividualRole::Composer => IndividualRole::Composer,
IndividualRole::SoundDesigner => IndividualRole::SoundDesigner,
IndividualRole::VoiceActor => IndividualRole::VoiceActor,
IndividualRole::Qa => IndividualRole::Qa,
IndividualRole::Localization => IndividualRole::Localization,
IndividualRole::CommunityManager => IndividualRole::CommunityManager,
IndividualRole::Marketing => IndividualRole::Marketing,
IndividualRole::Other(v) => IndividualRole::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct ItchIoId<'a> {
#[serde(borrow)]
pub developer: CowStr<'a>,
#[serde(borrow)]
pub game: CowStr<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct LanguageSupport<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub audio: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub interface: Option<bool>,
#[serde(borrow)]
pub language: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subtitles: Option<bool>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct MediaItem<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub blob: Option<BlobRef<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub description: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub locale: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media_type: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub title: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Mode<'a> {
BattleRoyale,
Cooperative,
Mmo,
Multiplayer,
SinglePlayer,
SplitScreen,
Other(CowStr<'a>),
}
impl<'a> Mode<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::BattleRoyale => "battleRoyale",
Self::Cooperative => "cooperative",
Self::Mmo => "mmo",
Self::Multiplayer => "multiplayer",
Self::SinglePlayer => "singlePlayer",
Self::SplitScreen => "splitScreen",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for Mode<'a> {
fn from(s: &'a str) -> Self {
match s {
"battleRoyale" => Self::BattleRoyale,
"cooperative" => Self::Cooperative,
"mmo" => Self::Mmo,
"multiplayer" => Self::Multiplayer,
"singlePlayer" => Self::SinglePlayer,
"splitScreen" => Self::SplitScreen,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for Mode<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"battleRoyale" => Self::BattleRoyale,
"cooperative" => Self::Cooperative,
"mmo" => Self::Mmo,
"multiplayer" => Self::Multiplayer,
"singlePlayer" => Self::SinglePlayer,
"splitScreen" => Self::SplitScreen,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for Mode<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for Mode<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for Mode<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for Mode<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for Mode<'_> {
type Output = Mode<'static>;
fn into_static(self) -> Self::Output {
match self {
Mode::BattleRoyale => Mode::BattleRoyale,
Mode::Cooperative => Mode::Cooperative,
Mode::Mmo => Mode::Mmo,
Mode::Multiplayer => Mode::Multiplayer,
Mode::SinglePlayer => Mode::SinglePlayer,
Mode::SplitScreen => Mode::SplitScreen,
Mode::Other(v) => Mode::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct MultiplayerMode<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub has_campaign_coop: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_drop_in: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_lan_coop: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_splitscreen: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_splitscreen_online: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offline_coop_max: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offline_max: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub online_coop_max: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub online_max: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub platform: Option<CowStr<'a>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct OrgCreditView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub org_uri: Option<AtUri<'a>>,
#[serde(borrow)]
pub roles: Vec<games_gamesgamesgamesgames::CompanyRole<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct OrgProfileDetailView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub avatar: Option<BlobRef<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub country: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub description: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub description_facets: Option<Vec<Facet<'a>>>,
#[serde(borrow)]
pub did: Did<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub founded_at: Option<Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub parent: Option<AtUri<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub status: Option<OrgProfileDetailViewStatus<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub websites: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum OrgProfileDetailViewStatus<'a> {
Active,
Inactive,
Merged,
Acquired,
Defunct,
Other(CowStr<'a>),
}
impl<'a> OrgProfileDetailViewStatus<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Inactive => "inactive",
Self::Merged => "merged",
Self::Acquired => "acquired",
Self::Defunct => "defunct",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for OrgProfileDetailViewStatus<'a> {
fn from(s: &'a str) -> Self {
match s {
"active" => Self::Active,
"inactive" => Self::Inactive,
"merged" => Self::Merged,
"acquired" => Self::Acquired,
"defunct" => Self::Defunct,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for OrgProfileDetailViewStatus<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"active" => Self::Active,
"inactive" => Self::Inactive,
"merged" => Self::Merged,
"acquired" => Self::Acquired,
"defunct" => Self::Defunct,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for OrgProfileDetailViewStatus<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for OrgProfileDetailViewStatus<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for OrgProfileDetailViewStatus<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for OrgProfileDetailViewStatus<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for OrgProfileDetailViewStatus<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for OrgProfileDetailViewStatus<'_> {
type Output = OrgProfileDetailViewStatus<'static>;
fn into_static(self) -> Self::Output {
match self {
OrgProfileDetailViewStatus::Active => OrgProfileDetailViewStatus::Active,
OrgProfileDetailViewStatus::Inactive => OrgProfileDetailViewStatus::Inactive,
OrgProfileDetailViewStatus::Merged => OrgProfileDetailViewStatus::Merged,
OrgProfileDetailViewStatus::Acquired => OrgProfileDetailViewStatus::Acquired,
OrgProfileDetailViewStatus::Defunct => OrgProfileDetailViewStatus::Defunct,
OrgProfileDetailViewStatus::Other(v) => {
OrgProfileDetailViewStatus::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct OrgProfileSummaryView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub avatar: Option<BlobRef<'a>>,
#[serde(borrow)]
pub did: Did<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum PlatformCategory<'a> {
Console,
Portable,
Computer,
Arcade,
OperatingSystem,
Other(CowStr<'a>),
}
impl<'a> PlatformCategory<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Console => "console",
Self::Portable => "portable",
Self::Computer => "computer",
Self::Arcade => "arcade",
Self::OperatingSystem => "operatingSystem",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for PlatformCategory<'a> {
fn from(s: &'a str) -> Self {
match s {
"console" => Self::Console,
"portable" => Self::Portable,
"computer" => Self::Computer,
"arcade" => Self::Arcade,
"operatingSystem" => Self::OperatingSystem,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for PlatformCategory<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"console" => Self::Console,
"portable" => Self::Portable,
"computer" => Self::Computer,
"arcade" => Self::Arcade,
"operatingSystem" => Self::OperatingSystem,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for PlatformCategory<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for PlatformCategory<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for PlatformCategory<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for PlatformCategory<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for PlatformCategory<'_> {
type Output = PlatformCategory<'static>;
fn into_static(self) -> Self::Output {
match self {
PlatformCategory::Console => PlatformCategory::Console,
PlatformCategory::Portable => PlatformCategory::Portable,
PlatformCategory::Computer => PlatformCategory::Computer,
PlatformCategory::Arcade => PlatformCategory::Arcade,
PlatformCategory::OperatingSystem => PlatformCategory::OperatingSystem,
PlatformCategory::Other(v) => PlatformCategory::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct PlatformFeatures<'a> {
#[serde(borrow)]
pub features: Vec<CowStr<'a>>,
#[serde(borrow)]
pub platform: PlatformFeaturesPlatform<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum PlatformFeaturesPlatform<'a> {
Steam,
Gog,
EpicGames,
PlayStation,
Xbox,
NintendoEshop,
Other(CowStr<'a>),
}
impl<'a> PlatformFeaturesPlatform<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Steam => "steam",
Self::Gog => "gog",
Self::EpicGames => "epicGames",
Self::PlayStation => "playStation",
Self::Xbox => "xbox",
Self::NintendoEshop => "nintendoEshop",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for PlatformFeaturesPlatform<'a> {
fn from(s: &'a str) -> Self {
match s {
"steam" => Self::Steam,
"gog" => Self::Gog,
"epicGames" => Self::EpicGames,
"playStation" => Self::PlayStation,
"xbox" => Self::Xbox,
"nintendoEshop" => Self::NintendoEshop,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for PlatformFeaturesPlatform<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"steam" => Self::Steam,
"gog" => Self::Gog,
"epicGames" => Self::EpicGames,
"playStation" => Self::PlayStation,
"xbox" => Self::Xbox,
"nintendoEshop" => Self::NintendoEshop,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for PlatformFeaturesPlatform<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for PlatformFeaturesPlatform<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for PlatformFeaturesPlatform<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for PlatformFeaturesPlatform<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for PlatformFeaturesPlatform<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for PlatformFeaturesPlatform<'_> {
type Output = PlatformFeaturesPlatform<'static>;
fn into_static(self) -> Self::Output {
match self {
PlatformFeaturesPlatform::Steam => PlatformFeaturesPlatform::Steam,
PlatformFeaturesPlatform::Gog => PlatformFeaturesPlatform::Gog,
PlatformFeaturesPlatform::EpicGames => PlatformFeaturesPlatform::EpicGames,
PlatformFeaturesPlatform::PlayStation => {
PlatformFeaturesPlatform::PlayStation
}
PlatformFeaturesPlatform::Xbox => PlatformFeaturesPlatform::Xbox,
PlatformFeaturesPlatform::NintendoEshop => {
PlatformFeaturesPlatform::NintendoEshop
}
PlatformFeaturesPlatform::Other(v) => {
PlatformFeaturesPlatform::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct PlatformSummaryView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub abbreviation: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub category: Option<games_gamesgamesgamesgames::PlatformCategory<'a>>,
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub slug: Option<CowStr<'a>>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct PlatformVersion<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub connectivity: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub cpu: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub gpu: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub max_resolution: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub media: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub memory: Option<CowStr<'a>>,
#[serde(borrow)]
pub name: CowStr<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub os: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub output: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub storage: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub summary: Option<CowStr<'a>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum PlayerPerspective<'a> {
Auditory,
FirstPerson,
Isometric,
SideView,
Text,
ThirdPerson,
TopDown,
Vr,
Other(CowStr<'a>),
}
impl<'a> PlayerPerspective<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Auditory => "auditory",
Self::FirstPerson => "firstPerson",
Self::Isometric => "isometric",
Self::SideView => "sideView",
Self::Text => "text",
Self::ThirdPerson => "thirdPerson",
Self::TopDown => "topDown",
Self::Vr => "vr",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for PlayerPerspective<'a> {
fn from(s: &'a str) -> Self {
match s {
"auditory" => Self::Auditory,
"firstPerson" => Self::FirstPerson,
"isometric" => Self::Isometric,
"sideView" => Self::SideView,
"text" => Self::Text,
"thirdPerson" => Self::ThirdPerson,
"topDown" => Self::TopDown,
"vr" => Self::Vr,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for PlayerPerspective<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"auditory" => Self::Auditory,
"firstPerson" => Self::FirstPerson,
"isometric" => Self::Isometric,
"sideView" => Self::SideView,
"text" => Self::Text,
"thirdPerson" => Self::ThirdPerson,
"topDown" => Self::TopDown,
"vr" => Self::Vr,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for PlayerPerspective<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for PlayerPerspective<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for PlayerPerspective<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for PlayerPerspective<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for PlayerPerspective<'_> {
type Output = PlayerPerspective<'static>;
fn into_static(self) -> Self::Output {
match self {
PlayerPerspective::Auditory => PlayerPerspective::Auditory,
PlayerPerspective::FirstPerson => PlayerPerspective::FirstPerson,
PlayerPerspective::Isometric => PlayerPerspective::Isometric,
PlayerPerspective::SideView => PlayerPerspective::SideView,
PlayerPerspective::Text => PlayerPerspective::Text,
PlayerPerspective::ThirdPerson => PlayerPerspective::ThirdPerson,
PlayerPerspective::TopDown => PlayerPerspective::TopDown,
PlayerPerspective::Vr => PlayerPerspective::Vr,
PlayerPerspective::Other(v) => PlayerPerspective::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct ProfileSummaryView<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub avatar: Option<BlobRef<'a>>,
#[serde(borrow)]
pub did: Did<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub display_name: Option<CowStr<'a>>,
#[serde(borrow)]
pub profile_type: ProfileSummaryViewProfileType<'a>,
#[serde(borrow)]
pub uri: AtUri<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ProfileSummaryViewProfileType<'a> {
Actor,
Org,
Other(CowStr<'a>),
}
impl<'a> ProfileSummaryViewProfileType<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Actor => "actor",
Self::Org => "org",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for ProfileSummaryViewProfileType<'a> {
fn from(s: &'a str) -> Self {
match s {
"actor" => Self::Actor,
"org" => Self::Org,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for ProfileSummaryViewProfileType<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"actor" => Self::Actor,
"org" => Self::Org,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for ProfileSummaryViewProfileType<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for ProfileSummaryViewProfileType<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for ProfileSummaryViewProfileType<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for ProfileSummaryViewProfileType<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for ProfileSummaryViewProfileType<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for ProfileSummaryViewProfileType<'_> {
type Output = ProfileSummaryViewProfileType<'static>;
fn into_static(self) -> Self::Output {
match self {
ProfileSummaryViewProfileType::Actor => ProfileSummaryViewProfileType::Actor,
ProfileSummaryViewProfileType::Org => ProfileSummaryViewProfileType::Org,
ProfileSummaryViewProfileType::Other(v) => {
ProfileSummaryViewProfileType::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct Release<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub platform: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub platform_uri: Option<AtUri<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub release_dates: Option<Vec<games_gamesgamesgamesgames::ReleaseDate<'a>>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct ReleaseDate<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub region: Option<ReleaseDateRegion<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub released_at: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub released_at_format: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub status: Option<ReleaseDateStatus<'a>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ReleaseDateRegion<'a> {
Worldwide,
Europe,
NorthAmerica,
Australia,
NewZealand,
Japan,
China,
Asia,
Korea,
Brazil,
Other(CowStr<'a>),
}
impl<'a> ReleaseDateRegion<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Worldwide => "worldwide",
Self::Europe => "europe",
Self::NorthAmerica => "northAmerica",
Self::Australia => "australia",
Self::NewZealand => "newZealand",
Self::Japan => "japan",
Self::China => "china",
Self::Asia => "asia",
Self::Korea => "korea",
Self::Brazil => "brazil",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for ReleaseDateRegion<'a> {
fn from(s: &'a str) -> Self {
match s {
"worldwide" => Self::Worldwide,
"europe" => Self::Europe,
"northAmerica" => Self::NorthAmerica,
"australia" => Self::Australia,
"newZealand" => Self::NewZealand,
"japan" => Self::Japan,
"china" => Self::China,
"asia" => Self::Asia,
"korea" => Self::Korea,
"brazil" => Self::Brazil,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for ReleaseDateRegion<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"worldwide" => Self::Worldwide,
"europe" => Self::Europe,
"northAmerica" => Self::NorthAmerica,
"australia" => Self::Australia,
"newZealand" => Self::NewZealand,
"japan" => Self::Japan,
"china" => Self::China,
"asia" => Self::Asia,
"korea" => Self::Korea,
"brazil" => Self::Brazil,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for ReleaseDateRegion<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for ReleaseDateRegion<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for ReleaseDateRegion<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for ReleaseDateRegion<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for ReleaseDateRegion<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for ReleaseDateRegion<'_> {
type Output = ReleaseDateRegion<'static>;
fn into_static(self) -> Self::Output {
match self {
ReleaseDateRegion::Worldwide => ReleaseDateRegion::Worldwide,
ReleaseDateRegion::Europe => ReleaseDateRegion::Europe,
ReleaseDateRegion::NorthAmerica => ReleaseDateRegion::NorthAmerica,
ReleaseDateRegion::Australia => ReleaseDateRegion::Australia,
ReleaseDateRegion::NewZealand => ReleaseDateRegion::NewZealand,
ReleaseDateRegion::Japan => ReleaseDateRegion::Japan,
ReleaseDateRegion::China => ReleaseDateRegion::China,
ReleaseDateRegion::Asia => ReleaseDateRegion::Asia,
ReleaseDateRegion::Korea => ReleaseDateRegion::Korea,
ReleaseDateRegion::Brazil => ReleaseDateRegion::Brazil,
ReleaseDateRegion::Other(v) => ReleaseDateRegion::Other(v.into_static()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum ReleaseDateStatus<'a> {
AdvancedAccess,
Alpha,
Beta,
Cancelled,
DigitalCompatibilityRelease,
EarlyAccess,
NextGenOptimizationRelease,
Offline,
Release,
Other(CowStr<'a>),
}
impl<'a> ReleaseDateStatus<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::AdvancedAccess => "advancedAccess",
Self::Alpha => "alpha",
Self::Beta => "beta",
Self::Cancelled => "cancelled",
Self::DigitalCompatibilityRelease => "digitalCompatibilityRelease",
Self::EarlyAccess => "earlyAccess",
Self::NextGenOptimizationRelease => "nextGenOptimizationRelease",
Self::Offline => "offline",
Self::Release => "release",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for ReleaseDateStatus<'a> {
fn from(s: &'a str) -> Self {
match s {
"advancedAccess" => Self::AdvancedAccess,
"alpha" => Self::Alpha,
"beta" => Self::Beta,
"cancelled" => Self::Cancelled,
"digitalCompatibilityRelease" => Self::DigitalCompatibilityRelease,
"earlyAccess" => Self::EarlyAccess,
"nextGenOptimizationRelease" => Self::NextGenOptimizationRelease,
"offline" => Self::Offline,
"release" => Self::Release,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for ReleaseDateStatus<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"advancedAccess" => Self::AdvancedAccess,
"alpha" => Self::Alpha,
"beta" => Self::Beta,
"cancelled" => Self::Cancelled,
"digitalCompatibilityRelease" => Self::DigitalCompatibilityRelease,
"earlyAccess" => Self::EarlyAccess,
"nextGenOptimizationRelease" => Self::NextGenOptimizationRelease,
"offline" => Self::Offline,
"release" => Self::Release,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for ReleaseDateStatus<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for ReleaseDateStatus<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for ReleaseDateStatus<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for ReleaseDateStatus<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for ReleaseDateStatus<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for ReleaseDateStatus<'_> {
type Output = ReleaseDateStatus<'static>;
fn into_static(self) -> Self::Output {
match self {
ReleaseDateStatus::AdvancedAccess => ReleaseDateStatus::AdvancedAccess,
ReleaseDateStatus::Alpha => ReleaseDateStatus::Alpha,
ReleaseDateStatus::Beta => ReleaseDateStatus::Beta,
ReleaseDateStatus::Cancelled => ReleaseDateStatus::Cancelled,
ReleaseDateStatus::DigitalCompatibilityRelease => {
ReleaseDateStatus::DigitalCompatibilityRelease
}
ReleaseDateStatus::EarlyAccess => ReleaseDateStatus::EarlyAccess,
ReleaseDateStatus::NextGenOptimizationRelease => {
ReleaseDateStatus::NextGenOptimizationRelease
}
ReleaseDateStatus::Offline => ReleaseDateStatus::Offline,
ReleaseDateStatus::Release => ReleaseDateStatus::Release,
ReleaseDateStatus::Other(v) => ReleaseDateStatus::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct SkeletonGameFeedItem<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub feed_context: Option<CowStr<'a>>,
#[serde(borrow)]
pub game: AtUri<'a>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct SystemRequirements<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub minimum: Option<games_gamesgamesgamesgames::SystemSpec<'a>>,
#[serde(borrow)]
pub platform: SystemRequirementsPlatform<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub recommended: Option<games_gamesgamesgamesgames::SystemSpec<'a>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum SystemRequirementsPlatform<'a> {
Windows,
Mac,
Linux,
Other(CowStr<'a>),
}
impl<'a> SystemRequirementsPlatform<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Windows => "windows",
Self::Mac => "mac",
Self::Linux => "linux",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for SystemRequirementsPlatform<'a> {
fn from(s: &'a str) -> Self {
match s {
"windows" => Self::Windows,
"mac" => Self::Mac,
"linux" => Self::Linux,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for SystemRequirementsPlatform<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"windows" => Self::Windows,
"mac" => Self::Mac,
"linux" => Self::Linux,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for SystemRequirementsPlatform<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for SystemRequirementsPlatform<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for SystemRequirementsPlatform<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for SystemRequirementsPlatform<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for SystemRequirementsPlatform<'a> {
fn default() -> Self {
Self::Other(Default::default())
}
}
impl jacquard_common::IntoStatic for SystemRequirementsPlatform<'_> {
type Output = SystemRequirementsPlatform<'static>;
fn into_static(self) -> Self::Output {
match self {
SystemRequirementsPlatform::Windows => SystemRequirementsPlatform::Windows,
SystemRequirementsPlatform::Mac => SystemRequirementsPlatform::Mac,
SystemRequirementsPlatform::Linux => SystemRequirementsPlatform::Linux,
SystemRequirementsPlatform::Other(v) => {
SystemRequirementsPlatform::Other(v.into_static())
}
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct SystemSpec<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub additional_notes: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub directx: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub graphics: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub memory: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub os: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub processor: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub sound_card: Option<CowStr<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub storage: Option<CowStr<'a>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Theme<'a> {
_4x,
Action,
Business,
Comedy,
Drama,
Educational,
Erotic,
Fantasy,
Historical,
Horror,
Kids,
Mystery,
Nonfiction,
OpenWorld,
Party,
Romance,
Sandbox,
Scifi,
Stealth,
Survival,
Thriller,
Warfare,
Other(CowStr<'a>),
}
impl<'a> Theme<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::_4x => "4x",
Self::Action => "action",
Self::Business => "business",
Self::Comedy => "comedy",
Self::Drama => "drama",
Self::Educational => "educational",
Self::Erotic => "erotic",
Self::Fantasy => "fantasy",
Self::Historical => "historical",
Self::Horror => "horror",
Self::Kids => "kids",
Self::Mystery => "mystery",
Self::Nonfiction => "nonfiction",
Self::OpenWorld => "openWorld",
Self::Party => "party",
Self::Romance => "romance",
Self::Sandbox => "sandbox",
Self::Scifi => "scifi",
Self::Stealth => "stealth",
Self::Survival => "survival",
Self::Thriller => "thriller",
Self::Warfare => "warfare",
Self::Other(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for Theme<'a> {
fn from(s: &'a str) -> Self {
match s {
"4x" => Self::_4x,
"action" => Self::Action,
"business" => Self::Business,
"comedy" => Self::Comedy,
"drama" => Self::Drama,
"educational" => Self::Educational,
"erotic" => Self::Erotic,
"fantasy" => Self::Fantasy,
"historical" => Self::Historical,
"horror" => Self::Horror,
"kids" => Self::Kids,
"mystery" => Self::Mystery,
"nonfiction" => Self::Nonfiction,
"openWorld" => Self::OpenWorld,
"party" => Self::Party,
"romance" => Self::Romance,
"sandbox" => Self::Sandbox,
"scifi" => Self::Scifi,
"stealth" => Self::Stealth,
"survival" => Self::Survival,
"thriller" => Self::Thriller,
"warfare" => Self::Warfare,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> From<String> for Theme<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"4x" => Self::_4x,
"action" => Self::Action,
"business" => Self::Business,
"comedy" => Self::Comedy,
"drama" => Self::Drama,
"educational" => Self::Educational,
"erotic" => Self::Erotic,
"fantasy" => Self::Fantasy,
"historical" => Self::Historical,
"horror" => Self::Horror,
"kids" => Self::Kids,
"mystery" => Self::Mystery,
"nonfiction" => Self::Nonfiction,
"openWorld" => Self::OpenWorld,
"party" => Self::Party,
"romance" => Self::Romance,
"sandbox" => Self::Sandbox,
"scifi" => Self::Scifi,
"stealth" => Self::Stealth,
"survival" => Self::Survival,
"thriller" => Self::Thriller,
"warfare" => Self::Warfare,
_ => Self::Other(CowStr::from(s)),
}
}
}
impl<'a> AsRef<str> for Theme<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> core::fmt::Display for Theme<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> serde::Serialize for Theme<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for Theme<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl jacquard_common::IntoStatic for Theme<'_> {
type Output = Theme<'static>;
fn into_static(self) -> Self::Output {
match self {
Theme::_4x => Theme::_4x,
Theme::Action => Theme::Action,
Theme::Business => Theme::Business,
Theme::Comedy => Theme::Comedy,
Theme::Drama => Theme::Drama,
Theme::Educational => Theme::Educational,
Theme::Erotic => Theme::Erotic,
Theme::Fantasy => Theme::Fantasy,
Theme::Historical => Theme::Historical,
Theme::Horror => Theme::Horror,
Theme::Kids => Theme::Kids,
Theme::Mystery => Theme::Mystery,
Theme::Nonfiction => Theme::Nonfiction,
Theme::OpenWorld => Theme::OpenWorld,
Theme::Party => Theme::Party,
Theme::Romance => Theme::Romance,
Theme::Sandbox => Theme::Sandbox,
Theme::Scifi => Theme::Scifi,
Theme::Stealth => Theme::Stealth,
Theme::Survival => Theme::Survival,
Theme::Thriller => Theme::Thriller,
Theme::Warfare => Theme::Warfare,
Theme::Other(v) => Theme::Other(v.into_static()),
}
}
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct TimeToBeat<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub completely: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hastily: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub normally: Option<i64>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
#[serde(rename_all = "camelCase")]
pub struct ViewerState<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub like: Option<AtUri<'a>>,
}
#[lexicon]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
#[serde(rename_all = "camelCase")]
pub struct Website<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(borrow)]
pub r#type: Option<WebsiteType<'a>>,
#[serde(borrow)]
pub url: UriValue<'a>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum WebsiteType<'a> {
Official,
Wiki,
Steam,
Gog,
EpicGames,
ItchIo,
Twitter,
Instagram,
Youtube,
Twitch,
Discord,
Reddit,
Facebook,
Wikipedia,
Bluesky,
Xbox,
Playstation,
Nintendo,
Meta,
Other,
UnknownValue(CowStr<'a>),
}
impl<'a> WebsiteType<'a> {
pub fn as_str(&self) -> &str {
match self {
Self::Official => "official",
Self::Wiki => "wiki",
Self::Steam => "steam",
Self::Gog => "gog",
Self::EpicGames => "epicGames",
Self::ItchIo => "itchIo",
Self::Twitter => "twitter",
Self::Instagram => "instagram",
Self::Youtube => "youtube",
Self::Twitch => "twitch",
Self::Discord => "discord",
Self::Reddit => "reddit",
Self::Facebook => "facebook",
Self::Wikipedia => "wikipedia",
Self::Bluesky => "bluesky",
Self::Xbox => "xbox",
Self::Playstation => "playstation",
Self::Nintendo => "nintendo",
Self::Meta => "meta",
Self::Other => "other",
Self::UnknownValue(s) => s.as_ref(),
}
}
}
impl<'a> From<&'a str> for WebsiteType<'a> {
fn from(s: &'a str) -> Self {
match s {
"official" => Self::Official,
"wiki" => Self::Wiki,
"steam" => Self::Steam,
"gog" => Self::Gog,
"epicGames" => Self::EpicGames,
"itchIo" => Self::ItchIo,
"twitter" => Self::Twitter,
"instagram" => Self::Instagram,
"youtube" => Self::Youtube,
"twitch" => Self::Twitch,
"discord" => Self::Discord,
"reddit" => Self::Reddit,
"facebook" => Self::Facebook,
"wikipedia" => Self::Wikipedia,
"bluesky" => Self::Bluesky,
"xbox" => Self::Xbox,
"playstation" => Self::Playstation,
"nintendo" => Self::Nintendo,
"meta" => Self::Meta,
"other" => Self::Other,
_ => Self::UnknownValue(CowStr::from(s)),
}
}
}
impl<'a> From<String> for WebsiteType<'a> {
fn from(s: String) -> Self {
match s.as_str() {
"official" => Self::Official,
"wiki" => Self::Wiki,
"steam" => Self::Steam,
"gog" => Self::Gog,
"epicGames" => Self::EpicGames,
"itchIo" => Self::ItchIo,
"twitter" => Self::Twitter,
"instagram" => Self::Instagram,
"youtube" => Self::Youtube,
"twitch" => Self::Twitch,
"discord" => Self::Discord,
"reddit" => Self::Reddit,
"facebook" => Self::Facebook,
"wikipedia" => Self::Wikipedia,
"bluesky" => Self::Bluesky,
"xbox" => Self::Xbox,
"playstation" => Self::Playstation,
"nintendo" => Self::Nintendo,
"meta" => Self::Meta,
"other" => Self::Other,
_ => Self::UnknownValue(CowStr::from(s)),
}
}
}
impl<'a> core::fmt::Display for WebsiteType<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}", self.as_str())
}
}
impl<'a> AsRef<str> for WebsiteType<'a> {
fn as_ref(&self) -> &str {
self.as_str()
}
}
impl<'a> serde::Serialize for WebsiteType<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de, 'a> serde::Deserialize<'de> for WebsiteType<'a>
where
'de: 'a,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = <&'de str>::deserialize(deserializer)?;
Ok(Self::from(s))
}
}
impl<'a> Default for WebsiteType<'a> {
fn default() -> Self {
Self::UnknownValue(Default::default())
}
}
impl jacquard_common::IntoStatic for WebsiteType<'_> {
type Output = WebsiteType<'static>;
fn into_static(self) -> Self::Output {
match self {
WebsiteType::Official => WebsiteType::Official,
WebsiteType::Wiki => WebsiteType::Wiki,
WebsiteType::Steam => WebsiteType::Steam,
WebsiteType::Gog => WebsiteType::Gog,
WebsiteType::EpicGames => WebsiteType::EpicGames,
WebsiteType::ItchIo => WebsiteType::ItchIo,
WebsiteType::Twitter => WebsiteType::Twitter,
WebsiteType::Instagram => WebsiteType::Instagram,
WebsiteType::Youtube => WebsiteType::Youtube,
WebsiteType::Twitch => WebsiteType::Twitch,
WebsiteType::Discord => WebsiteType::Discord,
WebsiteType::Reddit => WebsiteType::Reddit,
WebsiteType::Facebook => WebsiteType::Facebook,
WebsiteType::Wikipedia => WebsiteType::Wikipedia,
WebsiteType::Bluesky => WebsiteType::Bluesky,
WebsiteType::Xbox => WebsiteType::Xbox,
WebsiteType::Playstation => WebsiteType::Playstation,
WebsiteType::Nintendo => WebsiteType::Nintendo,
WebsiteType::Meta => WebsiteType::Meta,
WebsiteType::Other => WebsiteType::Other,
WebsiteType::UnknownValue(v) => WebsiteType::UnknownValue(v.into_static()),
}
}
}
impl<'a> LexiconSchema for ActorCreditView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"actorCreditView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for ActorProfileDetailView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"actorProfileDetailView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.avatar {
{
let size = value.blob().size;
if size > 10000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("avatar"),
max: 10000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.avatar {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/png", "image/jpeg"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("avatar"),
accepted: vec![
"image/png".to_string(), "image/jpeg".to_string()
],
actual: mime.to_string(),
});
}
}
}
if let Some(ref value) = self.description {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 3000usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("description"),
max: 3000usize,
actual: <str>::len(value.as_ref()),
});
}
}
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
if let Some(ref value) = self.pronouns {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 200usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("pronouns"),
max: 200usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for ActorProfileSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"actorProfileSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.avatar {
{
let size = value.blob().size;
if size > 10000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("avatar"),
max: 10000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.avatar {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/png", "image/jpeg"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("avatar"),
accepted: vec![
"image/png".to_string(), "image/jpeg".to_string()
],
actual: mime.to_string(),
});
}
}
}
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for AgeRating<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"ageRating"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for AlternativeName<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"alternativeName"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for CollectionSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"collectionSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for CreditEntry<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"creditEntry"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.department {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("department"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for EngineSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"engineSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for ExternalIds<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"externalIds"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for ExternalVideo<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"externalVideo"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for GameDetailView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"gameDetailView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for GameFeedViewItem<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"gameFeedViewItem"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.feed_context {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 2000usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("feed_context"),
max: 2000usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for GameSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"gameSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for GameView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"gameView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.like_count {
if *value < 0i64 {
return Err(ConstraintError::Minimum {
path: ValidationPath::from_field("like_count"),
min: 0i64,
actual: *value,
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for ItchIoId<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"itchIoId"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for LanguageSupport<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"languageSupport"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for MediaItem<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"mediaItem"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.blob {
{
let size = value.blob().size;
if size > 200000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("blob"),
max: 200000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.blob {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/*", "video/*"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("blob"),
accepted: vec!["image/*".to_string(), "video/*".to_string()],
actual: mime.to_string(),
});
}
}
}
Ok(())
}
}
impl<'a> LexiconSchema for MultiplayerMode<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"multiplayerMode"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for OrgCreditView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"orgCreditView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for OrgProfileDetailView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"orgProfileDetailView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.avatar {
{
let size = value.blob().size;
if size > 10000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("avatar"),
max: 10000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.avatar {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/png", "image/jpeg"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("avatar"),
accepted: vec![
"image/png".to_string(), "image/jpeg".to_string()
],
actual: mime.to_string(),
});
}
}
}
if let Some(ref value) = self.description {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 3000usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("description"),
max: 3000usize,
actual: <str>::len(value.as_ref()),
});
}
}
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for OrgProfileSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"orgProfileSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.avatar {
{
let size = value.blob().size;
if size > 10000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("avatar"),
max: 10000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.avatar {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/png", "image/jpeg"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("avatar"),
accepted: vec![
"image/png".to_string(), "image/jpeg".to_string()
],
actual: mime.to_string(),
});
}
}
}
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for PlatformFeatures<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"platformFeatures"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for PlatformSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"platformSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for PlatformVersion<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"platformVersion"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for ProfileSummaryView<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"profileSummaryView"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.avatar {
{
let size = value.blob().size;
if size > 10000000usize {
return Err(ConstraintError::BlobTooLarge {
path: ValidationPath::from_field("avatar"),
max: 10000000usize,
actual: size,
});
}
}
}
if let Some(ref value) = self.avatar {
{
let mime = value.blob().mime_type.as_str();
let accepted: &[&str] = &["image/png", "image/jpeg"];
let matched = accepted
.iter()
.any(|pattern| {
if *pattern == "*/*" {
true
} else if pattern.ends_with("/*") {
let prefix = &pattern[..pattern.len() - 2];
mime.starts_with(prefix)
&& mime.as_bytes().get(prefix.len()) == Some(&b'/')
} else {
mime == *pattern
}
});
if !matched {
return Err(ConstraintError::BlobMimeTypeNotAccepted {
path: ValidationPath::from_field("avatar"),
accepted: vec![
"image/png".to_string(), "image/jpeg".to_string()
],
actual: mime.to_string(),
});
}
}
}
if let Some(ref value) = self.display_name {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 640usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("display_name"),
max: 640usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for Release<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"release"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for ReleaseDate<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"releaseDate"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for SkeletonGameFeedItem<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"skeletonGameFeedItem"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
if let Some(ref value) = self.feed_context {
#[allow(unused_comparisons)]
if <str>::len(value.as_ref()) > 2000usize {
return Err(ConstraintError::MaxLength {
path: ValidationPath::from_field("feed_context"),
max: 2000usize,
actual: <str>::len(value.as_ref()),
});
}
}
Ok(())
}
}
impl<'a> LexiconSchema for SystemRequirements<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"systemRequirements"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for SystemSpec<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"systemSpec"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for TimeToBeat<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"timeToBeat"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for ViewerState<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"viewerState"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
impl<'a> LexiconSchema for Website<'a> {
fn nsid() -> &'static str {
"games.gamesgamesgamesgames.defs"
}
fn def_name() -> &'static str {
"website"
}
fn lexicon_doc() -> LexiconDoc<'static> {
lexicon_doc_games_gamesgamesgamesgames_defs()
}
fn validate(&self) -> Result<(), ConstraintError> {
Ok(())
}
}
pub mod actor_credit_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Credits;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Credits = Unset;
type Uri = Unset;
}
pub struct SetCredits<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetCredits<S> {}
impl<S: State> State for SetCredits<S> {
type Credits = Set<members::credits>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Credits = S::Credits;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct credits(());
pub struct uri(());
}
}
pub struct ActorCreditViewBuilder<'a, S: actor_credit_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::CreditEntry<'a>>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> ActorCreditView<'a> {
pub fn new() -> ActorCreditViewBuilder<'a, actor_credit_view_state::Empty> {
ActorCreditViewBuilder::new()
}
}
impl<'a> ActorCreditViewBuilder<'a, actor_credit_view_state::Empty> {
pub fn new() -> Self {
ActorCreditViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: actor_credit_view_state::State> ActorCreditViewBuilder<'a, S> {
pub fn actor_uri(mut self, value: impl Into<Option<AtUri<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_actor_uri(mut self, value: Option<AtUri<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> ActorCreditViewBuilder<'a, S>
where
S: actor_credit_view_state::State,
S::Credits: actor_credit_view_state::IsUnset,
{
pub fn credits(
mut self,
value: impl Into<Vec<games_gamesgamesgamesgames::CreditEntry<'a>>>,
) -> ActorCreditViewBuilder<'a, actor_credit_view_state::SetCredits<S>> {
self._fields.1 = Option::Some(value.into());
ActorCreditViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: actor_credit_view_state::State> ActorCreditViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> ActorCreditViewBuilder<'a, S>
where
S: actor_credit_view_state::State,
S::Uri: actor_credit_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> ActorCreditViewBuilder<'a, actor_credit_view_state::SetUri<S>> {
self._fields.3 = Option::Some(value.into());
ActorCreditViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> ActorCreditViewBuilder<'a, S>
where
S: actor_credit_view_state::State,
S::Credits: actor_credit_view_state::IsSet,
S::Uri: actor_credit_view_state::IsSet,
{
pub fn build(self) -> ActorCreditView<'a> {
ActorCreditView {
actor_uri: self._fields.0,
credits: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> ActorCreditView<'a> {
ActorCreditView {
actor_uri: self._fields.0,
credits: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Some(extra_data),
}
}
}
fn lexicon_doc_games_gamesgamesgamesgames_defs() -> LexiconDoc<'static> {
#[allow(unused_imports)]
use jacquard_common::{CowStr, deps::smol_str::SmolStr, types::blob::MimeType};
use jacquard_lexicon::lexicon::*;
use alloc::collections::BTreeMap;
LexiconDoc {
lexicon: Lexicon::Lexicon1,
id: CowStr::new_static("games.gamesgamesgamesgames.defs"),
defs: {
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("actorCreditView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("credits")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("actorUri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("credits"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#creditEntry",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("actorProfileDetailView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("did")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("avatar"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("createdAt"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Datetime),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("description"),
LexObjectProperty::String(LexString {
max_length: Some(3000usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("descriptionFacets"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static("app.bsky.richtext.facet"),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("did"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Did),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("pronouns"),
LexObjectProperty::String(LexString {
max_length: Some(200usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("websites"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#website",
),
..Default::default()
}),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("actorProfileSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("did")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("avatar"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("did"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Did),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("ageRating"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("organization"),
SmolStr::new_static("rating")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("contentDescriptors"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::String(LexString {
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("organization"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("rating"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("alternativeName"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("name")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("comment"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("locale"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("applicationType"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("collectionSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("name")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("type"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("companyRole"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("creditEntry"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("role")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("department"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("role"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#individualRole",
),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("engineSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("name")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("externalIds"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("appleAppStore"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("epicGames"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("gog"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("googlePlay"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("humbleBundle"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("igdb"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("itchIo"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#itchIoId",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("nintendoEshop"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("playStation"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("steam"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("twitch"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("xbox"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("externalVideo"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("videoId"),
SmolStr::new_static("platform")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("platform"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("title"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("videoId"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("gameDetailView"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("name"), SmolStr::new_static("uri"),
SmolStr::new_static("createdAt")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("actorCredits"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#actorCreditView",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("ageRatings"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#ageRating",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("alternativeNames"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#alternativeName",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("applicationType"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#applicationType",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("collections"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("createdAt"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Datetime),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("engines"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("externalIds"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#externalIds",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("genres"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#genre",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("keywords"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::String(LexString {
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("languageSupports"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#languageSupport",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("media"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mediaItem",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("modes"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mode",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("multiplayerModes"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#multiplayerMode",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("orgCredits"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#orgCreditView",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("parent"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("playerPerspectives"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#playerPerspective",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("publishedAt"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Datetime),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("releases"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#release",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("storyline"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("summary"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("themes"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#theme",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("timeToBeat"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#timeToBeat",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("videos"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#externalVideo",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("websites"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#website",
),
..Default::default()
}),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("gameFeedViewItem"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("game")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("feedContext"),
LexObjectProperty::String(LexString {
max_length: Some(2000usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("game"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#gameView",
),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("gameSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("name")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("applicationType"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#applicationType",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("firstReleaseDate"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("media"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mediaItem",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("summary"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("gameView"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("uri"), SmolStr::new_static("name"),
SmolStr::new_static("applicationType")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("applicationType"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#applicationType",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("genres"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#genre",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("likeCount"),
LexObjectProperty::Integer(LexInteger {
minimum: Some(0i64),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("media"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mediaItem",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("releases"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#release",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("summary"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("themes"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#theme",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("viewer"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#viewerState",
),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("genre"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("individualRole"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("itchIoId"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("developer"), SmolStr::new_static("game")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("developer"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("game"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("languageSupport"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("language")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("audio"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("interface"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("language"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("subtitles"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("mediaItem"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("blob"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("description"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("height"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("locale"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("mediaType"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("title"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("width"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("mode"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("multiplayerMode"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("hasCampaignCoop"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("hasDropIn"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("hasLanCoop"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("hasSplitscreen"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("hasSplitscreenOnline"),
LexObjectProperty::Boolean(LexBoolean {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("offlineCoopMax"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("offlineMax"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("onlineCoopMax"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("onlineMax"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platform"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("orgCreditView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("roles")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("orgUri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("roles"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#companyRole",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("orgProfileDetailView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("did")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("avatar"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("country"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("createdAt"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Datetime),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("description"),
LexObjectProperty::String(LexString {
max_length: Some(3000usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("descriptionFacets"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static("app.bsky.richtext.facet"),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("did"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Did),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("foundedAt"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Datetime),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("media"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mediaItem",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("parent"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("status"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("websites"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#website",
),
..Default::default()
}),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("orgProfileSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("did")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("avatar"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("did"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Did),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platformCategory"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("platformFeatures"),
LexUserType::Object(LexObject {
description: Some(
CowStr::new_static(
"Features supported by a game on a specific storefront/platform.",
),
),
required: Some(
vec![
SmolStr::new_static("platform"),
SmolStr::new_static("features")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("features"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::String(LexString {
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platform"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platformSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![SmolStr::new_static("uri"), SmolStr::new_static("name")],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("abbreviation"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("category"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#platformCategory",
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("slug"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platformVersion"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("name")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("connectivity"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("cpu"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("gpu"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("maxResolution"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("media"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#mediaItem",
),
..Default::default()
}),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("memory"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("name"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("os"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("output"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("storage"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("summary"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("playerPerspective"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("profileSummaryView"),
LexUserType::Object(LexObject {
required: Some(
vec![
SmolStr::new_static("uri"), SmolStr::new_static("did"),
SmolStr::new_static("profileType")
],
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("avatar"),
LexObjectProperty::Blob(LexBlob { ..Default::default() }),
);
map.insert(
SmolStr::new_static("did"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Did),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("displayName"),
LexObjectProperty::String(LexString {
max_length: Some(640usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("profileType"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("uri"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("release"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("platform"),
LexObjectProperty::String(LexString {
description: Some(
CowStr::new_static(
"Free-text platform name, used when no platform record exists.",
),
),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platformUri"),
LexObjectProperty::String(LexString {
description: Some(
CowStr::new_static("AT URI of a platform record."),
),
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("releaseDates"),
LexObjectProperty::Array(LexArray {
items: LexArrayItem::Ref(LexRef {
r#ref: CowStr::new_static(
"games.gamesgamesgamesgames.defs#releaseDate",
),
..Default::default()
}),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("releaseDate"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("region"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("releasedAt"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("releasedAtFormat"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("status"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("skeletonGameFeedItem"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("game")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("feedContext"),
LexObjectProperty::String(LexString {
max_length: Some(2000usize),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("game"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("systemRequirements"),
LexUserType::Object(LexObject {
description: Some(
CowStr::new_static(
"System requirements for a game on a specific platform.",
),
),
required: Some(vec![SmolStr::new_static("platform")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("minimum"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static("#systemSpec"),
..Default::default()
}),
);
map.insert(
SmolStr::new_static("platform"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("recommended"),
LexObjectProperty::Ref(LexRef {
r#ref: CowStr::new_static("#systemSpec"),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("systemSpec"),
LexUserType::Object(LexObject {
description: Some(
CowStr::new_static(
"Hardware/software specification for a platform.",
),
),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("additionalNotes"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("directx"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("graphics"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("memory"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("os"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("processor"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("soundCard"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("storage"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("theme"),
LexUserType::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("timeToBeat"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("completely"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("hastily"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map.insert(
SmolStr::new_static("normally"),
LexObjectProperty::Integer(LexInteger {
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("viewerState"),
LexUserType::Object(LexObject {
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("like"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::AtUri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map.insert(
SmolStr::new_static("website"),
LexUserType::Object(LexObject {
required: Some(vec![SmolStr::new_static("url")]),
properties: {
#[allow(unused_mut)]
let mut map = BTreeMap::new();
map.insert(
SmolStr::new_static("type"),
LexObjectProperty::String(LexString { ..Default::default() }),
);
map.insert(
SmolStr::new_static("url"),
LexObjectProperty::String(LexString {
format: Some(LexStringFormat::Uri),
..Default::default()
}),
);
map
},
..Default::default()
}),
);
map
},
..Default::default()
}
}
pub mod actor_profile_detail_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Uri;
type Did;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Uri = Unset;
type Did = Unset;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Uri = Set<members::uri>;
type Did = S::Did;
}
pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetDid<S> {}
impl<S: State> State for SetDid<S> {
type Uri = S::Uri;
type Did = Set<members::did>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct uri(());
pub struct did(());
}
}
pub struct ActorProfileDetailViewBuilder<'a, S: actor_profile_detail_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<BlobRef<'a>>,
Option<Datetime>,
Option<CowStr<'a>>,
Option<Vec<Facet<'a>>>,
Option<Did<'a>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> ActorProfileDetailView<'a> {
pub fn new() -> ActorProfileDetailViewBuilder<
'a,
actor_profile_detail_view_state::Empty,
> {
ActorProfileDetailViewBuilder::new()
}
}
impl<'a> ActorProfileDetailViewBuilder<'a, actor_profile_detail_view_state::Empty> {
pub fn new() -> Self {
ActorProfileDetailViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None, None, None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn avatar(mut self, value: impl Into<Option<BlobRef<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_avatar(mut self, value: Option<BlobRef<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
self._fields.1 = value;
self
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn description(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_description(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn description_facets(
mut self,
value: impl Into<Option<Vec<Facet<'a>>>>,
) -> Self {
self._fields.3 = value.into();
self
}
pub fn maybe_description_facets(mut self, value: Option<Vec<Facet<'a>>>) -> Self {
self._fields.3 = value;
self
}
}
impl<'a, S> ActorProfileDetailViewBuilder<'a, S>
where
S: actor_profile_detail_view_state::State,
S::Did: actor_profile_detail_view_state::IsUnset,
{
pub fn did(
mut self,
value: impl Into<Did<'a>>,
) -> ActorProfileDetailViewBuilder<'a, actor_profile_detail_view_state::SetDid<S>> {
self._fields.4 = Option::Some(value.into());
ActorProfileDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.5 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.5 = value;
self
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn pronouns(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.6 = value.into();
self
}
pub fn maybe_pronouns(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.6 = value;
self
}
}
impl<'a, S> ActorProfileDetailViewBuilder<'a, S>
where
S: actor_profile_detail_view_state::State,
S::Uri: actor_profile_detail_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> ActorProfileDetailViewBuilder<'a, actor_profile_detail_view_state::SetUri<S>> {
self._fields.7 = Option::Some(value.into());
ActorProfileDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<
'a,
S: actor_profile_detail_view_state::State,
> ActorProfileDetailViewBuilder<'a, S> {
pub fn websites(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<'a>>>>,
) -> Self {
self._fields.8 = value.into();
self
}
pub fn maybe_websites(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
) -> Self {
self._fields.8 = value;
self
}
}
impl<'a, S> ActorProfileDetailViewBuilder<'a, S>
where
S: actor_profile_detail_view_state::State,
S::Uri: actor_profile_detail_view_state::IsSet,
S::Did: actor_profile_detail_view_state::IsSet,
{
pub fn build(self) -> ActorProfileDetailView<'a> {
ActorProfileDetailView {
avatar: self._fields.0,
created_at: self._fields.1,
description: self._fields.2,
description_facets: self._fields.3,
did: self._fields.4.unwrap(),
display_name: self._fields.5,
pronouns: self._fields.6,
uri: self._fields.7.unwrap(),
websites: self._fields.8,
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> ActorProfileDetailView<'a> {
ActorProfileDetailView {
avatar: self._fields.0,
created_at: self._fields.1,
description: self._fields.2,
description_facets: self._fields.3,
did: self._fields.4.unwrap(),
display_name: self._fields.5,
pronouns: self._fields.6,
uri: self._fields.7.unwrap(),
websites: self._fields.8,
extra_data: Some(extra_data),
}
}
}
pub mod actor_profile_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Uri;
type Did;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Uri = Unset;
type Did = Unset;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Uri = Set<members::uri>;
type Did = S::Did;
}
pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetDid<S> {}
impl<S: State> State for SetDid<S> {
type Uri = S::Uri;
type Did = Set<members::did>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct uri(());
pub struct did(());
}
}
pub struct ActorProfileSummaryViewBuilder<
'a,
S: actor_profile_summary_view_state::State,
> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<BlobRef<'a>>,
Option<Did<'a>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> ActorProfileSummaryView<'a> {
pub fn new() -> ActorProfileSummaryViewBuilder<
'a,
actor_profile_summary_view_state::Empty,
> {
ActorProfileSummaryViewBuilder::new()
}
}
impl<'a> ActorProfileSummaryViewBuilder<'a, actor_profile_summary_view_state::Empty> {
pub fn new() -> Self {
ActorProfileSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<
'a,
S: actor_profile_summary_view_state::State,
> ActorProfileSummaryViewBuilder<'a, S> {
pub fn avatar(mut self, value: impl Into<Option<BlobRef<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_avatar(mut self, value: Option<BlobRef<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> ActorProfileSummaryViewBuilder<'a, S>
where
S: actor_profile_summary_view_state::State,
S::Did: actor_profile_summary_view_state::IsUnset,
{
pub fn did(
mut self,
value: impl Into<Did<'a>>,
) -> ActorProfileSummaryViewBuilder<
'a,
actor_profile_summary_view_state::SetDid<S>,
> {
self._fields.1 = Option::Some(value.into());
ActorProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<
'a,
S: actor_profile_summary_view_state::State,
> ActorProfileSummaryViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> ActorProfileSummaryViewBuilder<'a, S>
where
S: actor_profile_summary_view_state::State,
S::Uri: actor_profile_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> ActorProfileSummaryViewBuilder<
'a,
actor_profile_summary_view_state::SetUri<S>,
> {
self._fields.3 = Option::Some(value.into());
ActorProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> ActorProfileSummaryViewBuilder<'a, S>
where
S: actor_profile_summary_view_state::State,
S::Uri: actor_profile_summary_view_state::IsSet,
S::Did: actor_profile_summary_view_state::IsSet,
{
pub fn build(self) -> ActorProfileSummaryView<'a> {
ActorProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> ActorProfileSummaryView<'a> {
ActorProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod collection_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Uri;
type Name;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Uri = Unset;
type Name = Unset;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Uri = Set<members::uri>;
type Name = S::Name;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type Uri = S::Uri;
type Name = Set<members::name>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct uri(());
pub struct name(());
}
}
pub struct CollectionSummaryViewBuilder<'a, S: collection_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<CollectionSummaryViewType<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> CollectionSummaryView<'a> {
pub fn new() -> CollectionSummaryViewBuilder<
'a,
collection_summary_view_state::Empty,
> {
CollectionSummaryViewBuilder::new()
}
}
impl<'a> CollectionSummaryViewBuilder<'a, collection_summary_view_state::Empty> {
pub fn new() -> Self {
CollectionSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S> CollectionSummaryViewBuilder<'a, S>
where
S: collection_summary_view_state::State,
S::Name: collection_summary_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> CollectionSummaryViewBuilder<'a, collection_summary_view_state::SetName<S>> {
self._fields.0 = Option::Some(value.into());
CollectionSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: collection_summary_view_state::State> CollectionSummaryViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S: collection_summary_view_state::State> CollectionSummaryViewBuilder<'a, S> {
pub fn r#type(
mut self,
value: impl Into<Option<CollectionSummaryViewType<'a>>>,
) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_type(mut self, value: Option<CollectionSummaryViewType<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> CollectionSummaryViewBuilder<'a, S>
where
S: collection_summary_view_state::State,
S::Uri: collection_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> CollectionSummaryViewBuilder<'a, collection_summary_view_state::SetUri<S>> {
self._fields.3 = Option::Some(value.into());
CollectionSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> CollectionSummaryViewBuilder<'a, S>
where
S: collection_summary_view_state::State,
S::Uri: collection_summary_view_state::IsSet,
S::Name: collection_summary_view_state::IsSet,
{
pub fn build(self) -> CollectionSummaryView<'a> {
CollectionSummaryView {
name: self._fields.0.unwrap(),
slug: self._fields.1,
r#type: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> CollectionSummaryView<'a> {
CollectionSummaryView {
name: self._fields.0.unwrap(),
slug: self._fields.1,
r#type: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod credit_entry_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Role;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Role = Unset;
}
pub struct SetRole<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetRole<S> {}
impl<S: State> State for SetRole<S> {
type Role = Set<members::role>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct role(());
}
}
pub struct CreditEntryBuilder<'a, S: credit_entry_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<CowStr<'a>>,
Option<games_gamesgamesgamesgames::IndividualRole<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> CreditEntry<'a> {
pub fn new() -> CreditEntryBuilder<'a, credit_entry_state::Empty> {
CreditEntryBuilder::new()
}
}
impl<'a> CreditEntryBuilder<'a, credit_entry_state::Empty> {
pub fn new() -> Self {
CreditEntryBuilder {
_state: PhantomData,
_fields: (None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: credit_entry_state::State> CreditEntryBuilder<'a, S> {
pub fn department(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_department(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> CreditEntryBuilder<'a, S>
where
S: credit_entry_state::State,
S::Role: credit_entry_state::IsUnset,
{
pub fn role(
mut self,
value: impl Into<games_gamesgamesgamesgames::IndividualRole<'a>>,
) -> CreditEntryBuilder<'a, credit_entry_state::SetRole<S>> {
self._fields.1 = Option::Some(value.into());
CreditEntryBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> CreditEntryBuilder<'a, S>
where
S: credit_entry_state::State,
S::Role: credit_entry_state::IsSet,
{
pub fn build(self) -> CreditEntry<'a> {
CreditEntry {
department: self._fields.0,
role: self._fields.1.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> CreditEntry<'a> {
CreditEntry {
department: self._fields.0,
role: self._fields.1.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod engine_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Name;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Name = Unset;
type Uri = Unset;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type Name = Set<members::name>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Name = S::Name;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct name(());
pub struct uri(());
}
}
pub struct EngineSummaryViewBuilder<'a, S: engine_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (Option<CowStr<'a>>, Option<CowStr<'a>>, Option<AtUri<'a>>),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> EngineSummaryView<'a> {
pub fn new() -> EngineSummaryViewBuilder<'a, engine_summary_view_state::Empty> {
EngineSummaryViewBuilder::new()
}
}
impl<'a> EngineSummaryViewBuilder<'a, engine_summary_view_state::Empty> {
pub fn new() -> Self {
EngineSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S> EngineSummaryViewBuilder<'a, S>
where
S: engine_summary_view_state::State,
S::Name: engine_summary_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> EngineSummaryViewBuilder<'a, engine_summary_view_state::SetName<S>> {
self._fields.0 = Option::Some(value.into());
EngineSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: engine_summary_view_state::State> EngineSummaryViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S> EngineSummaryViewBuilder<'a, S>
where
S: engine_summary_view_state::State,
S::Uri: engine_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> EngineSummaryViewBuilder<'a, engine_summary_view_state::SetUri<S>> {
self._fields.2 = Option::Some(value.into());
EngineSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> EngineSummaryViewBuilder<'a, S>
where
S: engine_summary_view_state::State,
S::Name: engine_summary_view_state::IsSet,
S::Uri: engine_summary_view_state::IsSet,
{
pub fn build(self) -> EngineSummaryView<'a> {
EngineSummaryView {
name: self._fields.0.unwrap(),
slug: self._fields.1,
uri: self._fields.2.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> EngineSummaryView<'a> {
EngineSummaryView {
name: self._fields.0.unwrap(),
slug: self._fields.1,
uri: self._fields.2.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod game_detail_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Name;
type CreatedAt;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Name = Unset;
type CreatedAt = Unset;
type Uri = Unset;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type Name = Set<members::name>;
type CreatedAt = S::CreatedAt;
type Uri = S::Uri;
}
pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
impl<S: State> State for SetCreatedAt<S> {
type Name = S::Name;
type CreatedAt = Set<members::created_at>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Name = S::Name;
type CreatedAt = S::CreatedAt;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct name(());
pub struct created_at(());
pub struct uri(());
}
}
pub struct GameDetailViewBuilder<'a, S: game_detail_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<Vec<games_gamesgamesgamesgames::ActorCreditView<'a>>>,
Option<Vec<games_gamesgamesgamesgames::AgeRating<'a>>>,
Option<Vec<games_gamesgamesgamesgames::AlternativeName<'a>>>,
Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
Option<Vec<AtUri<'a>>>,
Option<Datetime>,
Option<Vec<AtUri<'a>>>,
Option<games_gamesgamesgamesgames::ExternalIds<'a>>,
Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
Option<Vec<CowStr<'a>>>,
Option<Vec<games_gamesgamesgamesgames::LanguageSupport<'a>>>,
Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
Option<Vec<games_gamesgamesgamesgames::Mode<'a>>>,
Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<'a>>>,
Option<CowStr<'a>>,
Option<Vec<games_gamesgamesgamesgames::OrgCreditView<'a>>>,
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<'a>>>,
Option<Datetime>,
Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
Option<games_gamesgamesgamesgames::TimeToBeat<'a>>,
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::ExternalVideo<'a>>>,
Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> GameDetailView<'a> {
pub fn new() -> GameDetailViewBuilder<'a, game_detail_view_state::Empty> {
GameDetailViewBuilder::new()
}
}
impl<'a> GameDetailViewBuilder<'a, game_detail_view_state::Empty> {
pub fn new() -> Self {
GameDetailViewBuilder {
_state: PhantomData,
_fields: (
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
),
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn actor_credits(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::ActorCreditView<'a>>>>,
) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_actor_credits(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::ActorCreditView<'a>>>,
) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn age_ratings(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::AgeRating<'a>>>>,
) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_age_ratings(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::AgeRating<'a>>>,
) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn alternative_names(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::AlternativeName<'a>>>>,
) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_alternative_names(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::AlternativeName<'a>>>,
) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn application_type(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::ApplicationType<'a>>>,
) -> Self {
self._fields.3 = value.into();
self
}
pub fn maybe_application_type(
mut self,
value: Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
) -> Self {
self._fields.3 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn collections(mut self, value: impl Into<Option<Vec<AtUri<'a>>>>) -> Self {
self._fields.4 = value.into();
self
}
pub fn maybe_collections(mut self, value: Option<Vec<AtUri<'a>>>) -> Self {
self._fields.4 = value;
self
}
}
impl<'a, S> GameDetailViewBuilder<'a, S>
where
S: game_detail_view_state::State,
S::CreatedAt: game_detail_view_state::IsUnset,
{
pub fn created_at(
mut self,
value: impl Into<Datetime>,
) -> GameDetailViewBuilder<'a, game_detail_view_state::SetCreatedAt<S>> {
self._fields.5 = Option::Some(value.into());
GameDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn engines(mut self, value: impl Into<Option<Vec<AtUri<'a>>>>) -> Self {
self._fields.6 = value.into();
self
}
pub fn maybe_engines(mut self, value: Option<Vec<AtUri<'a>>>) -> Self {
self._fields.6 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn external_ids(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::ExternalIds<'a>>>,
) -> Self {
self._fields.7 = value.into();
self
}
pub fn maybe_external_ids(
mut self,
value: Option<games_gamesgamesgamesgames::ExternalIds<'a>>,
) -> Self {
self._fields.7 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn genres(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>>,
) -> Self {
self._fields.8 = value.into();
self
}
pub fn maybe_genres(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
) -> Self {
self._fields.8 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn keywords(mut self, value: impl Into<Option<Vec<CowStr<'a>>>>) -> Self {
self._fields.9 = value.into();
self
}
pub fn maybe_keywords(mut self, value: Option<Vec<CowStr<'a>>>) -> Self {
self._fields.9 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn language_supports(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::LanguageSupport<'a>>>>,
) -> Self {
self._fields.10 = value.into();
self
}
pub fn maybe_language_supports(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::LanguageSupport<'a>>>,
) -> Self {
self._fields.10 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn media(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>>,
) -> Self {
self._fields.11 = value.into();
self
}
pub fn maybe_media(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
) -> Self {
self._fields.11 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn modes(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Mode<'a>>>>,
) -> Self {
self._fields.12 = value.into();
self
}
pub fn maybe_modes(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Mode<'a>>>,
) -> Self {
self._fields.12 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn multiplayer_modes(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<'a>>>>,
) -> Self {
self._fields.13 = value.into();
self
}
pub fn maybe_multiplayer_modes(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::MultiplayerMode<'a>>>,
) -> Self {
self._fields.13 = value;
self
}
}
impl<'a, S> GameDetailViewBuilder<'a, S>
where
S: game_detail_view_state::State,
S::Name: game_detail_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> GameDetailViewBuilder<'a, game_detail_view_state::SetName<S>> {
self._fields.14 = Option::Some(value.into());
GameDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn org_credits(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::OrgCreditView<'a>>>>,
) -> Self {
self._fields.15 = value.into();
self
}
pub fn maybe_org_credits(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::OrgCreditView<'a>>>,
) -> Self {
self._fields.15 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn parent(mut self, value: impl Into<Option<AtUri<'a>>>) -> Self {
self._fields.16 = value.into();
self
}
pub fn maybe_parent(mut self, value: Option<AtUri<'a>>) -> Self {
self._fields.16 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn player_perspectives(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<'a>>>>,
) -> Self {
self._fields.17 = value.into();
self
}
pub fn maybe_player_perspectives(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::PlayerPerspective<'a>>>,
) -> Self {
self._fields.17 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn published_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
self._fields.18 = value.into();
self
}
pub fn maybe_published_at(mut self, value: Option<Datetime>) -> Self {
self._fields.18 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn releases(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Release<'a>>>>,
) -> Self {
self._fields.19 = value.into();
self
}
pub fn maybe_releases(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
) -> Self {
self._fields.19 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.20 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.20 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn storyline(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.21 = value.into();
self
}
pub fn maybe_storyline(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.21 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn summary(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.22 = value.into();
self
}
pub fn maybe_summary(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.22 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn themes(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>>,
) -> Self {
self._fields.23 = value.into();
self
}
pub fn maybe_themes(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
) -> Self {
self._fields.23 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn time_to_beat(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::TimeToBeat<'a>>>,
) -> Self {
self._fields.24 = value.into();
self
}
pub fn maybe_time_to_beat(
mut self,
value: Option<games_gamesgamesgamesgames::TimeToBeat<'a>>,
) -> Self {
self._fields.24 = value;
self
}
}
impl<'a, S> GameDetailViewBuilder<'a, S>
where
S: game_detail_view_state::State,
S::Uri: game_detail_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> GameDetailViewBuilder<'a, game_detail_view_state::SetUri<S>> {
self._fields.25 = Option::Some(value.into());
GameDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn videos(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::ExternalVideo<'a>>>>,
) -> Self {
self._fields.26 = value.into();
self
}
pub fn maybe_videos(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::ExternalVideo<'a>>>,
) -> Self {
self._fields.26 = value;
self
}
}
impl<'a, S: game_detail_view_state::State> GameDetailViewBuilder<'a, S> {
pub fn websites(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<'a>>>>,
) -> Self {
self._fields.27 = value.into();
self
}
pub fn maybe_websites(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
) -> Self {
self._fields.27 = value;
self
}
}
impl<'a, S> GameDetailViewBuilder<'a, S>
where
S: game_detail_view_state::State,
S::Name: game_detail_view_state::IsSet,
S::CreatedAt: game_detail_view_state::IsSet,
S::Uri: game_detail_view_state::IsSet,
{
pub fn build(self) -> GameDetailView<'a> {
GameDetailView {
actor_credits: self._fields.0,
age_ratings: self._fields.1,
alternative_names: self._fields.2,
application_type: self._fields.3,
collections: self._fields.4,
created_at: self._fields.5.unwrap(),
engines: self._fields.6,
external_ids: self._fields.7,
genres: self._fields.8,
keywords: self._fields.9,
language_supports: self._fields.10,
media: self._fields.11,
modes: self._fields.12,
multiplayer_modes: self._fields.13,
name: self._fields.14.unwrap(),
org_credits: self._fields.15,
parent: self._fields.16,
player_perspectives: self._fields.17,
published_at: self._fields.18,
releases: self._fields.19,
slug: self._fields.20,
storyline: self._fields.21,
summary: self._fields.22,
themes: self._fields.23,
time_to_beat: self._fields.24,
uri: self._fields.25.unwrap(),
videos: self._fields.26,
websites: self._fields.27,
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> GameDetailView<'a> {
GameDetailView {
actor_credits: self._fields.0,
age_ratings: self._fields.1,
alternative_names: self._fields.2,
application_type: self._fields.3,
collections: self._fields.4,
created_at: self._fields.5.unwrap(),
engines: self._fields.6,
external_ids: self._fields.7,
genres: self._fields.8,
keywords: self._fields.9,
language_supports: self._fields.10,
media: self._fields.11,
modes: self._fields.12,
multiplayer_modes: self._fields.13,
name: self._fields.14.unwrap(),
org_credits: self._fields.15,
parent: self._fields.16,
player_perspectives: self._fields.17,
published_at: self._fields.18,
releases: self._fields.19,
slug: self._fields.20,
storyline: self._fields.21,
summary: self._fields.22,
themes: self._fields.23,
time_to_beat: self._fields.24,
uri: self._fields.25.unwrap(),
videos: self._fields.26,
websites: self._fields.27,
extra_data: Some(extra_data),
}
}
}
pub mod game_feed_view_item_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Game;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Game = Unset;
}
pub struct SetGame<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetGame<S> {}
impl<S: State> State for SetGame<S> {
type Game = Set<members::game>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct game(());
}
}
pub struct GameFeedViewItemBuilder<'a, S: game_feed_view_item_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (Option<CowStr<'a>>, Option<games_gamesgamesgamesgames::GameView<'a>>),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> GameFeedViewItem<'a> {
pub fn new() -> GameFeedViewItemBuilder<'a, game_feed_view_item_state::Empty> {
GameFeedViewItemBuilder::new()
}
}
impl<'a> GameFeedViewItemBuilder<'a, game_feed_view_item_state::Empty> {
pub fn new() -> Self {
GameFeedViewItemBuilder {
_state: PhantomData,
_fields: (None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_feed_view_item_state::State> GameFeedViewItemBuilder<'a, S> {
pub fn feed_context(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_feed_context(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> GameFeedViewItemBuilder<'a, S>
where
S: game_feed_view_item_state::State,
S::Game: game_feed_view_item_state::IsUnset,
{
pub fn game(
mut self,
value: impl Into<games_gamesgamesgamesgames::GameView<'a>>,
) -> GameFeedViewItemBuilder<'a, game_feed_view_item_state::SetGame<S>> {
self._fields.1 = Option::Some(value.into());
GameFeedViewItemBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> GameFeedViewItemBuilder<'a, S>
where
S: game_feed_view_item_state::State,
S::Game: game_feed_view_item_state::IsSet,
{
pub fn build(self) -> GameFeedViewItem<'a> {
GameFeedViewItem {
feed_context: self._fields.0,
game: self._fields.1.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> GameFeedViewItem<'a> {
GameFeedViewItem {
feed_context: self._fields.0,
game: self._fields.1.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod game_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Name;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Name = Unset;
type Uri = Unset;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type Name = Set<members::name>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Name = S::Name;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct name(());
pub struct uri(());
}
}
pub struct GameSummaryViewBuilder<'a, S: game_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
Option<i64>,
Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> GameSummaryView<'a> {
pub fn new() -> GameSummaryViewBuilder<'a, game_summary_view_state::Empty> {
GameSummaryViewBuilder::new()
}
}
impl<'a> GameSummaryViewBuilder<'a, game_summary_view_state::Empty> {
pub fn new() -> Self {
GameSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_summary_view_state::State> GameSummaryViewBuilder<'a, S> {
pub fn application_type(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::ApplicationType<'a>>>,
) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_application_type(
mut self,
value: Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S: game_summary_view_state::State> GameSummaryViewBuilder<'a, S> {
pub fn first_release_date(mut self, value: impl Into<Option<i64>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_first_release_date(mut self, value: Option<i64>) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S: game_summary_view_state::State> GameSummaryViewBuilder<'a, S> {
pub fn media(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>>,
) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_media(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> GameSummaryViewBuilder<'a, S>
where
S: game_summary_view_state::State,
S::Name: game_summary_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> GameSummaryViewBuilder<'a, game_summary_view_state::SetName<S>> {
self._fields.3 = Option::Some(value.into());
GameSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_summary_view_state::State> GameSummaryViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.4 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.4 = value;
self
}
}
impl<'a, S: game_summary_view_state::State> GameSummaryViewBuilder<'a, S> {
pub fn summary(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.5 = value.into();
self
}
pub fn maybe_summary(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.5 = value;
self
}
}
impl<'a, S> GameSummaryViewBuilder<'a, S>
where
S: game_summary_view_state::State,
S::Uri: game_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> GameSummaryViewBuilder<'a, game_summary_view_state::SetUri<S>> {
self._fields.6 = Option::Some(value.into());
GameSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> GameSummaryViewBuilder<'a, S>
where
S: game_summary_view_state::State,
S::Name: game_summary_view_state::IsSet,
S::Uri: game_summary_view_state::IsSet,
{
pub fn build(self) -> GameSummaryView<'a> {
GameSummaryView {
application_type: self._fields.0,
first_release_date: self._fields.1,
media: self._fields.2,
name: self._fields.3.unwrap(),
slug: self._fields.4,
summary: self._fields.5,
uri: self._fields.6.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> GameSummaryView<'a> {
GameSummaryView {
application_type: self._fields.0,
first_release_date: self._fields.1,
media: self._fields.2,
name: self._fields.3.unwrap(),
slug: self._fields.4,
summary: self._fields.5,
uri: self._fields.6.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod game_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type ApplicationType;
type Uri;
type Name;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type ApplicationType = Unset;
type Uri = Unset;
type Name = Unset;
}
pub struct SetApplicationType<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetApplicationType<S> {}
impl<S: State> State for SetApplicationType<S> {
type ApplicationType = Set<members::application_type>;
type Uri = S::Uri;
type Name = S::Name;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type ApplicationType = S::ApplicationType;
type Uri = Set<members::uri>;
type Name = S::Name;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type ApplicationType = S::ApplicationType;
type Uri = S::Uri;
type Name = Set<members::name>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct application_type(());
pub struct uri(());
pub struct name(());
}
}
pub struct GameViewBuilder<'a, S: game_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<games_gamesgamesgamesgames::ApplicationType<'a>>,
Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
Option<i64>,
Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
Option<CowStr<'a>>,
Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
Option<AtUri<'a>>,
Option<games_gamesgamesgamesgames::ViewerState<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> GameView<'a> {
pub fn new() -> GameViewBuilder<'a, game_view_state::Empty> {
GameViewBuilder::new()
}
}
impl<'a> GameViewBuilder<'a, game_view_state::Empty> {
pub fn new() -> Self {
GameViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None, None, None, None, None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S> GameViewBuilder<'a, S>
where
S: game_view_state::State,
S::ApplicationType: game_view_state::IsUnset,
{
pub fn application_type(
mut self,
value: impl Into<games_gamesgamesgamesgames::ApplicationType<'a>>,
) -> GameViewBuilder<'a, game_view_state::SetApplicationType<S>> {
self._fields.0 = Option::Some(value.into());
GameViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn genres(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>>,
) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_genres(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Genre<'a>>>,
) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn like_count(mut self, value: impl Into<Option<i64>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_like_count(mut self, value: Option<i64>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn media(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>>,
) -> Self {
self._fields.3 = value.into();
self
}
pub fn maybe_media(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
) -> Self {
self._fields.3 = value;
self
}
}
impl<'a, S> GameViewBuilder<'a, S>
where
S: game_view_state::State,
S::Name: game_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> GameViewBuilder<'a, game_view_state::SetName<S>> {
self._fields.4 = Option::Some(value.into());
GameViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn releases(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Release<'a>>>>,
) -> Self {
self._fields.5 = value.into();
self
}
pub fn maybe_releases(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Release<'a>>>,
) -> Self {
self._fields.5 = value;
self
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.6 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.6 = value;
self
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn summary(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.7 = value.into();
self
}
pub fn maybe_summary(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.7 = value;
self
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn themes(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>>,
) -> Self {
self._fields.8 = value.into();
self
}
pub fn maybe_themes(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Theme<'a>>>,
) -> Self {
self._fields.8 = value;
self
}
}
impl<'a, S> GameViewBuilder<'a, S>
where
S: game_view_state::State,
S::Uri: game_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> GameViewBuilder<'a, game_view_state::SetUri<S>> {
self._fields.9 = Option::Some(value.into());
GameViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: game_view_state::State> GameViewBuilder<'a, S> {
pub fn viewer(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::ViewerState<'a>>>,
) -> Self {
self._fields.10 = value.into();
self
}
pub fn maybe_viewer(
mut self,
value: Option<games_gamesgamesgamesgames::ViewerState<'a>>,
) -> Self {
self._fields.10 = value;
self
}
}
impl<'a, S> GameViewBuilder<'a, S>
where
S: game_view_state::State,
S::ApplicationType: game_view_state::IsSet,
S::Uri: game_view_state::IsSet,
S::Name: game_view_state::IsSet,
{
pub fn build(self) -> GameView<'a> {
GameView {
application_type: self._fields.0.unwrap(),
genres: self._fields.1,
like_count: self._fields.2,
media: self._fields.3,
name: self._fields.4.unwrap(),
releases: self._fields.5,
slug: self._fields.6,
summary: self._fields.7,
themes: self._fields.8,
uri: self._fields.9.unwrap(),
viewer: self._fields.10,
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> GameView<'a> {
GameView {
application_type: self._fields.0.unwrap(),
genres: self._fields.1,
like_count: self._fields.2,
media: self._fields.3,
name: self._fields.4.unwrap(),
releases: self._fields.5,
slug: self._fields.6,
summary: self._fields.7,
themes: self._fields.8,
uri: self._fields.9.unwrap(),
viewer: self._fields.10,
extra_data: Some(extra_data),
}
}
}
pub mod org_credit_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Uri;
type Roles;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Uri = Unset;
type Roles = Unset;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Uri = Set<members::uri>;
type Roles = S::Roles;
}
pub struct SetRoles<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetRoles<S> {}
impl<S: State> State for SetRoles<S> {
type Uri = S::Uri;
type Roles = Set<members::roles>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct uri(());
pub struct roles(());
}
}
pub struct OrgCreditViewBuilder<'a, S: org_credit_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<CowStr<'a>>,
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::CompanyRole<'a>>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> OrgCreditView<'a> {
pub fn new() -> OrgCreditViewBuilder<'a, org_credit_view_state::Empty> {
OrgCreditViewBuilder::new()
}
}
impl<'a> OrgCreditViewBuilder<'a, org_credit_view_state::Empty> {
pub fn new() -> Self {
OrgCreditViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_credit_view_state::State> OrgCreditViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S: org_credit_view_state::State> OrgCreditViewBuilder<'a, S> {
pub fn org_uri(mut self, value: impl Into<Option<AtUri<'a>>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_org_uri(mut self, value: Option<AtUri<'a>>) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S> OrgCreditViewBuilder<'a, S>
where
S: org_credit_view_state::State,
S::Roles: org_credit_view_state::IsUnset,
{
pub fn roles(
mut self,
value: impl Into<Vec<games_gamesgamesgamesgames::CompanyRole<'a>>>,
) -> OrgCreditViewBuilder<'a, org_credit_view_state::SetRoles<S>> {
self._fields.2 = Option::Some(value.into());
OrgCreditViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> OrgCreditViewBuilder<'a, S>
where
S: org_credit_view_state::State,
S::Uri: org_credit_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> OrgCreditViewBuilder<'a, org_credit_view_state::SetUri<S>> {
self._fields.3 = Option::Some(value.into());
OrgCreditViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> OrgCreditViewBuilder<'a, S>
where
S: org_credit_view_state::State,
S::Uri: org_credit_view_state::IsSet,
S::Roles: org_credit_view_state::IsSet,
{
pub fn build(self) -> OrgCreditView<'a> {
OrgCreditView {
display_name: self._fields.0,
org_uri: self._fields.1,
roles: self._fields.2.unwrap(),
uri: self._fields.3.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> OrgCreditView<'a> {
OrgCreditView {
display_name: self._fields.0,
org_uri: self._fields.1,
roles: self._fields.2.unwrap(),
uri: self._fields.3.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod org_profile_detail_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Did;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Did = Unset;
type Uri = Unset;
}
pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetDid<S> {}
impl<S: State> State for SetDid<S> {
type Did = Set<members::did>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Did = S::Did;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct did(());
pub struct uri(());
}
}
pub struct OrgProfileDetailViewBuilder<'a, S: org_profile_detail_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<BlobRef<'a>>,
Option<CowStr<'a>>,
Option<Datetime>,
Option<CowStr<'a>>,
Option<Vec<Facet<'a>>>,
Option<Did<'a>>,
Option<CowStr<'a>>,
Option<Datetime>,
Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
Option<AtUri<'a>>,
Option<OrgProfileDetailViewStatus<'a>>,
Option<AtUri<'a>>,
Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> OrgProfileDetailView<'a> {
pub fn new() -> OrgProfileDetailViewBuilder<
'a,
org_profile_detail_view_state::Empty,
> {
OrgProfileDetailViewBuilder::new()
}
}
impl<'a> OrgProfileDetailViewBuilder<'a, org_profile_detail_view_state::Empty> {
pub fn new() -> Self {
OrgProfileDetailViewBuilder {
_state: PhantomData,
_fields: (
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
None,
),
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn avatar(mut self, value: impl Into<Option<BlobRef<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_avatar(mut self, value: Option<BlobRef<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn country(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_country(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn description(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.3 = value.into();
self
}
pub fn maybe_description(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.3 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn description_facets(
mut self,
value: impl Into<Option<Vec<Facet<'a>>>>,
) -> Self {
self._fields.4 = value.into();
self
}
pub fn maybe_description_facets(mut self, value: Option<Vec<Facet<'a>>>) -> Self {
self._fields.4 = value;
self
}
}
impl<'a, S> OrgProfileDetailViewBuilder<'a, S>
where
S: org_profile_detail_view_state::State,
S::Did: org_profile_detail_view_state::IsUnset,
{
pub fn did(
mut self,
value: impl Into<Did<'a>>,
) -> OrgProfileDetailViewBuilder<'a, org_profile_detail_view_state::SetDid<S>> {
self._fields.5 = Option::Some(value.into());
OrgProfileDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.6 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.6 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn founded_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
self._fields.7 = value.into();
self
}
pub fn maybe_founded_at(mut self, value: Option<Datetime>) -> Self {
self._fields.7 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn media(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>>,
) -> Self {
self._fields.8 = value.into();
self
}
pub fn maybe_media(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::MediaItem<'a>>>,
) -> Self {
self._fields.8 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn parent(mut self, value: impl Into<Option<AtUri<'a>>>) -> Self {
self._fields.9 = value.into();
self
}
pub fn maybe_parent(mut self, value: Option<AtUri<'a>>) -> Self {
self._fields.9 = value;
self
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn status(
mut self,
value: impl Into<Option<OrgProfileDetailViewStatus<'a>>>,
) -> Self {
self._fields.10 = value.into();
self
}
pub fn maybe_status(
mut self,
value: Option<OrgProfileDetailViewStatus<'a>>,
) -> Self {
self._fields.10 = value;
self
}
}
impl<'a, S> OrgProfileDetailViewBuilder<'a, S>
where
S: org_profile_detail_view_state::State,
S::Uri: org_profile_detail_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> OrgProfileDetailViewBuilder<'a, org_profile_detail_view_state::SetUri<S>> {
self._fields.11 = Option::Some(value.into());
OrgProfileDetailViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_profile_detail_view_state::State> OrgProfileDetailViewBuilder<'a, S> {
pub fn websites(
mut self,
value: impl Into<Option<Vec<games_gamesgamesgamesgames::Website<'a>>>>,
) -> Self {
self._fields.12 = value.into();
self
}
pub fn maybe_websites(
mut self,
value: Option<Vec<games_gamesgamesgamesgames::Website<'a>>>,
) -> Self {
self._fields.12 = value;
self
}
}
impl<'a, S> OrgProfileDetailViewBuilder<'a, S>
where
S: org_profile_detail_view_state::State,
S::Did: org_profile_detail_view_state::IsSet,
S::Uri: org_profile_detail_view_state::IsSet,
{
pub fn build(self) -> OrgProfileDetailView<'a> {
OrgProfileDetailView {
avatar: self._fields.0,
country: self._fields.1,
created_at: self._fields.2,
description: self._fields.3,
description_facets: self._fields.4,
did: self._fields.5.unwrap(),
display_name: self._fields.6,
founded_at: self._fields.7,
media: self._fields.8,
parent: self._fields.9,
status: self._fields.10,
uri: self._fields.11.unwrap(),
websites: self._fields.12,
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> OrgProfileDetailView<'a> {
OrgProfileDetailView {
avatar: self._fields.0,
country: self._fields.1,
created_at: self._fields.2,
description: self._fields.3,
description_facets: self._fields.4,
did: self._fields.5.unwrap(),
display_name: self._fields.6,
founded_at: self._fields.7,
media: self._fields.8,
parent: self._fields.9,
status: self._fields.10,
uri: self._fields.11.unwrap(),
websites: self._fields.12,
extra_data: Some(extra_data),
}
}
}
pub mod org_profile_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Uri;
type Did;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Uri = Unset;
type Did = Unset;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Uri = Set<members::uri>;
type Did = S::Did;
}
pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetDid<S> {}
impl<S: State> State for SetDid<S> {
type Uri = S::Uri;
type Did = Set<members::did>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct uri(());
pub struct did(());
}
}
pub struct OrgProfileSummaryViewBuilder<'a, S: org_profile_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<BlobRef<'a>>,
Option<Did<'a>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> OrgProfileSummaryView<'a> {
pub fn new() -> OrgProfileSummaryViewBuilder<
'a,
org_profile_summary_view_state::Empty,
> {
OrgProfileSummaryViewBuilder::new()
}
}
impl<'a> OrgProfileSummaryViewBuilder<'a, org_profile_summary_view_state::Empty> {
pub fn new() -> Self {
OrgProfileSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_profile_summary_view_state::State> OrgProfileSummaryViewBuilder<'a, S> {
pub fn avatar(mut self, value: impl Into<Option<BlobRef<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_avatar(mut self, value: Option<BlobRef<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> OrgProfileSummaryViewBuilder<'a, S>
where
S: org_profile_summary_view_state::State,
S::Did: org_profile_summary_view_state::IsUnset,
{
pub fn did(
mut self,
value: impl Into<Did<'a>>,
) -> OrgProfileSummaryViewBuilder<'a, org_profile_summary_view_state::SetDid<S>> {
self._fields.1 = Option::Some(value.into());
OrgProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: org_profile_summary_view_state::State> OrgProfileSummaryViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> OrgProfileSummaryViewBuilder<'a, S>
where
S: org_profile_summary_view_state::State,
S::Uri: org_profile_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> OrgProfileSummaryViewBuilder<'a, org_profile_summary_view_state::SetUri<S>> {
self._fields.3 = Option::Some(value.into());
OrgProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> OrgProfileSummaryViewBuilder<'a, S>
where
S: org_profile_summary_view_state::State,
S::Uri: org_profile_summary_view_state::IsSet,
S::Did: org_profile_summary_view_state::IsSet,
{
pub fn build(self) -> OrgProfileSummaryView<'a> {
OrgProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> OrgProfileSummaryView<'a> {
OrgProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
uri: self._fields.3.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod platform_features_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Platform;
type Features;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Platform = Unset;
type Features = Unset;
}
pub struct SetPlatform<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetPlatform<S> {}
impl<S: State> State for SetPlatform<S> {
type Platform = Set<members::platform>;
type Features = S::Features;
}
pub struct SetFeatures<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetFeatures<S> {}
impl<S: State> State for SetFeatures<S> {
type Platform = S::Platform;
type Features = Set<members::features>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct platform(());
pub struct features(());
}
}
pub struct PlatformFeaturesBuilder<'a, S: platform_features_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (Option<Vec<CowStr<'a>>>, Option<PlatformFeaturesPlatform<'a>>),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> PlatformFeatures<'a> {
pub fn new() -> PlatformFeaturesBuilder<'a, platform_features_state::Empty> {
PlatformFeaturesBuilder::new()
}
}
impl<'a> PlatformFeaturesBuilder<'a, platform_features_state::Empty> {
pub fn new() -> Self {
PlatformFeaturesBuilder {
_state: PhantomData,
_fields: (None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S> PlatformFeaturesBuilder<'a, S>
where
S: platform_features_state::State,
S::Features: platform_features_state::IsUnset,
{
pub fn features(
mut self,
value: impl Into<Vec<CowStr<'a>>>,
) -> PlatformFeaturesBuilder<'a, platform_features_state::SetFeatures<S>> {
self._fields.0 = Option::Some(value.into());
PlatformFeaturesBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> PlatformFeaturesBuilder<'a, S>
where
S: platform_features_state::State,
S::Platform: platform_features_state::IsUnset,
{
pub fn platform(
mut self,
value: impl Into<PlatformFeaturesPlatform<'a>>,
) -> PlatformFeaturesBuilder<'a, platform_features_state::SetPlatform<S>> {
self._fields.1 = Option::Some(value.into());
PlatformFeaturesBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> PlatformFeaturesBuilder<'a, S>
where
S: platform_features_state::State,
S::Platform: platform_features_state::IsSet,
S::Features: platform_features_state::IsSet,
{
pub fn build(self) -> PlatformFeatures<'a> {
PlatformFeatures {
features: self._fields.0.unwrap(),
platform: self._fields.1.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> PlatformFeatures<'a> {
PlatformFeatures {
features: self._fields.0.unwrap(),
platform: self._fields.1.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod platform_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Name;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Name = Unset;
type Uri = Unset;
}
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetName<S> {}
impl<S: State> State for SetName<S> {
type Name = Set<members::name>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type Name = S::Name;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct name(());
pub struct uri(());
}
}
pub struct PlatformSummaryViewBuilder<'a, S: platform_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<CowStr<'a>>,
Option<games_gamesgamesgamesgames::PlatformCategory<'a>>,
Option<CowStr<'a>>,
Option<CowStr<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> PlatformSummaryView<'a> {
pub fn new() -> PlatformSummaryViewBuilder<'a, platform_summary_view_state::Empty> {
PlatformSummaryViewBuilder::new()
}
}
impl<'a> PlatformSummaryViewBuilder<'a, platform_summary_view_state::Empty> {
pub fn new() -> Self {
PlatformSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: platform_summary_view_state::State> PlatformSummaryViewBuilder<'a, S> {
pub fn abbreviation(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_abbreviation(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S: platform_summary_view_state::State> PlatformSummaryViewBuilder<'a, S> {
pub fn category(
mut self,
value: impl Into<Option<games_gamesgamesgamesgames::PlatformCategory<'a>>>,
) -> Self {
self._fields.1 = value.into();
self
}
pub fn maybe_category(
mut self,
value: Option<games_gamesgamesgamesgames::PlatformCategory<'a>>,
) -> Self {
self._fields.1 = value;
self
}
}
impl<'a, S> PlatformSummaryViewBuilder<'a, S>
where
S: platform_summary_view_state::State,
S::Name: platform_summary_view_state::IsUnset,
{
pub fn name(
mut self,
value: impl Into<CowStr<'a>>,
) -> PlatformSummaryViewBuilder<'a, platform_summary_view_state::SetName<S>> {
self._fields.2 = Option::Some(value.into());
PlatformSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: platform_summary_view_state::State> PlatformSummaryViewBuilder<'a, S> {
pub fn slug(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.3 = value.into();
self
}
pub fn maybe_slug(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.3 = value;
self
}
}
impl<'a, S> PlatformSummaryViewBuilder<'a, S>
where
S: platform_summary_view_state::State,
S::Uri: platform_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> PlatformSummaryViewBuilder<'a, platform_summary_view_state::SetUri<S>> {
self._fields.4 = Option::Some(value.into());
PlatformSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> PlatformSummaryViewBuilder<'a, S>
where
S: platform_summary_view_state::State,
S::Name: platform_summary_view_state::IsSet,
S::Uri: platform_summary_view_state::IsSet,
{
pub fn build(self) -> PlatformSummaryView<'a> {
PlatformSummaryView {
abbreviation: self._fields.0,
category: self._fields.1,
name: self._fields.2.unwrap(),
slug: self._fields.3,
uri: self._fields.4.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> PlatformSummaryView<'a> {
PlatformSummaryView {
abbreviation: self._fields.0,
category: self._fields.1,
name: self._fields.2.unwrap(),
slug: self._fields.3,
uri: self._fields.4.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod profile_summary_view_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type ProfileType;
type Did;
type Uri;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type ProfileType = Unset;
type Did = Unset;
type Uri = Unset;
}
pub struct SetProfileType<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetProfileType<S> {}
impl<S: State> State for SetProfileType<S> {
type ProfileType = Set<members::profile_type>;
type Did = S::Did;
type Uri = S::Uri;
}
pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetDid<S> {}
impl<S: State> State for SetDid<S> {
type ProfileType = S::ProfileType;
type Did = Set<members::did>;
type Uri = S::Uri;
}
pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUri<S> {}
impl<S: State> State for SetUri<S> {
type ProfileType = S::ProfileType;
type Did = S::Did;
type Uri = Set<members::uri>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct profile_type(());
pub struct did(());
pub struct uri(());
}
}
pub struct ProfileSummaryViewBuilder<'a, S: profile_summary_view_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (
Option<BlobRef<'a>>,
Option<Did<'a>>,
Option<CowStr<'a>>,
Option<ProfileSummaryViewProfileType<'a>>,
Option<AtUri<'a>>,
),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> ProfileSummaryView<'a> {
pub fn new() -> ProfileSummaryViewBuilder<'a, profile_summary_view_state::Empty> {
ProfileSummaryViewBuilder::new()
}
}
impl<'a> ProfileSummaryViewBuilder<'a, profile_summary_view_state::Empty> {
pub fn new() -> Self {
ProfileSummaryViewBuilder {
_state: PhantomData,
_fields: (None, None, None, None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: profile_summary_view_state::State> ProfileSummaryViewBuilder<'a, S> {
pub fn avatar(mut self, value: impl Into<Option<BlobRef<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_avatar(mut self, value: Option<BlobRef<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> ProfileSummaryViewBuilder<'a, S>
where
S: profile_summary_view_state::State,
S::Did: profile_summary_view_state::IsUnset,
{
pub fn did(
mut self,
value: impl Into<Did<'a>>,
) -> ProfileSummaryViewBuilder<'a, profile_summary_view_state::SetDid<S>> {
self._fields.1 = Option::Some(value.into());
ProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S: profile_summary_view_state::State> ProfileSummaryViewBuilder<'a, S> {
pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.2 = value.into();
self
}
pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.2 = value;
self
}
}
impl<'a, S> ProfileSummaryViewBuilder<'a, S>
where
S: profile_summary_view_state::State,
S::ProfileType: profile_summary_view_state::IsUnset,
{
pub fn profile_type(
mut self,
value: impl Into<ProfileSummaryViewProfileType<'a>>,
) -> ProfileSummaryViewBuilder<'a, profile_summary_view_state::SetProfileType<S>> {
self._fields.3 = Option::Some(value.into());
ProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> ProfileSummaryViewBuilder<'a, S>
where
S: profile_summary_view_state::State,
S::Uri: profile_summary_view_state::IsUnset,
{
pub fn uri(
mut self,
value: impl Into<AtUri<'a>>,
) -> ProfileSummaryViewBuilder<'a, profile_summary_view_state::SetUri<S>> {
self._fields.4 = Option::Some(value.into());
ProfileSummaryViewBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> ProfileSummaryViewBuilder<'a, S>
where
S: profile_summary_view_state::State,
S::ProfileType: profile_summary_view_state::IsSet,
S::Did: profile_summary_view_state::IsSet,
S::Uri: profile_summary_view_state::IsSet,
{
pub fn build(self) -> ProfileSummaryView<'a> {
ProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
profile_type: self._fields.3.unwrap(),
uri: self._fields.4.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> ProfileSummaryView<'a> {
ProfileSummaryView {
avatar: self._fields.0,
did: self._fields.1.unwrap(),
display_name: self._fields.2,
profile_type: self._fields.3.unwrap(),
uri: self._fields.4.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod skeleton_game_feed_item_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Game;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Game = Unset;
}
pub struct SetGame<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetGame<S> {}
impl<S: State> State for SetGame<S> {
type Game = Set<members::game>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct game(());
}
}
pub struct SkeletonGameFeedItemBuilder<'a, S: skeleton_game_feed_item_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (Option<CowStr<'a>>, Option<AtUri<'a>>),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> SkeletonGameFeedItem<'a> {
pub fn new() -> SkeletonGameFeedItemBuilder<
'a,
skeleton_game_feed_item_state::Empty,
> {
SkeletonGameFeedItemBuilder::new()
}
}
impl<'a> SkeletonGameFeedItemBuilder<'a, skeleton_game_feed_item_state::Empty> {
pub fn new() -> Self {
SkeletonGameFeedItemBuilder {
_state: PhantomData,
_fields: (None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: skeleton_game_feed_item_state::State> SkeletonGameFeedItemBuilder<'a, S> {
pub fn feed_context(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_feed_context(mut self, value: Option<CowStr<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> SkeletonGameFeedItemBuilder<'a, S>
where
S: skeleton_game_feed_item_state::State,
S::Game: skeleton_game_feed_item_state::IsUnset,
{
pub fn game(
mut self,
value: impl Into<AtUri<'a>>,
) -> SkeletonGameFeedItemBuilder<'a, skeleton_game_feed_item_state::SetGame<S>> {
self._fields.1 = Option::Some(value.into());
SkeletonGameFeedItemBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> SkeletonGameFeedItemBuilder<'a, S>
where
S: skeleton_game_feed_item_state::State,
S::Game: skeleton_game_feed_item_state::IsSet,
{
pub fn build(self) -> SkeletonGameFeedItem<'a> {
SkeletonGameFeedItem {
feed_context: self._fields.0,
game: self._fields.1.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> SkeletonGameFeedItem<'a> {
SkeletonGameFeedItem {
feed_context: self._fields.0,
game: self._fields.1.unwrap(),
extra_data: Some(extra_data),
}
}
}
pub mod website_state {
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
#[allow(unused)]
use ::core::marker::PhantomData;
mod sealed {
pub trait Sealed {}
}
pub trait State: sealed::Sealed {
type Url;
}
pub struct Empty(());
impl sealed::Sealed for Empty {}
impl State for Empty {
type Url = Unset;
}
pub struct SetUrl<S: State = Empty>(PhantomData<fn() -> S>);
impl<S: State> sealed::Sealed for SetUrl<S> {}
impl<S: State> State for SetUrl<S> {
type Url = Set<members::url>;
}
#[allow(non_camel_case_types)]
pub mod members {
pub struct url(());
}
}
pub struct WebsiteBuilder<'a, S: website_state::State> {
_state: PhantomData<fn() -> S>,
_fields: (Option<WebsiteType<'a>>, Option<UriValue<'a>>),
_lifetime: PhantomData<&'a ()>,
}
impl<'a> Website<'a> {
pub fn new() -> WebsiteBuilder<'a, website_state::Empty> {
WebsiteBuilder::new()
}
}
impl<'a> WebsiteBuilder<'a, website_state::Empty> {
pub fn new() -> Self {
WebsiteBuilder {
_state: PhantomData,
_fields: (None, None),
_lifetime: PhantomData,
}
}
}
impl<'a, S: website_state::State> WebsiteBuilder<'a, S> {
pub fn r#type(mut self, value: impl Into<Option<WebsiteType<'a>>>) -> Self {
self._fields.0 = value.into();
self
}
pub fn maybe_type(mut self, value: Option<WebsiteType<'a>>) -> Self {
self._fields.0 = value;
self
}
}
impl<'a, S> WebsiteBuilder<'a, S>
where
S: website_state::State,
S::Url: website_state::IsUnset,
{
pub fn url(
mut self,
value: impl Into<UriValue<'a>>,
) -> WebsiteBuilder<'a, website_state::SetUrl<S>> {
self._fields.1 = Option::Some(value.into());
WebsiteBuilder {
_state: PhantomData,
_fields: self._fields,
_lifetime: PhantomData,
}
}
}
impl<'a, S> WebsiteBuilder<'a, S>
where
S: website_state::State,
S::Url: website_state::IsSet,
{
pub fn build(self) -> Website<'a> {
Website {
r#type: self._fields.0,
url: self._fields.1.unwrap(),
extra_data: Default::default(),
}
}
pub fn build_with_data(
self,
extra_data: BTreeMap<
jacquard_common::deps::smol_str::SmolStr,
jacquard_common::types::value::Data<'a>,
>,
) -> Website<'a> {
Website {
r#type: self._fields.0,
url: self._fields.1.unwrap(),
extra_data: Some(extra_data),
}
}
}