mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-12-30 13:20:59 +00:00
* Allow single-field named structs to be transparent This more closely matches the criteria for e.g. #[repr(transparent)] and #[serde(transparent)]. * Add tests, fix error messages
35 lines
721 B
Rust
35 lines
721 B
Rust
use sqlx::Sqlite;
|
|
use sqlx_test::test_type;
|
|
|
|
#[derive(Debug, PartialEq, sqlx::Type)]
|
|
#[repr(u32)]
|
|
enum Origin {
|
|
Foo = 1,
|
|
Bar = 2,
|
|
}
|
|
|
|
test_type!(origin_enum<Origin>(Sqlite,
|
|
"1" == Origin::Foo,
|
|
"2" == Origin::Bar,
|
|
));
|
|
|
|
#[derive(PartialEq, Eq, Debug, sqlx::Type)]
|
|
#[sqlx(transparent)]
|
|
struct TransparentTuple(i64);
|
|
|
|
#[derive(PartialEq, Eq, Debug, sqlx::Type)]
|
|
#[sqlx(transparent)]
|
|
struct TransparentNamed {
|
|
field: i64,
|
|
}
|
|
|
|
test_type!(transparent_tuple<TransparentTuple>(Sqlite,
|
|
"0" == TransparentTuple(0),
|
|
"23523" == TransparentTuple(23523)
|
|
));
|
|
|
|
test_type!(transparent_named<TransparentNamed>(Sqlite,
|
|
"0" == TransparentNamed { field: 0 },
|
|
"23523" == TransparentNamed { field: 23523 },
|
|
));
|