proc-macro-assertions 0.1.5

Easily create asserts on proc macro inputs
Documentation
use super::ident_generator::IdentGenerator;

/// The context passed to each generation stage of [`Generatable`](crate::generatable::Generatable) types
#[non_exhaustive]
pub struct Context<'ctx> {
    requires_nonconstant_code: bool,
    /// The ident generator used to generate unique idents across all templates.
    pub ident_generator: &'ctx mut dyn IdentGenerator,
}

impl<'ctx> Context<'ctx> {
    pub fn new(ident_generator: &mut dyn IdentGenerator) -> Context<'_> {
        Context {
            requires_nonconstant_code: false,
            ident_generator,
        }
    }
    pub fn set_require_nonconstant_code(&mut self) {
        self.requires_nonconstant_code = true;
    }

    #[must_use]
    pub const fn requires_nonconstant_code(&self) -> bool {
        self.requires_nonconstant_code
    }
}