mirror of
https://github.com/launchbadge/sqlx.git
synced 2026-04-29 21:44:21 +00:00
switch from vecs to iterator chains
This commit is contained in:
committed by
Ryan Leckey
parent
4cd179d42b
commit
7185f1ff25
@@ -2,7 +2,6 @@ use super::attributes::{
|
||||
check_strong_enum_attributes, check_struct_attributes, check_transparent_attributes,
|
||||
check_weak_enum_attributes, parse_attributes,
|
||||
};
|
||||
use proc_macro2::Ident;
|
||||
use quote::quote;
|
||||
use syn::punctuated::Punctuated;
|
||||
use syn::token::Comma;
|
||||
@@ -161,16 +160,15 @@ fn expand_derive_decode_struct(
|
||||
}
|
||||
let (impl_generics, _, where_clause) = generics.split_for_impl();
|
||||
|
||||
let mut reads: Vec<Stmt> = Vec::new();
|
||||
let mut names: Vec<Ident> = Vec::new();
|
||||
for field in fields {
|
||||
let reads = fields.iter().map(|field| -> Stmt {
|
||||
let id = &field.ident;
|
||||
names.push(id.clone().unwrap());
|
||||
let ty = &field.ty;
|
||||
reads.push(parse_quote!(
|
||||
parse_quote!(
|
||||
let #id = sqlx::postgres::decode_struct_field::<#ty>(&mut buf)?;
|
||||
));
|
||||
}
|
||||
)
|
||||
});
|
||||
|
||||
let names = fields.iter().map(|field| &field.ident);
|
||||
|
||||
tts.extend(quote!(
|
||||
impl #impl_generics sqlx::decode::Decode<sqlx::Postgres> for #ident#ty_generics #where_clause {
|
||||
|
||||
@@ -160,22 +160,20 @@ fn expand_derive_encode_struct(
|
||||
}
|
||||
let (impl_generics, _, where_clause) = generics.split_for_impl();
|
||||
|
||||
let mut writes: Vec<Stmt> = Vec::new();
|
||||
for field in fields {
|
||||
let writes = fields.iter().map(|field| -> Stmt {
|
||||
let id = &field.ident;
|
||||
writes.push(parse_quote!(
|
||||
parse_quote!(
|
||||
sqlx::postgres::encode_struct_field(buf, &self. #id);
|
||||
));
|
||||
}
|
||||
)
|
||||
});
|
||||
|
||||
let mut sizes: Vec<Expr> = Vec::new();
|
||||
for field in fields {
|
||||
let sizes = fields.iter().map(|field| -> Expr {
|
||||
let id = &field.ident;
|
||||
let ty = &field.ty;
|
||||
sizes.push(
|
||||
parse_quote!(<#ty as sqlx::encode::Encode<sqlx::Postgres>>::size_hint(&self. #id)),
|
||||
);
|
||||
}
|
||||
parse_quote!(
|
||||
<#ty as sqlx::encode::Encode<sqlx::Postgres>>::size_hint(&self. #id)
|
||||
)
|
||||
});
|
||||
|
||||
tts.extend(quote!(
|
||||
impl #impl_generics sqlx::encode::Encode<sqlx::Postgres> for #ident #ty_generics #where_clause {
|
||||
|
||||
Reference in New Issue
Block a user