diff --git a/examples/sqlx-mysql/src/main.rs b/examples/sqlx-mysql/src/main.rs index ce42bbf3..e9784539 100644 --- a/examples/sqlx-mysql/src/main.rs +++ b/examples/sqlx-mysql/src/main.rs @@ -1,4 +1,4 @@ -use sea_orm::{ColumnTrait, Database, EntityTrait, QueryErr, QueryHelper, FromQueryResult}; +use sea_orm::{ColumnTrait, Database, EntityTrait, FromQueryResult, QueryErr, QueryHelper}; mod example_cake; mod example_fruit; diff --git a/sea-orm-macros/src/derives/column.rs b/sea-orm-macros/src/derives/column.rs index 4e385a32..bc315f69 100644 --- a/sea-orm-macros/src/derives/column.rs +++ b/sea-orm-macros/src/derives/column.rs @@ -1,24 +1,24 @@ use heck::SnakeCase; use proc_macro2::{Ident, TokenStream}; -use syn::{Data, DataEnum, Fields, Variant}; use quote::{quote, quote_spanned}; +use syn::{Data, DataEnum, Fields, Variant}; pub fn expend_derive_column(ident: Ident, data: Data) -> syn::Result { let variants = match data { syn::Data::Enum(DataEnum { variants, .. }) => variants, - _ => return Ok(quote_spanned! { - ident.span() => compile_error!("you can only derive DeriveColumn on enums"); - }), + _ => { + return Ok(quote_spanned! { + ident.span() => compile_error!("you can only derive DeriveColumn on enums"); + }) + } }; let variant: Vec = variants .iter() - .map(|Variant { ident, fields, .. }| { - match fields { - Fields::Named(_) => quote! { #ident{..} }, - Fields::Unnamed(_) => quote! { #ident(..) }, - Fields::Unit => quote! { #ident }, - } + .map(|Variant { ident, fields, .. }| match fields { + Fields::Named(_) => quote! { #ident{..} }, + Fields::Unnamed(_) => quote! { #ident(..) }, + Fields::Unit => quote! { #ident }, }) .collect(); @@ -45,4 +45,4 @@ pub fn expend_derive_column(ident: Ident, data: Data) -> syn::Result Option { for attr in attrs { @@ -40,4 +40,4 @@ pub fn expend_derive_entity(ident: Ident, attrs: Vec) -> syn::Result< } } )) -} \ No newline at end of file +} diff --git a/sea-orm-macros/src/derives/from_query_result.rs b/sea-orm-macros/src/derives/from_query_result.rs index 1217ac2a..04f56fdb 100644 --- a/sea-orm-macros/src/derives/from_query_result.rs +++ b/sea-orm-macros/src/derives/from_query_result.rs @@ -1,25 +1,23 @@ use proc_macro2::{Ident, TokenStream}; -use syn::{Data, DataStruct, Field, Fields}; use quote::{format_ident, quote, quote_spanned}; +use syn::{Data, DataStruct, Field, Fields}; pub fn expend_derive_from_query_result(ident: Ident, data: Data) -> syn::Result { let fields = match data { Data::Struct(DataStruct { fields: Fields::Named(named), .. - }) => { - named.named - }, - _ => return Ok(quote_spanned! { - ident.span() => compile_error!("you can only derive DeriveModel on structs"); - }), + }) => named.named, + _ => { + return Ok(quote_spanned! { + ident.span() => compile_error!("you can only derive DeriveModel on structs"); + }) + } }; let field: Vec = fields .into_iter() - .map(|Field { ident, .. }| { - format_ident!("{}", ident.unwrap().to_string()) - }) + .map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string())) .collect(); let name: Vec = field @@ -39,4 +37,4 @@ pub fn expend_derive_from_query_result(ident: Ident, data: Data) -> syn::Result< } } )) -} \ No newline at end of file +} diff --git a/sea-orm-macros/src/derives/mod.rs b/sea-orm-macros/src/derives/mod.rs index 0d4a7b97..c94dba4e 100644 --- a/sea-orm-macros/src/derives/mod.rs +++ b/sea-orm-macros/src/derives/mod.rs @@ -1,11 +1,11 @@ +mod column; mod entity; mod from_query_result; -mod primary_key; -mod column; mod model; +mod primary_key; +pub use column::*; pub use entity::*; pub use from_query_result::*; +pub use model::*; pub use primary_key::*; -pub use column::*; -pub use model::*; \ No newline at end of file diff --git a/sea-orm-macros/src/derives/model.rs b/sea-orm-macros/src/derives/model.rs index 375e1d82..11cf5b3a 100644 --- a/sea-orm-macros/src/derives/model.rs +++ b/sea-orm-macros/src/derives/model.rs @@ -1,52 +1,48 @@ use heck::CamelCase; use proc_macro2::{Ident, TokenStream}; -use syn::{Data, DataStruct, Field, Fields}; use quote::{format_ident, quote, quote_spanned}; +use syn::{Data, DataStruct, Field, Fields}; pub fn expend_derive_model(ident: Ident, data: Data) -> syn::Result { let fields = match data { Data::Struct(DataStruct { fields: Fields::Named(named), .. - }) => { - named.named - }, - _ => return Ok(quote_spanned! { - ident.span() => compile_error!("you can only derive DeriveModel on structs"); - }), + }) => named.named, + _ => { + return Ok(quote_spanned! { + ident.span() => compile_error!("you can only derive DeriveModel on structs"); + }) + } }; let field: Vec = fields .clone() .into_iter() - .map(|Field { ident, .. }| { - format_ident!("{}", ident.unwrap().to_string()) - }) + .map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string())) .collect(); let name: Vec = fields .into_iter() - .map(|Field { ident, .. }| { - format_ident!("{}", ident.unwrap().to_string().to_camel_case()) - }) + .map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string().to_camel_case())) .collect(); Ok(quote!( impl ModelTrait for #ident { type Column = Column; - + fn get(&self, c: Self::Column) -> Value { match c { #(Self::Column::#name => self.#field.clone().into()),* } } - + fn set(&mut self, c: Self::Column, v: Value) { match c { #(Self::Column::#name => self.#field = v.unwrap()),* } } - + fn from_query_result(row: &QueryResult, pre: &str) -> Result { Ok(Self { #(#field: row.try_get(pre, Self::Column::#name.as_str().into())?),* @@ -54,4 +50,4 @@ pub fn expend_derive_model(ident: Ident, data: Data) -> syn::Result } } )) -} \ No newline at end of file +} diff --git a/sea-orm-macros/src/derives/primary_key.rs b/sea-orm-macros/src/derives/primary_key.rs index bde0505a..128365ce 100644 --- a/sea-orm-macros/src/derives/primary_key.rs +++ b/sea-orm-macros/src/derives/primary_key.rs @@ -1,24 +1,24 @@ use heck::SnakeCase; use proc_macro2::{Ident, TokenStream}; -use syn::{Data, DataEnum, Fields, Variant}; use quote::{quote, quote_spanned}; +use syn::{Data, DataEnum, Fields, Variant}; pub fn expend_derive_primary_key(ident: Ident, data: Data) -> syn::Result { let variants = match data { syn::Data::Enum(DataEnum { variants, .. }) => variants, - _ => return Ok(quote_spanned! { - ident.span() => compile_error!("you can only derive DerivePrimaryKey on enums"); - }), + _ => { + return Ok(quote_spanned! { + ident.span() => compile_error!("you can only derive DerivePrimaryKey on enums"); + }) + } }; let variant: Vec = variants .iter() - .map(|Variant { ident, fields, .. }| { - match fields { - Fields::Named(_) => quote! { #ident{..} }, - Fields::Unnamed(_) => quote! { #ident(..) }, - Fields::Unit => quote! { #ident }, - } + .map(|Variant { ident, fields, .. }| match fields { + Fields::Named(_) => quote! { #ident{..} }, + Fields::Unnamed(_) => quote! { #ident(..) }, + Fields::Unit => quote! { #ident }, }) .collect(); @@ -55,4 +55,4 @@ pub fn expend_derive_primary_key(ident: Ident, data: Data) -> syn::Result TokenStream { - let DeriveInput { - ident, attrs, .. - } = parse_macro_input!(input); + let DeriveInput { ident, attrs, .. } = parse_macro_input!(input); match derives::expend_derive_entity(ident, attrs) { Ok(ts) => ts.into(), @@ -19,9 +17,7 @@ pub fn derive_entity(input: TokenStream) -> TokenStream { #[proc_macro_derive(DerivePrimaryKey)] pub fn derive_primary_key(input: TokenStream) -> TokenStream { - let DeriveInput { - ident, data, .. - } = parse_macro_input!(input); + let DeriveInput { ident, data, .. } = parse_macro_input!(input); match derives::expend_derive_primary_key(ident, data) { Ok(ts) => ts.into(), @@ -31,9 +27,7 @@ pub fn derive_primary_key(input: TokenStream) -> TokenStream { #[proc_macro_derive(DeriveColumn)] pub fn derive_column(input: TokenStream) -> TokenStream { - let DeriveInput { - ident, data, .. - } = parse_macro_input!(input); + let DeriveInput { ident, data, .. } = parse_macro_input!(input); match derives::expend_derive_column(ident, data) { Ok(ts) => ts.into(), @@ -43,9 +37,7 @@ pub fn derive_column(input: TokenStream) -> TokenStream { #[proc_macro_derive(DeriveModel)] pub fn derive_model(input: TokenStream) -> TokenStream { - let DeriveInput { - ident, data, .. - } = parse_macro_input!(input); + let DeriveInput { ident, data, .. } = parse_macro_input!(input); match derives::expend_derive_model(ident, data) { Ok(ts) => ts.into(), @@ -55,12 +47,10 @@ pub fn derive_model(input: TokenStream) -> TokenStream { #[proc_macro_derive(FromQueryResult)] pub fn derive_from_query_result(input: TokenStream) -> TokenStream { - let DeriveInput { - ident, data, .. - } = parse_macro_input!(input); + let DeriveInput { ident, data, .. } = parse_macro_input!(input); match derives::expend_derive_from_query_result(ident, data) { Ok(ts) => ts.into(), Err(e) => e.to_compile_error().into(), } -} \ No newline at end of file +} diff --git a/src/entity/prelude.rs b/src/entity/prelude.rs index 7a129752..d9521003 100644 --- a/src/entity/prelude.rs +++ b/src/entity/prelude.rs @@ -1,5 +1,5 @@ pub use crate::{ - ColumnTrait, ColumnType, EntityName, EntityTrait, EnumIter, Iden, IdenStatic, ModelTrait, - PrimaryKeyOfModel, PrimaryKeyTrait, QueryResult, Related, RelationDef, RelationTrait, Select, - TypeErr, Value, DeriveEntity, DerivePrimaryKey, DeriveColumn, DeriveModel + ColumnTrait, ColumnType, DeriveColumn, DeriveEntity, DeriveModel, DerivePrimaryKey, EntityName, + EntityTrait, EnumIter, Iden, IdenStatic, ModelTrait, PrimaryKeyOfModel, PrimaryKeyTrait, + QueryResult, Related, RelationDef, RelationTrait, Select, TypeErr, Value, }; diff --git a/src/lib.rs b/src/lib.rs index f421d8bb..4ab4f371 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,13 +12,9 @@ pub use driver::*; pub use entity::*; pub use query::*; +pub use sea_orm_macros::{ + DeriveColumn, DeriveEntity, DeriveModel, DerivePrimaryKey, FromQueryResult, +}; pub use sea_query; pub use sea_query::Iden; pub use strum::EnumIter; -pub use sea_orm_macros::{ - DeriveEntity, - DerivePrimaryKey, - DeriveColumn, - DeriveModel, - FromQueryResult, -};