Skip to main content

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}