#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct MainData {
pub external: External,
}
pub type Main = crate::types::Object<MainData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ColorRgbData {
pub b: u8,
pub g: u8,
pub r: u8,
}
pub type ColorRgb = crate::types::Object<ColorRgbData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ExternalData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub associated_refs: core::option::Option<
Vec<crate::com::atproto::repo::strong_ref::Main>,
>,
pub description: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub thumb: core::option::Option<crate::types::BlobRef>,
pub title: String,
pub uri: String,
}
pub type External = crate::types::Object<ExternalData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ViewData {
pub external: ViewExternal,
}
pub type View = crate::types::Object<ViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ViewExternalData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub associated_profiles: core::option::Option<
Vec<crate::app::bsky::actor::defs::ProfileViewBasic>,
>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub associated_refs: core::option::Option<
Vec<crate::com::atproto::repo::strong_ref::Main>,
>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub created_at: core::option::Option<crate::types::string::Datetime>,
pub description: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub reading_time: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub source: core::option::Option<ViewExternalSource>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub thumb: core::option::Option<String>,
pub title: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub updated_at: core::option::Option<crate::types::string::Datetime>,
pub uri: String,
}
pub type ViewExternal = crate::types::Object<ViewExternalData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ViewExternalSourceData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub description: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub icon: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub theme: core::option::Option<ViewExternalSourceTheme>,
pub title: String,
pub uri: String,
}
pub type ViewExternalSource = crate::types::Object<ViewExternalSourceData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ViewExternalSourceThemeData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub accent_foreground_rgb: core::option::Option<ColorRgb>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub accent_rgb: core::option::Option<ColorRgb>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub background_rgb: core::option::Option<ColorRgb>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub foreground_rgb: core::option::Option<ColorRgb>,
}
pub type ViewExternalSourceTheme = crate::types::Object<ViewExternalSourceThemeData>;