diff --git a/Cargo.toml b/Cargo.toml index ea939521..e3f4bede 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -160,6 +160,11 @@ name = "sqlite-macros" path = "tests/sqlite/macros.rs" required-features = [ "sqlite", "macros" ] +[[test]] +name = "sqlite-derives" +path = "tests/sqlite/derives.rs" +required-features = [ "sqlite", "macros" ] + # # MySQL # diff --git a/sqlx-macros/src/derives/type.rs b/sqlx-macros/src/derives/type.rs index 20ab90e9..31e7d8c0 100644 --- a/sqlx-macros/src/derives/type.rs +++ b/sqlx-macros/src/derives/type.rs @@ -118,6 +118,10 @@ fn expand_derive_has_sql_type_weak_enum( fn type_info() -> DB::TypeInfo { <#repr as ::sqlx::Type>::type_info() } + + fn compatible(ty: &DB::TypeInfo) -> bool { + <#repr as ::sqlx::Type>::compatible(ty) + } } ); diff --git a/tests/sqlite/derives.rs b/tests/sqlite/derives.rs new file mode 100644 index 00000000..fa725de1 --- /dev/null +++ b/tests/sqlite/derives.rs @@ -0,0 +1,14 @@ +use sqlx::Sqlite; +use sqlx_test::{new, test_type}; + +#[derive(Debug, PartialEq, sqlx::Type)] +#[repr(u32)] +enum Origin { + Foo = 1, + Bar = 2, +} + +test_type!(origin_enum(Sqlite, + "1" == Origin::Foo, + "2" == Origin::Bar, +));