1extern crate proc_macro;
7
8pub(crate) mod impl_binary;
9
10pub(crate) mod ast {
11 #[doc(inline)]
12 #[allow(unused_imports)]
13 pub use self::{ops::*, wrapper::*};
14
15 mod ops;
16 #[allow(dead_code)]
17 mod wrapper;
18}
19
20use crate::ast::WrapperOpsAst;
21use proc_macro::TokenStream;
22use syn::parse_macro_input;
23
24#[proc_macro]
27pub fn binary_wrapper(input: TokenStream) -> TokenStream {
28 let ast = parse_macro_input!(input as WrapperOpsAst);
29 let output = impl_binary::impl_wrapper_binary_ops(ast);
30 output.into()
31}