use std::ops::Deref;
use proc_macro2::Ident as Ident2;
use crate::config::RendererFlags;
use crate::models::{code::IdentPath, data::DataTypes};
#[derive(Debug)]
pub struct MetaData<'types> {
pub types: &'types DataTypes<'types>,
pub flags: RendererFlags,
pub derive: Vec<IdentPath>,
pub dyn_type_traits: Vec<IdentPath>,
pub alloc_crate: Ident2,
pub xsd_parser_types: Ident2,
}
impl MetaData<'_> {
#[must_use]
pub fn check_renderer_flags(&self, flags: RendererFlags) -> bool {
self.flags.intersects(flags)
}
}
impl<'types> Deref for MetaData<'types> {
type Target = DataTypes<'types>;
fn deref(&self) -> &Self::Target {
self.types
}
}