cargo fmt
This commit is contained in:
parent
106bb20cb5
commit
62b3c37e20
@ -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_cake;
|
||||||
mod example_fruit;
|
mod example_fruit;
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
use heck::SnakeCase;
|
use heck::SnakeCase;
|
||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use syn::{Data, DataEnum, Fields, Variant};
|
|
||||||
use quote::{quote, quote_spanned};
|
use quote::{quote, quote_spanned};
|
||||||
|
use syn::{Data, DataEnum, Fields, Variant};
|
||||||
|
|
||||||
pub fn expend_derive_column(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
pub fn expend_derive_column(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
||||||
let variants = match data {
|
let variants = match data {
|
||||||
syn::Data::Enum(DataEnum { variants, .. }) => variants,
|
syn::Data::Enum(DataEnum { variants, .. }) => variants,
|
||||||
_ => return Ok(quote_spanned! {
|
_ => {
|
||||||
|
return Ok(quote_spanned! {
|
||||||
ident.span() => compile_error!("you can only derive DeriveColumn on enums");
|
ident.span() => compile_error!("you can only derive DeriveColumn on enums");
|
||||||
}),
|
})
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let variant: Vec<TokenStream> = variants
|
let variant: Vec<TokenStream> = variants
|
||||||
.iter()
|
.iter()
|
||||||
.map(|Variant { ident, fields, .. }| {
|
.map(|Variant { ident, fields, .. }| match fields {
|
||||||
match fields {
|
|
||||||
Fields::Named(_) => quote! { #ident{..} },
|
Fields::Named(_) => quote! { #ident{..} },
|
||||||
Fields::Unnamed(_) => quote! { #ident(..) },
|
Fields::Unnamed(_) => quote! { #ident(..) },
|
||||||
Fields::Unit => quote! { #ident },
|
Fields::Unit => quote! { #ident },
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use heck::SnakeCase;
|
use heck::SnakeCase;
|
||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use syn::{Attribute, Meta};
|
|
||||||
use quote::quote;
|
use quote::quote;
|
||||||
|
use syn::{Attribute, Meta};
|
||||||
|
|
||||||
fn get_entity_attr(attrs: &[Attribute]) -> Option<syn::Lit> {
|
fn get_entity_attr(attrs: &[Attribute]) -> Option<syn::Lit> {
|
||||||
for attr in attrs {
|
for attr in attrs {
|
||||||
|
@ -1,25 +1,23 @@
|
|||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use syn::{Data, DataStruct, Field, Fields};
|
|
||||||
use quote::{format_ident, quote, quote_spanned};
|
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<TokenStream> {
|
pub fn expend_derive_from_query_result(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
||||||
let fields = match data {
|
let fields = match data {
|
||||||
Data::Struct(DataStruct {
|
Data::Struct(DataStruct {
|
||||||
fields: Fields::Named(named),
|
fields: Fields::Named(named),
|
||||||
..
|
..
|
||||||
}) => {
|
}) => named.named,
|
||||||
named.named
|
_ => {
|
||||||
},
|
return Ok(quote_spanned! {
|
||||||
_ => return Ok(quote_spanned! {
|
|
||||||
ident.span() => compile_error!("you can only derive DeriveModel on structs");
|
ident.span() => compile_error!("you can only derive DeriveModel on structs");
|
||||||
}),
|
})
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let field: Vec<Ident> = fields
|
let field: Vec<Ident> = fields
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|Field { ident, .. }| {
|
.map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string()))
|
||||||
format_ident!("{}", ident.unwrap().to_string())
|
|
||||||
})
|
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let name: Vec<TokenStream> = field
|
let name: Vec<TokenStream> = field
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
mod column;
|
||||||
mod entity;
|
mod entity;
|
||||||
mod from_query_result;
|
mod from_query_result;
|
||||||
mod primary_key;
|
|
||||||
mod column;
|
|
||||||
mod model;
|
mod model;
|
||||||
|
mod primary_key;
|
||||||
|
|
||||||
|
pub use column::*;
|
||||||
pub use entity::*;
|
pub use entity::*;
|
||||||
pub use from_query_result::*;
|
pub use from_query_result::*;
|
||||||
pub use primary_key::*;
|
|
||||||
pub use column::*;
|
|
||||||
pub use model::*;
|
pub use model::*;
|
||||||
|
pub use primary_key::*;
|
||||||
|
@ -1,34 +1,30 @@
|
|||||||
use heck::CamelCase;
|
use heck::CamelCase;
|
||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use syn::{Data, DataStruct, Field, Fields};
|
|
||||||
use quote::{format_ident, quote, quote_spanned};
|
use quote::{format_ident, quote, quote_spanned};
|
||||||
|
use syn::{Data, DataStruct, Field, Fields};
|
||||||
|
|
||||||
pub fn expend_derive_model(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
pub fn expend_derive_model(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
||||||
let fields = match data {
|
let fields = match data {
|
||||||
Data::Struct(DataStruct {
|
Data::Struct(DataStruct {
|
||||||
fields: Fields::Named(named),
|
fields: Fields::Named(named),
|
||||||
..
|
..
|
||||||
}) => {
|
}) => named.named,
|
||||||
named.named
|
_ => {
|
||||||
},
|
return Ok(quote_spanned! {
|
||||||
_ => return Ok(quote_spanned! {
|
|
||||||
ident.span() => compile_error!("you can only derive DeriveModel on structs");
|
ident.span() => compile_error!("you can only derive DeriveModel on structs");
|
||||||
}),
|
})
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let field: Vec<Ident> = fields
|
let field: Vec<Ident> = fields
|
||||||
.clone()
|
.clone()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|Field { ident, .. }| {
|
.map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string()))
|
||||||
format_ident!("{}", ident.unwrap().to_string())
|
|
||||||
})
|
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let name: Vec<Ident> = fields
|
let name: Vec<Ident> = fields
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|Field { ident, .. }| {
|
.map(|Field { ident, .. }| format_ident!("{}", ident.unwrap().to_string().to_camel_case()))
|
||||||
format_ident!("{}", ident.unwrap().to_string().to_camel_case())
|
|
||||||
})
|
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
Ok(quote!(
|
Ok(quote!(
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
use heck::SnakeCase;
|
use heck::SnakeCase;
|
||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use syn::{Data, DataEnum, Fields, Variant};
|
|
||||||
use quote::{quote, quote_spanned};
|
use quote::{quote, quote_spanned};
|
||||||
|
use syn::{Data, DataEnum, Fields, Variant};
|
||||||
|
|
||||||
pub fn expend_derive_primary_key(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
pub fn expend_derive_primary_key(ident: Ident, data: Data) -> syn::Result<TokenStream> {
|
||||||
let variants = match data {
|
let variants = match data {
|
||||||
syn::Data::Enum(DataEnum { variants, .. }) => variants,
|
syn::Data::Enum(DataEnum { variants, .. }) => variants,
|
||||||
_ => return Ok(quote_spanned! {
|
_ => {
|
||||||
|
return Ok(quote_spanned! {
|
||||||
ident.span() => compile_error!("you can only derive DerivePrimaryKey on enums");
|
ident.span() => compile_error!("you can only derive DerivePrimaryKey on enums");
|
||||||
}),
|
})
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let variant: Vec<TokenStream> = variants
|
let variant: Vec<TokenStream> = variants
|
||||||
.iter()
|
.iter()
|
||||||
.map(|Variant { ident, fields, .. }| {
|
.map(|Variant { ident, fields, .. }| match fields {
|
||||||
match fields {
|
|
||||||
Fields::Named(_) => quote! { #ident{..} },
|
Fields::Named(_) => quote! { #ident{..} },
|
||||||
Fields::Unnamed(_) => quote! { #ident(..) },
|
Fields::Unnamed(_) => quote! { #ident(..) },
|
||||||
Fields::Unit => quote! { #ident },
|
Fields::Unit => quote! { #ident },
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
extern crate proc_macro;
|
extern crate proc_macro;
|
||||||
|
|
||||||
use proc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
use syn::{DeriveInput, parse_macro_input};
|
use syn::{parse_macro_input, DeriveInput};
|
||||||
|
|
||||||
mod derives;
|
mod derives;
|
||||||
|
|
||||||
#[proc_macro_derive(DeriveEntity, attributes(entity))]
|
#[proc_macro_derive(DeriveEntity, attributes(entity))]
|
||||||
pub fn derive_entity(input: TokenStream) -> TokenStream {
|
pub fn derive_entity(input: TokenStream) -> TokenStream {
|
||||||
let DeriveInput {
|
let DeriveInput { ident, attrs, .. } = parse_macro_input!(input);
|
||||||
ident, attrs, ..
|
|
||||||
} = parse_macro_input!(input);
|
|
||||||
|
|
||||||
match derives::expend_derive_entity(ident, attrs) {
|
match derives::expend_derive_entity(ident, attrs) {
|
||||||
Ok(ts) => ts.into(),
|
Ok(ts) => ts.into(),
|
||||||
@ -19,9 +17,7 @@ pub fn derive_entity(input: TokenStream) -> TokenStream {
|
|||||||
|
|
||||||
#[proc_macro_derive(DerivePrimaryKey)]
|
#[proc_macro_derive(DerivePrimaryKey)]
|
||||||
pub fn derive_primary_key(input: TokenStream) -> TokenStream {
|
pub fn derive_primary_key(input: TokenStream) -> TokenStream {
|
||||||
let DeriveInput {
|
let DeriveInput { ident, data, .. } = parse_macro_input!(input);
|
||||||
ident, data, ..
|
|
||||||
} = parse_macro_input!(input);
|
|
||||||
|
|
||||||
match derives::expend_derive_primary_key(ident, data) {
|
match derives::expend_derive_primary_key(ident, data) {
|
||||||
Ok(ts) => ts.into(),
|
Ok(ts) => ts.into(),
|
||||||
@ -31,9 +27,7 @@ pub fn derive_primary_key(input: TokenStream) -> TokenStream {
|
|||||||
|
|
||||||
#[proc_macro_derive(DeriveColumn)]
|
#[proc_macro_derive(DeriveColumn)]
|
||||||
pub fn derive_column(input: TokenStream) -> TokenStream {
|
pub fn derive_column(input: TokenStream) -> TokenStream {
|
||||||
let DeriveInput {
|
let DeriveInput { ident, data, .. } = parse_macro_input!(input);
|
||||||
ident, data, ..
|
|
||||||
} = parse_macro_input!(input);
|
|
||||||
|
|
||||||
match derives::expend_derive_column(ident, data) {
|
match derives::expend_derive_column(ident, data) {
|
||||||
Ok(ts) => ts.into(),
|
Ok(ts) => ts.into(),
|
||||||
@ -43,9 +37,7 @@ pub fn derive_column(input: TokenStream) -> TokenStream {
|
|||||||
|
|
||||||
#[proc_macro_derive(DeriveModel)]
|
#[proc_macro_derive(DeriveModel)]
|
||||||
pub fn derive_model(input: TokenStream) -> TokenStream {
|
pub fn derive_model(input: TokenStream) -> TokenStream {
|
||||||
let DeriveInput {
|
let DeriveInput { ident, data, .. } = parse_macro_input!(input);
|
||||||
ident, data, ..
|
|
||||||
} = parse_macro_input!(input);
|
|
||||||
|
|
||||||
match derives::expend_derive_model(ident, data) {
|
match derives::expend_derive_model(ident, data) {
|
||||||
Ok(ts) => ts.into(),
|
Ok(ts) => ts.into(),
|
||||||
@ -55,9 +47,7 @@ pub fn derive_model(input: TokenStream) -> TokenStream {
|
|||||||
|
|
||||||
#[proc_macro_derive(FromQueryResult)]
|
#[proc_macro_derive(FromQueryResult)]
|
||||||
pub fn derive_from_query_result(input: TokenStream) -> TokenStream {
|
pub fn derive_from_query_result(input: TokenStream) -> TokenStream {
|
||||||
let DeriveInput {
|
let DeriveInput { ident, data, .. } = parse_macro_input!(input);
|
||||||
ident, data, ..
|
|
||||||
} = parse_macro_input!(input);
|
|
||||||
|
|
||||||
match derives::expend_derive_from_query_result(ident, data) {
|
match derives::expend_derive_from_query_result(ident, data) {
|
||||||
Ok(ts) => ts.into(),
|
Ok(ts) => ts.into(),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
pub use crate::{
|
pub use crate::{
|
||||||
ColumnTrait, ColumnType, EntityName, EntityTrait, EnumIter, Iden, IdenStatic, ModelTrait,
|
ColumnTrait, ColumnType, DeriveColumn, DeriveEntity, DeriveModel, DerivePrimaryKey, EntityName,
|
||||||
PrimaryKeyOfModel, PrimaryKeyTrait, QueryResult, Related, RelationDef, RelationTrait, Select,
|
EntityTrait, EnumIter, Iden, IdenStatic, ModelTrait, PrimaryKeyOfModel, PrimaryKeyTrait,
|
||||||
TypeErr, Value, DeriveEntity, DerivePrimaryKey, DeriveColumn, DeriveModel
|
QueryResult, Related, RelationDef, RelationTrait, Select, TypeErr, Value,
|
||||||
};
|
};
|
||||||
|
10
src/lib.rs
10
src/lib.rs
@ -12,13 +12,9 @@ pub use driver::*;
|
|||||||
pub use entity::*;
|
pub use entity::*;
|
||||||
pub use query::*;
|
pub use query::*;
|
||||||
|
|
||||||
|
pub use sea_orm_macros::{
|
||||||
|
DeriveColumn, DeriveEntity, DeriveModel, DerivePrimaryKey, FromQueryResult,
|
||||||
|
};
|
||||||
pub use sea_query;
|
pub use sea_query;
|
||||||
pub use sea_query::Iden;
|
pub use sea_query::Iden;
|
||||||
pub use strum::EnumIter;
|
pub use strum::EnumIter;
|
||||||
pub use sea_orm_macros::{
|
|
||||||
DeriveEntity,
|
|
||||||
DerivePrimaryKey,
|
|
||||||
DeriveColumn,
|
|
||||||
DeriveModel,
|
|
||||||
FromQueryResult,
|
|
||||||
};
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user