Fix #1851
This commit is contained in:
parent
9797da1ee4
commit
1abb0b2d91
@ -2,6 +2,7 @@ use heck::ToUpperCamelCase;
|
|||||||
use proc_macro2::TokenStream;
|
use proc_macro2::TokenStream;
|
||||||
use quote::{format_ident, quote};
|
use quote::{format_ident, quote};
|
||||||
use sea_query::DynIden;
|
use sea_query::DynIden;
|
||||||
|
use std::fmt::Write;
|
||||||
|
|
||||||
use crate::WithSerde;
|
use crate::WithSerde;
|
||||||
|
|
||||||
@ -29,12 +30,15 @@ impl ActiveEnum {
|
|||||||
let variant_name = v.to_upper_camel_case();
|
let variant_name = v.to_upper_camel_case();
|
||||||
if variant_name.is_empty() {
|
if variant_name.is_empty() {
|
||||||
println!("Warning: item '{}' in the enumeration '{}' cannot be converted into a valid Rust enum member name. It will be converted to its corresponding UTF-8 encoding. You can modify it later as needed.", v, enum_name);
|
println!("Warning: item '{}' in the enumeration '{}' cannot be converted into a valid Rust enum member name. It will be converted to its corresponding UTF-8 encoding. You can modify it later as needed.", v, enum_name);
|
||||||
let mut utf_string = String::new();
|
let mut ss = String::new();
|
||||||
for c in v.chars() {
|
for c in v.chars() {
|
||||||
utf_string.push('U');
|
if c.len_utf8() > 1 {
|
||||||
utf_string.push_str(&format!("{:04X}", c as u32));
|
write!(&mut ss, "{c}").unwrap();
|
||||||
|
} else {
|
||||||
|
write!(&mut ss, "U{:04X}", c as u32).unwrap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
format_ident!("{}", utf_string)
|
format_ident!("{}", ss)
|
||||||
} else {
|
} else {
|
||||||
format_ident!("{}", variant_name)
|
format_ident!("{}", variant_name)
|
||||||
}
|
}
|
||||||
@ -248,6 +252,7 @@ mod tests {
|
|||||||
"/",
|
"/",
|
||||||
"//",
|
"//",
|
||||||
"A-B-C",
|
"A-B-C",
|
||||||
|
"你好",
|
||||||
]
|
]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|variant| Alias::new(variant).into_iden())
|
.map(|variant| Alias::new(variant).into_iden())
|
||||||
@ -278,6 +283,8 @@ mod tests {
|
|||||||
U002FU002F,
|
U002FU002F,
|
||||||
#[sea_orm(string_value = "A-B-C")]
|
#[sea_orm(string_value = "A-B-C")]
|
||||||
ABC,
|
ABC,
|
||||||
|
#[sea_orm(string_value = "你好")]
|
||||||
|
你好,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.to_string()
|
.to_string()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user