sqlx/tests/sqlite/derives.rs
Xiretza a301d9abad
Allow single-field named structs to be transparent (#3971)
* 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
2025-08-21 13:57:35 -07:00

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 },
));