protospec_build/prelude/
base64.rs

1use super::*;
2
3pub struct Base64Transform;
4
5impl ForeignTransform for Base64Transform {
6    fn decoding_gen(
7        &self,
8        input_stream: TokenStream,
9        _arguments: Vec<TokenStream>,
10        is_async: bool,
11    ) -> TokenStream {
12        if is_async {
13            panic!("base64 async not implemented");
14        }
15        quote! {
16            {
17                base64::read::DecoderReader::new(#input_stream, base64::STANDARD)
18            }
19        }
20    }
21
22    fn encoding_gen(
23        &self,
24        input_stream: TokenStream,
25        _arguments: Vec<TokenStream>,
26        is_async: bool,
27    ) -> TokenStream {
28        if is_async {
29            panic!("base64 async not implemented");
30        }
31        quote! {
32            base64::write::EncoderWriter::new(#input_stream, base64::STANDARD)
33        }
34    }
35
36    fn arguments(&self) -> Vec<FFIArgument> {
37        vec![]
38    }
39}