Skip to main content

nil_util_macros/
lib.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4#![cfg_attr(docsrs, feature(doc_cfg))]
5#![doc(html_favicon_url = "https://nil.dev.br/favicon.png")]
6
7mod r#impl;
8
9use proc_macro::TokenStream;
10use syn::DeriveInput;
11
12#[proc_macro_derive(BigInt)]
13pub fn derive_big_int(input: TokenStream) -> TokenStream {
14  let ast = syn::parse::<DeriveInput>(input).unwrap();
15  r#impl::big_int::impl_big_int(&ast)
16}
17
18#[proc_macro_derive(ConstDeref)]
19pub fn derive_const_deref(input: TokenStream) -> TokenStream {
20  let ast = syn::parse::<DeriveInput>(input).unwrap();
21  r#impl::deref::impl_const_deref(&ast)
22}
23
24#[proc_macro_derive(F64Math)]
25pub fn derive_f64_math(input: TokenStream) -> TokenStream {
26  let ast = syn::parse::<DeriveInput>(input).unwrap();
27  r#impl::f64::impl_f64_math(&ast)
28}