#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
use crate::rules::runtime::ast::Rule;
use icu_provider::DataMarker;
use icu_provider::{yoke, zerofrom};
#[cfg(doc)]
use crate::PluralCategory;
#[icu_provider::data_struct(
CardinalV1Marker = "plurals/cardinal@1",
OrdinalV1Marker = "plurals/ordinal@1"
)]
#[derive(Default, Clone, PartialEq, Debug)]
#[cfg_attr(
feature = "datagen",
derive(serde::Serialize, databake::Bake),
databake(path = icu_plurals::provider),
)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct PluralRulesV1<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub zero: Option<Rule<'data>>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub one: Option<Rule<'data>>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub two: Option<Rule<'data>>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub few: Option<Rule<'data>>,
#[cfg_attr(feature = "serde", serde(borrow))]
pub many: Option<Rule<'data>>,
}
pub(crate) struct ErasedPluralRulesV1Marker;
impl DataMarker for ErasedPluralRulesV1Marker {
type Yokeable = PluralRulesV1<'static>;
}