use quote::quote_spanned;
use syn::{parse_macro_input, Error, Lit};
#[proc_macro]
pub fn utf32(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
match parse_macro_input!(input as Lit) {
Lit::Str(s) => {
let string = s.value();
let chars = string.chars();
quote_spanned!(s.span()=> &[#(#chars),*])
}
other => {
let message = "expected string literal";
Error::new_spanned(other, message).to_compile_error()
}
}
.into()
}