pub mod iter;
pub mod r#trait;
use sealed::sealed;
use crate::{generatable::Generatable, maybe_borrowed::MaybeBorrowed, wrapper::GenerationWrapper};
pub struct RawAssert<'a, T>
where
T: Generatable<'a>,
{
pub template: MaybeBorrowed<'a, T>,
pub generics: Option<MaybeBorrowed<'a, syn::Generics>>,
pub assert: MaybeBorrowed<'a, T::Assert>,
}
#[sealed]
impl<'a, T> r#trait::RawAssertable<'a> for RawAssert<'a, T>
where
T: Generatable<'a> + Eq + Ord,
T::Assert: Eq + Ord,
{
fn do_raw_assert<I>(self, store: &mut crate::store::Store<'a, I>)
where
I: crate::ident_generator::IdentGenerator,
{
store
.generatables
.get_or_insert_default::<GenerationWrapper<'a, T>>()
.add_assert(self);
}
}