#![doc(
html_logo_url = "https://ardaku.github.io/mm/logo.svg",
html_favicon_url = "https://ardaku.github.io/mm/icon.svg",
html_root_url = "https://docs.rs/traitful"
)]
#![forbid(unsafe_code, missing_docs)]
#![warn(
anonymous_parameters,
missing_copy_implementations,
missing_debug_implementations,
nonstandard_style,
rust_2018_idioms,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unused_extern_crates,
unused_qualifications,
variant_size_differences
)]
mod common;
mod extend;
mod seal;
use proc_macro::TokenStream;
#[doc = include_str!("../examples/doc/meow.rs")]
#[doc = include_str!("../examples/doc/generics.rs")]
#[doc = include_str!("../examples/doc/maybe_generic.rs")]
#[proc_macro_attribute]
pub fn seal(attr: TokenStream, item: TokenStream) -> TokenStream {
self::common::unwrap(self::seal::seal(attr.into(), item.into()))
}
#[doc = include_str!("../examples/doc/duration.rs")]
#[doc = include_str!("../examples/doc/shuffle.rs")]
#[doc = include_str!("../examples/doc/iter_ext.rs")]
#[doc = include_str!("../examples/doc/infer.rs")]
#[proc_macro_attribute]
pub fn extend(attr: TokenStream, item: TokenStream) -> TokenStream {
self::common::unwrap(self::extend::extend(attr.into(), item.into()))
}