1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use sealed::sealed;

use crate::{ident_generator::IdentGenerator, store::Store};

/// Any type that is assertable by accessing the [`Store`](crate::prelude::Store) directly.
///
/// This is currently sealed to allow change in the actual store implementation, but may opened up
/// eventually.
///
/// For custom Asserts you should either implement [`Assertable`](crate::assertable::Assertable) for wrapper types, or
/// [`Generatable`](crate::generatable::Generatable) for new types of asserts.
#[sealed(pub(crate))]
pub trait RawAssertable<'a> {
    fn do_raw_assert<I>(self, store: &mut Store<'a, I>)
    where
        I: IdentGenerator;
}