@@ -24,6 +24,8 @@ pub fn from_row_derive(tokens_input: TokenStream) -> TokenStream {
24
24
let struct_name = & item. ident ;
25
25
let ( impl_generics, ty_generics, where_clause) = item. generics . split_for_impl ( ) ;
26
26
27
+ let path = quote ! ( databend_driver:: _macro_internal) ;
28
+
27
29
let set_fields_code = struct_fields. named . iter ( ) . map ( |field| {
28
30
let field_name = & field. ident ;
29
31
let field_type = & field. ty ;
@@ -35,26 +37,21 @@ pub fn from_row_derive(tokens_input: TokenStream) -> TokenStream {
35
37
. unwrap( ) ; // vals_iter size is checked before this code is reached, so
36
38
// it is safe to unwrap
37
39
let t = col_value. get_type( ) ;
38
-
39
40
<#field_type>:: try_from( col_value)
40
- . map_err( |_| Error :: InvalidResponse ( format!( "failed converting column {} from type({:?}) to type({})" , col_ix, t, std:: any:: type_name:: <#field_type>( ) ) ) ) ?
41
+ . map_err( |_| #path :: Error :: InvalidResponse ( format!( "failed converting column {} from type({:?}) to type({})" , col_ix, t, std:: any:: type_name:: <#field_type>( ) ) ) ) ?
41
42
} ,
42
43
}
43
44
} ) ;
44
45
45
46
let fields_count = struct_fields. named . len ( ) ;
46
47
let generated = quote ! {
47
- use databend_sql:: rows:: Row ;
48
- use databend_sql:: error:: { Error , Result } ;
49
-
50
- impl #impl_generics TryFrom <Row > for #struct_name #ty_generics #where_clause {
51
- type Error = Error ;
52
- fn try_from( row: Row ) -> Result <Self > {
48
+ impl #impl_generics TryFrom <#path:: Row > for #struct_name #ty_generics #where_clause {
49
+ type Error = #path:: Error ;
50
+ fn try_from( row: #path:: Row ) -> #path:: Result <Self > {
53
51
if #fields_count != row. len( ) {
54
- return Err ( Error :: InvalidResponse ( format!( "row size mismatch: expected {} columns, got {}" , #fields_count, row. len( ) ) ) ) ;
52
+ return Err ( #path :: Error :: InvalidResponse ( format!( "row size mismatch: expected {} columns, got {}" , #fields_count, row. len( ) ) ) ) ;
55
53
}
56
54
let mut vals_iter = row. into_iter( ) . enumerate( ) ;
57
-
58
55
Ok ( #struct_name {
59
56
#( #set_fields_code) *
60
57
} )
0 commit comments