#[diagnostic::on_unimplemented(message = "Type must be `Clone + 'static` to be used as data")]
pub trait Data: Clone + 'static {}
impl<T: Clone + 'static> Data for T {}
pub trait MaybeData: Clone + 'static {}
impl<T: Clone + 'static> MaybeData for T {}
#[derive(Clone, Debug)]
pub struct NoData;