Reinstate Table => type_name semantic

This commit is contained in:
Chris Tsang 2023-07-13 11:30:34 +01:00
parent ae899d6744
commit c2d1968627
2 changed files with 16 additions and 7 deletions

View File

@ -49,7 +49,12 @@ fn impl_iden_for_enum(
let match_pair: Vec<TokenStream> = variants let match_pair: Vec<TokenStream> = variants
.map(|v| { .map(|v| {
let var_ident = &v.ident; let var_ident = &v.ident;
let mut var_name = var_ident.to_string().to_snake_case(); let var_name = if var_ident == "Table" {
ident
} else {
var_ident
};
let mut var_name = var_name.to_string().to_snake_case();
v.attrs v.attrs
.iter() .iter()
.filter(|attr| attr.path().is_ident("sea_orm")) .filter(|attr| attr.path().is_ident("sea_orm"))

View File

@ -4,7 +4,8 @@ use sea_orm::entity::prelude::*;
use sea_orm_macros::DeriveIden; use sea_orm_macros::DeriveIden;
#[derive(DeriveIden)] #[derive(DeriveIden)]
pub enum Class { pub enum ClassName {
Table,
Id, Id,
Title, Title,
Text, Text,
@ -12,6 +13,7 @@ pub enum Class {
#[derive(DeriveIden)] #[derive(DeriveIden)]
pub enum Book { pub enum Book {
Table,
Id, Id,
#[sea_orm(iden = "turtle")] #[sea_orm(iden = "turtle")]
Title, Title,
@ -22,7 +24,7 @@ pub enum Book {
} }
#[derive(DeriveIden)] #[derive(DeriveIden)]
struct Glyph; struct GlyphToken;
#[derive(DeriveIden)] #[derive(DeriveIden)]
#[sea_orm(iden = "weRd")] #[sea_orm(iden = "weRd")]
@ -30,16 +32,18 @@ struct Word;
#[test] #[test]
fn main() -> Result<(), DbErr> { fn main() -> Result<(), DbErr> {
assert_eq!(Class::Id.to_string(), "id"); assert_eq!(ClassName::Table.to_string(), "class_name");
assert_eq!(Class::Title.to_string(), "title"); assert_eq!(ClassName::Id.to_string(), "id");
assert_eq!(Class::Text.to_string(), "text"); assert_eq!(ClassName::Title.to_string(), "title");
assert_eq!(ClassName::Text.to_string(), "text");
assert_eq!(Book::Id.to_string(), "id"); assert_eq!(Book::Id.to_string(), "id");
assert_eq!(Book::Table.to_string(), "book");
assert_eq!(Book::Title.to_string(), "turtle"); assert_eq!(Book::Title.to_string(), "turtle");
assert_eq!(Book::Text.to_string(), "TeXt"); assert_eq!(Book::Text.to_string(), "TeXt");
assert_eq!(Book::Type.to_string(), "ty_pe"); assert_eq!(Book::Type.to_string(), "ty_pe");
assert_eq!(Glyph.to_string(), "glyph"); assert_eq!(GlyphToken.to_string(), "glyph_token");
assert_eq!(Word.to_string(), "weRd"); assert_eq!(Word.to_string(), "weRd");
Ok(()) Ok(())