protospec-build 0.3.0

One binary format language to rule them all, One binary format language to find them, One binary format language to bring them all and in the darkness bind them.
Documentation
use super::*;

pub struct Base64Transform;

impl ForeignTransform for Base64Transform {
    fn decoding_gen(
        &self,
        input_stream: TokenStream,
        _arguments: Vec<TokenStream>,
        is_async: bool,
    ) -> TokenStream {
        if is_async {
            panic!("base64 async not implemented");
        }
        quote! {
            {
                base64::read::DecoderReader::new(#input_stream, base64::STANDARD)
            }
        }
    }

    fn encoding_gen(
        &self,
        input_stream: TokenStream,
        _arguments: Vec<TokenStream>,
        is_async: bool,
    ) -> TokenStream {
        if is_async {
            panic!("base64 async not implemented");
        }
        quote! {
            base64::write::EncoderWriter::new(#input_stream, base64::STANDARD)
        }
    }

    fn arguments(&self) -> Vec<FFIArgument> {
        vec![]
    }
}