mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-13 14:38:36 +00:00
Implement DataTypeKind for usize and isize
This allows direct use of the size types in `imgui-rs` functions, like `Slider`s. Previously, they had to be cast, passed in, then cast back. This change allows for direct use (no casts necessary)
This commit is contained in:
parent
b1e66d050e
commit
9b614eaae3
@ -165,3 +165,43 @@ unsafe impl DataTypeKind for f32 {
|
||||
unsafe impl DataTypeKind for f64 {
|
||||
const KIND: DataType = DataType::F64;
|
||||
}
|
||||
|
||||
unsafe impl DataTypeKind for usize {
|
||||
#[cfg(target_pointer_width = "16")]
|
||||
const KIND: DataType = DataType::U16;
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
const KIND: DataType = DataType::U32;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
const KIND: DataType = DataType::U64;
|
||||
|
||||
// Fallback for when we are on a weird system width
|
||||
//
|
||||
#[cfg(not(any(
|
||||
target_pointer_width = "16",
|
||||
target_pointer_width = "32",
|
||||
target_pointer_width = "64"
|
||||
)))]
|
||||
compile_error!("cannot impl DataTypeKind for usize: unsupported target pointer width. supported values are 16, 32, 64");
|
||||
}
|
||||
|
||||
unsafe impl DataTypeKind for isize {
|
||||
#[cfg(target_pointer_width = "16")]
|
||||
const KIND: DataType = DataType::I16;
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
const KIND: DataType = DataType::I32;
|
||||
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
const KIND: DataType = DataType::I64;
|
||||
|
||||
// Fallback for when we are on a weird system width
|
||||
//
|
||||
#[cfg(not(any(
|
||||
target_pointer_width = "16",
|
||||
target_pointer_width = "32",
|
||||
target_pointer_width = "64"
|
||||
)))]
|
||||
compile_error!("cannot impl DataTypeKind for isize: unsupported target pointer width. supported values are 16, 32, 64");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user