#![doc = include_str!("./Index.md")]
#![cfg_attr(feature = "safe", forbid(unsafe_code))]
#![cfg_attr(nightly_doc, feature(doc_cfg))]
#![cfg_attr(nightly_stable_later, feature(proc_macro_value))]
extern crate self as devela_macros;
macro_rules! __crate_name {
() => {
"devela_macros"
};
}
pub(crate) use __crate_name;
use proc_macro::TokenStream as TS;
use std::collections::HashSet;
mod bodies;
mod core_bridge;
use {bodies::*, core_bridge::*};
#[allow(unused_macros)] #[rustfmt::skip] macro_rules! items { ($($item:item)*) => { $($item)* }; }
items! { #[allow(unused_imports)] use items; }
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = doclink!(devela "[predicate]" "_doc/macros" @mod "#compilation-predicates")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/cif.rs"), "\n```")]
#[proc_macro] #[rustfmt::skip]
pub fn cif(input: TS) -> TS { body_cif(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = doclink!(devela "[predicate]" "_doc/macros" @mod "#compilation-predicates")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/compile.rs"), "\n```")]
#[proc_macro_attribute] #[rustfmt::skip]
pub fn compile(args: TS, input: TS) -> TS { body_compile(args, input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = doclink!(devela "[predicate]" "_doc/macros" @mod "#compilation-predicates")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/compile_attr.rs"), "\n```")]
#[proc_macro_attribute] #[rustfmt::skip]
pub fn compile_attr(args: TS, input: TS) -> TS { body_compile_attr(args, input) }
#[doc(hidden)]
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = doclink!(devela "[predicate]" "_doc/macros" @mod "#compilation-predicates")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/compile_doc.rs"), "\n```")]
#[proc_macro_attribute] #[rustfmt::skip]
pub fn compile_doc(args: TS, input: TS) -> TS { body_compile_doc(args, input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[proc_macro] #[rustfmt::skip]
pub fn ident_total(input: TS) -> TS { body_ident_total(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[proc_macro] #[rustfmt::skip]
pub fn ident_total_unique(input: TS) -> TS { body_ident_total_unique(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[proc_macro] #[rustfmt::skip]
pub fn ident_unique(input: TS) -> TS { body_ident_unique(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/coalesce.rs"), "\n```")]
#[proc_macro] #[rustfmt::skip]
pub fn coalesce(input: TS) -> TS { body_coalesce(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[proc_macro] #[rustfmt::skip]
pub fn field_of(input: TS) -> TS { body_field_of(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[proc_macro] #[rustfmt::skip]
pub fn repeat(input: TS) -> TS { body_repeat(input) }
#[doc = crate::_doc_location!(proc "code/util")]
#[doc = include_str!("docs/enumint.md")]
#[doc = concat!("# Example\n```\n", include_str!("../examples/enumint.rs"), "\n```")]
#[proc_macro] #[rustfmt::skip]
pub fn enumint(input: TS) -> TS { body_enumint(input) }