use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum VSlotStyle {
Uniform(VSlotUniformStyle),
ByPosition(VSlotStyleOptions),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum VSlotUniformStyle {
Shorthand,
Longform,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(default, rename_all = "camelCase", deny_unknown_fields)]
pub struct VSlotStyleOptions {
pub at_component: VSlotStyleValue,
#[serde(rename = "default")]
pub default_slot: VSlotStyleValue,
pub named: VSlotNamedStyle,
}
impl Default for VSlotStyleOptions {
fn default() -> Self {
Self {
at_component: VSlotStyleValue::VSlot,
default_slot: VSlotStyleValue::Shorthand,
named: VSlotNamedStyle::Shorthand,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum VSlotStyleValue {
Shorthand,
Longform,
VSlot,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum VSlotNamedStyle {
Shorthand,
Longform,
}