1#![cfg_attr(docsrs, feature(doc_cfg))]
5#![doc(html_favicon_url = "https://nil.dev.br/favicon.png")]
6
7mod big_int;
8mod ops;
9
10use proc_macro::TokenStream;
11use syn::DeriveInput;
12
13#[proc_macro_derive(BigIntU64)]
14pub fn derive_big_int_u64(input: TokenStream) -> TokenStream {
15 let ast = syn::parse::<DeriveInput>(input).unwrap();
16 big_int::impl_big_int_u64(&ast)
17}
18
19#[proc_macro_derive(BigIntUsize)]
20pub fn derive_big_int_usize(input: TokenStream) -> TokenStream {
21 let ast = syn::parse::<DeriveInput>(input).unwrap();
22 big_int::impl_big_int_usize(&ast)
23}
24
25#[proc_macro_derive(F64Ops)]
26pub fn derive_f64_ops(input: TokenStream) -> TokenStream {
27 let ast = syn::parse::<DeriveInput>(input).unwrap();
28 ops::impl_f64_ops(&ast)
29}
30
31#[proc_macro_derive(F64Add)]
32pub fn derive_f64_add(input: TokenStream) -> TokenStream {
33 let ast = syn::parse::<DeriveInput>(input).unwrap();
34 ops::impl_f64_add(&ast)
35}
36
37#[proc_macro_derive(F64Sub)]
38pub fn derive_f64_sub(input: TokenStream) -> TokenStream {
39 let ast = syn::parse::<DeriveInput>(input).unwrap();
40 ops::impl_f64_sub(&ast)
41}
42
43#[proc_macro_derive(F64Mul)]
44pub fn derive_f64_mul(input: TokenStream) -> TokenStream {
45 let ast = syn::parse::<DeriveInput>(input).unwrap();
46 ops::impl_f64_mul(&ast)
47}
48
49#[proc_macro_derive(F64Div)]
50pub fn derive_f64_div(input: TokenStream) -> TokenStream {
51 let ast = syn::parse::<DeriveInput>(input).unwrap();
52 ops::impl_f64_div(&ast)
53}