Skip to main content

singularize_macro/
lib.rs

1use proc_macro::TokenStream;
2use quote::{format_ident, quote};
3use singularize::singularize as singularize_;
4use syn::{Ident, parse_macro_input};
5
6#[proc_macro]
7pub fn singularize(input: TokenStream) -> TokenStream {
8  let plural = parse_macro_input!(input as Ident);
9  let singular = format_ident!(
10    "{}",
11    singularize_(&plural.to_string()),
12    span = plural.span()
13  );
14  quote! { #singular }.into()
15}