[][src]Struct show_notes::e029::Point

#[repr(C)]
pub struct Point {
    pub x: c_float,
    pub y: c_float,
}

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_floaty: c_float

Trait Implementations

impl PartialEq<Point> for Point[src]

impl Debug for Point[src]

Auto Trait Implementations

impl Send for Point

impl Unpin for Point

impl Sync for Point

impl RefUnwindSafe for Point

impl UnwindSafe for Point

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]