re-export derive usages

This commit is contained in:
OMGeeky
2023-04-15 15:15:58 +02:00
parent 535a5896b8
commit b7ce1be6b7
2 changed files with 23 additions and 17 deletions

View File

@@ -53,7 +53,7 @@ fn implement_big_query_table_base(
let impl_get_field_value = implement_get_field_value(&ast); let impl_get_field_value = implement_get_field_value(&ast);
let impl_from_query_result_row = implement_from_query_result_row(&ast); let impl_from_query_result_row = implement_from_query_result_row(&ast);
quote::quote! { quote::quote! {
#[async_trait::async_trait] #[google_bigquery_v2::re_exports::async_trait::async_trait]
impl BigQueryTableBase for #table_ident { impl BigQueryTableBase for #table_ident {
#impl_get_all_params #impl_get_all_params
#impl_get_parameter_from_field #impl_get_parameter_from_field
@@ -88,7 +88,7 @@ fn implement_get_all_params(ast: &DeriveInput, table_ident: &Ident) -> TokenStre
quote::quote! { quote::quote! {
fn get_all_params(&self) -> google_bigquery_v2::prelude::Result<Vec<Option<google_bigquery_v2::data::QueryParameter>>> { fn get_all_params(&self) -> google_bigquery_v2::prelude::Result<Vec<Option<google_bigquery_v2::data::QueryParameter>>> {
log::trace!("get_all_params() self:{:?}", self); google_bigquery_v2::re_exports::log::trace!("get_all_params() self:{:?}", self);
Ok(vec![ Ok(vec![
#(#fields),* #(#fields),*
]) ])
@@ -112,7 +112,7 @@ fn implement_get_parameter_from_field(ast: &DeriveInput, table_ident: &Ident) ->
quote::quote! { quote::quote! {
fn get_parameter_from_field(&self, field_name: &str) -> google_bigquery_v2::prelude::Result<Option<google_bigquery_v2::data::QueryParameter>> { fn get_parameter_from_field(&self, field_name: &str) -> google_bigquery_v2::prelude::Result<Option<google_bigquery_v2::data::QueryParameter>> {
log::trace!("get_parameter_from_field(); field_name: '{}' self:{:?}", field_name, self); google_bigquery_v2::re_exports::log::trace!("get_parameter_from_field(); field_name: '{}' self:{:?}", field_name, self);
match field_name { match field_name {
#(#fields)* #(#fields)*
_ => Err(format!("Field {} not found", field_name).into()), _ => Err(format!("Field {} not found", field_name).into()),
@@ -127,7 +127,7 @@ fn implement_get_client(client_field: &Field) -> TokenStream {
let client_ident = client_field.field_ident.clone(); let client_ident = client_field.field_ident.clone();
quote::quote! { quote::quote! {
fn get_client(&self) -> &BigqueryClient { fn get_client(&self) -> &BigqueryClient {
log::trace!("get_client() self={:?}", self); google_bigquery_v2::re_exports::log::trace!("get_client() self={:?}", self);
&self.#client_ident &self.#client_ident
} }
} }
@@ -137,7 +137,7 @@ fn implement_set_client(client_field: &Field) -> TokenStream {
let client_ident = client_field.field_ident.clone(); let client_ident = client_field.field_ident.clone();
quote::quote! { quote::quote! {
fn set_client(&mut self, client: BigqueryClient) { fn set_client(&mut self, client: BigqueryClient) {
log::trace!("set_client() self={:?}", self); google_bigquery_v2::re_exports::log::trace!("set_client() self={:?}", self);
self.#client_ident = client; self.#client_ident = client;
} }
} }
@@ -147,7 +147,7 @@ fn implement_get_pk_field_name(pk_field: &Field) -> TokenStream {
let pk_local_name = pk_field.local_name.clone(); let pk_local_name = pk_field.local_name.clone();
quote::quote! { quote::quote! {
fn get_pk_field_name() -> String { fn get_pk_field_name() -> String {
log::trace!("get_pk_field_name()"); google_bigquery_v2::re_exports::log::trace!("get_pk_field_name()");
String::from(#pk_local_name) String::from(#pk_local_name)
} }
} }
@@ -157,7 +157,7 @@ fn implement_get_pk_db_name(pk_field: &Field) -> TokenStream {
let pk_db_name = pk_field.db_name.clone(); let pk_db_name = pk_field.db_name.clone();
quote::quote! { quote::quote! {
fn get_pk_db_name() -> String { fn get_pk_db_name() -> String {
log::trace!("get_pk_db_name()"); google_bigquery_v2::re_exports::log::trace!("get_pk_db_name()");
String::from(#pk_db_name) String::from(#pk_db_name)
} }
} }
@@ -167,7 +167,7 @@ fn implement_get_pk_value(pk_field: &Field) -> TokenStream {
let pk_ident = &pk_field.field_ident; let pk_ident = &pk_field.field_ident;
quote::quote! { quote::quote! {
fn get_pk_value(&self) -> &(dyn google_bigquery_v2::data::param_conversion::BigDataValueType + Send + Sync) { fn get_pk_value(&self) -> &(dyn google_bigquery_v2::data::param_conversion::BigDataValueType + Send + Sync) {
log::trace!("get_pk_value() self={:?}", self); google_bigquery_v2::re_exports::log::trace!("get_pk_value() self={:?}", self);
&self.#pk_ident &self.#pk_ident
} }
} }
@@ -193,7 +193,7 @@ fn implement_get_query_fields(ast: &DeriveInput) -> TokenStream {
quote::quote! { quote::quote! {
fn get_query_fields(include_pk: bool) -> std::collections::HashMap<String, String> { fn get_query_fields(include_pk: bool) -> std::collections::HashMap<String, String> {
log::trace!("get_query_fields() include_pk={}", include_pk); google_bigquery_v2::re_exports::log::trace!("get_query_fields() include_pk={}", include_pk);
let mut map = std::collections::HashMap::new(); let mut map = std::collections::HashMap::new();
if(include_pk) { if(include_pk) {
#pk_insert #pk_insert
@@ -207,7 +207,7 @@ fn implement_get_query_fields(ast: &DeriveInput) -> TokenStream {
fn implement_impl_get_table_name(table_name: &String) -> TokenStream { fn implement_impl_get_table_name(table_name: &String) -> TokenStream {
quote::quote! { quote::quote! {
fn get_table_name() -> String { fn get_table_name() -> String {
log::trace!("get_table_name()"); google_bigquery_v2::re_exports::log::trace!("get_table_name()");
String::from(#table_name) String::from(#table_name)
} }
} }
@@ -226,8 +226,8 @@ fn implement_set_field_value(ast: &DeriveInput) -> TokenStream {
let fields: Vec<TokenStream> = fields.into_iter().map(write_set_field_value).collect(); let fields: Vec<TokenStream> = fields.into_iter().map(write_set_field_value).collect();
quote::quote! { quote::quote! {
fn set_field_value(&mut self, field_name: &str, value: &serde_json::Value) -> Result<()>{ fn set_field_value(&mut self, field_name: &str, value: &google_bigquery_v2::re_exports::serde_json::Value) -> Result<()>{
log::trace!("set_field_value() self={:?} field_name={} value={:?}", self, field_name, value); google_bigquery_v2::re_exports::log::trace!("set_field_value() self={:?} field_name={} value={:?}", self, field_name, value);
use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams; use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams;
match field_name { match field_name {
#(#fields)* #(#fields)*
@@ -249,8 +249,8 @@ fn implement_get_field_value(ast: &DeriveInput) -> TokenStream {
let fields: Vec<TokenStream> = fields.into_iter().map(write_get_field_value).collect(); let fields: Vec<TokenStream> = fields.into_iter().map(write_get_field_value).collect();
quote::quote! { quote::quote! {
fn get_field_value(&self, field_name: &str) -> Result<serde_json::Value> { fn get_field_value(&self, field_name: &str) -> Result<google_bigquery_v2::re_exports::serde_json::Value> {
log::trace!("get_field_value() self={:?} field_name={}", self, field_name); google_bigquery_v2::re_exports::log::trace!("get_field_value() self={:?} field_name={}", self, field_name);
use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams; use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams;
match field_name { match field_name {
#(#fields)* #(#fields)*
@@ -275,10 +275,10 @@ fn implement_from_query_result_row(ast: &DeriveInput) -> TokenStream {
quote::quote! { quote::quote! {
fn new_from_query_result_row( fn new_from_query_result_row(
client: BigqueryClient, client: BigqueryClient,
row: &std::collections::HashMap<String, serde_json::Value>, row: &std::collections::HashMap<String, google_bigquery_v2::re_exports::serde_json::Value>,
) -> Result<Self> ) -> Result<Self>
where Self: Sized { where Self: Sized {
log::trace!("new_from_query_result_row() client={:?} row={:?}", client, row); google_bigquery_v2::re_exports::log::trace!("new_from_query_result_row() client={:?} row={:?}", client, row);
use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams; use google_bigquery_v2::data::param_conversion::ConvertBigQueryParams;
let result = Self{ let result = Self{
#client_ident: client, #client_ident: client,
@@ -296,7 +296,7 @@ fn implement_reload(pk_field: &Field) -> TokenStream {
where where
Self: Sized + Send + Sync, Self: Sized + Send + Sync,
{ {
log::trace!("reload()"); google_bigquery_v2::re_exports::log::trace!("reload()");
let value = &self.#pk_value;//TODO: this is the problem!. it just does not want to work let value = &self.#pk_value;//TODO: this is the problem!. it just does not want to work
Self::get_by_pk(self.get_client().clone(), value).await.map(|mut t| { Self::get_by_pk(self.get_client().clone(), value).await.map(|mut t| {
*self = t; *self = t;

View File

@@ -2,3 +2,9 @@ pub mod client;
pub mod data; pub mod data;
pub mod prelude; pub mod prelude;
pub mod utils; pub mod utils;
pub mod re_exports {
pub use async_trait;
pub use log;
pub use serde_json;
}