feat(build): Better support for custom codecs (#999)

BREAKING CHANGE: `CODEC_PATH` moved from const to fn
This commit is contained in:
Brandon Williams
2022-05-05 12:52:03 -04:00
committed by GitHub
parent 1b0b525115
commit de2e4ac077
10 changed files with 694 additions and 21 deletions
+4 -4
View File
@@ -366,7 +366,7 @@ fn generate_unary<T: Method>(
method_ident: Ident,
server_trait: Ident,
) -> TokenStream {
let codec_name = syn::parse_str::<syn::Path>(T::CODEC_PATH).unwrap();
let codec_name = syn::parse_str::<syn::Path>(method.codec_path()).unwrap();
let service_ident = quote::format_ident!("{}Svc", method.identifier());
@@ -415,7 +415,7 @@ fn generate_server_streaming<T: Method>(
method_ident: Ident,
server_trait: Ident,
) -> TokenStream {
let codec_name = syn::parse_str::<syn::Path>(T::CODEC_PATH).unwrap();
let codec_name = syn::parse_str::<syn::Path>(method.codec_path()).unwrap();
let service_ident = quote::format_ident!("{}Svc", method.identifier());
@@ -470,7 +470,7 @@ fn generate_client_streaming<T: Method>(
let service_ident = quote::format_ident!("{}Svc", method.identifier());
let (request, response) = method.request_response_name(proto_path, compile_well_known_types);
let codec_name = syn::parse_str::<syn::Path>(T::CODEC_PATH).unwrap();
let codec_name = syn::parse_str::<syn::Path>(method.codec_path()).unwrap();
quote! {
#[allow(non_camel_case_types)]
@@ -517,7 +517,7 @@ fn generate_streaming<T: Method>(
method_ident: Ident,
server_trait: Ident,
) -> TokenStream {
let codec_name = syn::parse_str::<syn::Path>(T::CODEC_PATH).unwrap();
let codec_name = syn::parse_str::<syn::Path>(method.codec_path()).unwrap();
let service_ident = quote::format_ident!("{}Svc", method.identifier());