jlrs/data/layout/
is_bits.rs

1//! Marker trait for layouts that only use `isbits` types.
2//!
3//! An `isbits` type is an immutable type that doesn't contain any references to Julia data.
4
5/// Indicates that this type is an `isbits` type.
6///
7/// Safety: `Self` must map to an `isbits`-type
8pub unsafe trait IsBits: 'static {}
9
10unsafe impl IsBits for bool {}
11unsafe impl IsBits for i8 {}
12unsafe impl IsBits for i16 {}
13unsafe impl IsBits for i32 {}
14unsafe impl IsBits for i64 {}
15unsafe impl IsBits for isize {}
16unsafe impl IsBits for u8 {}
17unsafe impl IsBits for u16 {}
18unsafe impl IsBits for u32 {}
19unsafe impl IsBits for u64 {}
20unsafe impl IsBits for usize {}
21unsafe impl IsBits for f32 {}
22unsafe impl IsBits for f64 {}
23unsafe impl<T: 'static> IsBits for *mut T {}