// This file is generated by atrium-codegen. DO NOT EDIT.
//!Definitions for the `app.bsky.embed.recordWithMedia` namespace.
//!A representation of a record embedded in another form of content, alongside other compatible embeds
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct Main {
    pub media: MainMediaEnum,
    pub record: crate::app::bsky::embed::record::Main,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct View {
    pub media: ViewMediaEnum,
    pub record: crate::app::bsky::embed::record::View,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum MainMediaEnum {
    #[serde(rename = "app.bsky.embed.images")]
    AppBskyEmbedImagesMain(Box<crate::app::bsky::embed::images::Main>),
    #[serde(rename = "app.bsky.embed.external")]
    AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ViewMediaEnum {
    #[serde(rename = "app.bsky.embed.images#view")]
    AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>),
    #[serde(rename = "app.bsky.embed.external#view")]
    AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>),
}
