base64_literal/lib.rs
1extern crate proc_macro;
2
3use base64::Engine;
4use proc_macro::TokenStream;
5use syn::parse_macro_input;
6
7#[proc_macro]
8pub fn base64_literal(input: TokenStream) -> TokenStream {
9 let input = parse_macro_input!(input as syn::LitStr);
10 let bytes = base64::engine::general_purpose::STANDARD
11 .decode(input.value())
12 .unwrap();
13
14 let byte_array = quote::quote!([#(#bytes),*]);
15
16 byte_array.into()
17}