singularize-macro 0.1.0

Adds a simple `singularize!` macro that runs at compiletime
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use proc_macro::TokenStream;
use quote::{format_ident, quote};
use singularize::singularize as singularize_;
use syn::{Ident, parse_macro_input};

#[proc_macro]
pub fn singularize(input: TokenStream) -> TokenStream {
  let plural = parse_macro_input!(input as Ident);
  let singular = format_ident!(
    "{}",
    singularize_(&plural.to_string()),
    span = plural.span()
  );
  quote! { #singular }.into()
}