1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
// Rust language amplification derive library providing multiple generic trait // implementations, type wrappers, derive macros and other language enhancements // // Written in 2019-2021 by // Dr. Maxim Orlovsky <orlovsky@pandoracore.com> // // To the extent possible under law, the author(s) have dedicated all // copyright and related and neighboring rights to this software to // the public domain worldwide. This software is distributed without // any warranty. // // You should have received a copy of the MIT License // along with this software. // If not, see <https://opensource.org/licenses/MIT>. //! Amplifying Rust language capabilities: helper functions for creating proc //! macro libraries //! //! # Examples //! //! `#[name]` - single form //! `#[name = "literal"]` - optional single value //! `#[name = TypeName]` - path value //! `#[name("literal", TypeName, arg = value)]` - list of arguments #![deny( non_upper_case_globals, non_camel_case_types, non_snake_case, unused_mut, unused_imports, missing_docs, dead_code, warnings )] #[macro_use] extern crate quote; mod attr; mod cls; mod error; mod req; mod val; pub use error::Error; pub use attr::{Attr, SingularAttr, ParametrizedAttr, ExtractAttr}; pub use cls::{LiteralClass, ValueClass, TypeClass}; pub use req::{ValueReq, ListReq, AttrReq, ArgValueReq}; pub use val::ArgValue;