atrium_api/app/bsky/embed/
record_with_media.rs

1// @generated - This file is generated by atrium-codegen. DO NOT EDIT.
2//!Definitions for the `app.bsky.embed.recordWithMedia` namespace.
3//!A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card.
4#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5#[serde(rename_all = "camelCase")]
6pub struct MainData {
7    pub media: crate::types::Union<MainMediaRefs>,
8    pub record: crate::app::bsky::embed::record::Main,
9}
10pub type Main = crate::types::Object<MainData>;
11#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
12#[serde(rename_all = "camelCase")]
13pub struct ViewData {
14    pub media: crate::types::Union<ViewMediaRefs>,
15    pub record: crate::app::bsky::embed::record::View,
16}
17pub type View = crate::types::Object<ViewData>;
18#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
19#[serde(tag = "$type")]
20pub enum MainMediaRefs {
21    #[serde(rename = "app.bsky.embed.images")]
22    AppBskyEmbedImagesMain(Box<crate::app::bsky::embed::images::Main>),
23    #[serde(rename = "app.bsky.embed.video")]
24    AppBskyEmbedVideoMain(Box<crate::app::bsky::embed::video::Main>),
25    #[serde(rename = "app.bsky.embed.external")]
26    AppBskyEmbedExternalMain(Box<crate::app::bsky::embed::external::Main>),
27}
28#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
29#[serde(tag = "$type")]
30pub enum ViewMediaRefs {
31    #[serde(rename = "app.bsky.embed.images#view")]
32    AppBskyEmbedImagesView(Box<crate::app::bsky::embed::images::View>),
33    #[serde(rename = "app.bsky.embed.video#view")]
34    AppBskyEmbedVideoView(Box<crate::app::bsky::embed::video::View>),
35    #[serde(rename = "app.bsky.embed.external#view")]
36    AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>),
37}