Documentation
mod sealed {
    pub trait SealedYesOrNo {}
}

pub trait YesOrNo: sealed::SealedYesOrNo + Copy {
    const YES: bool;
}

#[derive(Clone, Copy)]
pub struct Yes;

#[derive(Clone, Copy)]
pub enum No {}

impl sealed::SealedYesOrNo for Yes {}
impl sealed::SealedYesOrNo for No {}

impl YesOrNo for Yes {
    const YES: bool = true;
}
impl YesOrNo for No {
    const YES: bool = false;
}