Struct show_notes::e029::Point
source · #[repr(C)]pub struct Point {
pub x: c_float,
pub y: c_float,
}
Expand description
An example of a slightly more complex data structure we can use with FFI.
Note the #[repr(C)]
, which tells Rust to make sure this struct is laid out
the way that the C ABI expects. That’s not the way that Rust’s own ABI
(which is unstable and can change at any time) might lay it out.
Note also that x
and y
are c_float
, which is a type alias
for f32
. We use it here to make explicit the interop, and also because it
is possible that it might change on some specific operating system. If we
went to compile for an operating system where C’s float
type were not a
32-point floating bit number (and the C standard does not require it to be
anything but “a floating point number”), the compiler would let us know.
Fields§
§x: c_float
§y: c_float
Trait Implementations§
source§impl PartialEq for Point
impl PartialEq for Point
impl StructuralPartialEq for Point
Auto Trait Implementations§
impl Freeze for Point
impl RefUnwindSafe for Point
impl Send for Point
impl Sync for Point
impl Unpin for Point
impl UnwindSafe for Point
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more