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
.map(|v| {
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
.iter()
.filter(|attr| attr.path().is_ident("sea_orm"))

View File

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