From eb7d9d5dce40e434692b7a9c01e954da988c9e8a Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Mon, 5 Aug 2024 20:56:12 +0800 Subject: [PATCH] codegen: fix `ColumnType` to Rust type resolution --- sea-orm-codegen/src/entity/column.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sea-orm-codegen/src/entity/column.rs b/sea-orm-codegen/src/entity/column.rs index e126f7642..afc0f0401 100644 --- a/sea-orm-codegen/src/entity/column.rs +++ b/sea-orm-codegen/src/entity/column.rs @@ -29,7 +29,6 @@ impl Column { pub fn get_rs_type(&self, date_time_crate: &DateTimeCrate) -> TokenStream { fn write_rs_type(col_type: &ColumnType, date_time_crate: &DateTimeCrate) -> String { - #[allow(unreachable_patterns)] match col_type { ColumnType::Char(_) | ColumnType::String(_) @@ -60,7 +59,6 @@ impl Column { }, ColumnType::Timestamp => match date_time_crate { DateTimeCrate::Chrono => "DateTimeUtc".to_owned(), - // ColumnType::Timpestamp(_) => time::PrimitiveDateTime: https://docs.rs/sqlx/0.3.5/sqlx/postgres/types/index.html#time DateTimeCrate::Time => "TimeDateTime".to_owned(), }, ColumnType::TimestampWithTimeZone => match date_time_crate { @@ -77,7 +75,14 @@ impl Column { ColumnType::Array(column_type) => { format!("Vec<{}>", write_rs_type(column_type, date_time_crate)) } - _ => unimplemented!(), + ColumnType::Bit(None | Some(1)) => "bool".to_owned(), + ColumnType::Bit(_) | ColumnType::VarBit(_) => "Vec".to_owned(), + ColumnType::Year => "i32".to_owned(), + ColumnType::Interval(_, _) + | ColumnType::Cidr + | ColumnType::Inet + | ColumnType::MacAddr + | ColumnType::LTree => "String".to_owned(), } } let ident: TokenStream = write_rs_type(&self.col_type, date_time_crate)