#![ doc( html_logo_url = "https://raw.githubusercontent.com/Wandalen/wTools/master/asset/img/logo_v3_trans_square.png" ) ]
#![ doc( html_favicon_url = "https://raw.githubusercontent.com/Wandalen/wTools/alpha/asset/img/logo_v3_trans_square_icon_small_v2.ico" ) ]
#![ doc( html_root_url = "https://docs.rs/proc_macro_tools/latest/proc_macro_tools/" ) ]
#![ warn( rust_2018_idioms ) ]
#![ warn( missing_debug_implementations ) ]
#![ warn( missing_docs ) ]
// #![ feature( type_name_of_val ) ]
//!
//! Tools for writing procedural macroses.
//!
#![ doc = include_str!( concat!( env!( "CARGO_MANIFEST_DIR" ), "/", "Readme.md" ) ) ]
pub mod container_kind;
pub mod helper;
pub mod name;
pub mod quantifier;
pub mod syntax;
pub mod generic_analyze;
///
/// Dependencies of the module.
///
pub mod dependency
{
pub use ::syn;
pub use ::quote;
pub use ::proc_macro2;
pub use ::winterval;
pub use ::type_constructor;
}
#[ doc( inline ) ]
pub use protected::*;
/// Protected namespace of the module.
pub mod protected
{
#[ doc( inline ) ]
pub use super::orphan::*;
}
/// Parented namespace of the module.
pub mod orphan
{
#[ doc( inline ) ]
pub use super::exposed::*;
}
/// Exposed namespace of the module.
pub mod exposed
{
#[ doc( inline ) ]
pub use super::
{
prelude::*,
container_kind::exposed::*,
generic_analyze::exposed::*,
helper::exposed::*,
name::exposed::*,
// split_with_name::exposed::*,
quantifier::exposed::*,
syntax::exposed::*,
};
#[ doc( inline ) ]
pub use super::quantifier::
{
Pair,
Many,
};
}
/// Prelude to use essentials: `use my_module::prelude::*`.
pub mod prelude
{
#[ doc( inline ) ]
pub use ::winterval::prelude::*;
#[ doc( inline ) ]
pub use ::type_constructor::prelude::*;
#[ doc( inline ) ]
pub use ::syn;
#[ doc( inline ) ]
pub use ::proc_macro2;
#[ doc( inline ) ]
pub use ::quote;
#[ doc( inline ) ]
pub use ::quote::quote as qt;
#[ doc( inline ) ]
pub use ::syn::parse_quote as parse_qt;
#[ doc( inline ) ]
pub use syn::
{
parse::ParseStream,
Token,
braced,
bracketed,
custom_keyword,
custom_punctuation,
parenthesized,
parse_macro_input,
parse_quote,
parse_quote_spanned,
};
#[ doc( inline ) ]
pub use super::
{
container_kind::prelude::*,
generic_analyze::prelude::*,
helper::prelude::*,
name::prelude::*,
// split_with_name::prelude::*,
quantifier::prelude::*,
syntax::prelude::*,
};
}
// qqq : introduce features. make it smark. discuss list of features before implementing