#![doc(alias = "channel.bits")]
use super::{EventSubscription, EventType};
use crate::types;
use serde_derive::{Deserialize, Serialize};
pub mod r#use;
#[doc(inline)]
pub use r#use::{ChannelBitsUseV1, ChannelBitsUseV1Payload};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
#[serde(rename_all = "snake_case")]
pub enum BitsType {
Cheer,
PowerUp,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct BitsPowerUp {
#[serde(rename = "type")]
pub type_: BitsPowerUpType,
pub emote: Option<crate::eventsub::channel::chat::Emote>,
pub message_effect_id: Option<String>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
#[serde(rename_all = "snake_case")]
pub enum BitsPowerUpType {
MessageEffect,
Celebration,
GigantifyAnEmote,
#[serde(untagged)]
Unknown(String),
}