/* automatically generated by rust-bindgen 0.55.1 */

#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __uint64_t = ::std::os::raw::c_ulong;
extern "C" {
    pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_handle {
    _unused: [u8; 0],
}
pub type nspire_handle_t = nspire_handle;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libusb_device_handle {
    _unused: [u8; 0],
}
extern "C" {
    pub fn nspire_init(
        ptr: *mut *mut nspire_handle_t,
        dev: *mut libusb_device_handle,
        is_cx2: bool,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_free(ptr: *mut nspire_handle_t);
}
pub const nspire_battery_NSPIRE_BATT_POWERED: nspire_battery = 0;
pub const nspire_battery_NSPIRE_BATT_LOW: nspire_battery = 241;
pub const nspire_battery_NSPIRE_BATT_OK: nspire_battery = 127;
pub const nspire_battery_NSPIRE_BATT_UNKNOWN: nspire_battery = 255;
pub type nspire_battery = ::std::os::raw::c_uint;
pub const nspire_version_index_NSPIRE_VER_OS: nspire_version_index = 0;
pub const nspire_version_index_NSPIRE_VER_BOOT1: nspire_version_index = 1;
pub const nspire_version_index_NSPIRE_VER_BOOT2: nspire_version_index = 2;
pub const nspire_version_index_NSPIRE_VER_MAXNUM: nspire_version_index = 3;
pub type nspire_version_index = ::std::os::raw::c_uint;
pub const nspire_type_NSPIRE_CAS: nspire_type = 14;
pub const nspire_type_NSPIRE_NONCAS: nspire_type = 30;
pub const nspire_type_NSPIRE_CASCX: nspire_type = 15;
pub const nspire_type_NSPIRE_NONCASCX: nspire_type = 31;
pub type nspire_type = ::std::os::raw::c_uint;
pub const nspire_runlevel_NSPIRE_RUNLEVEL_RECOVERY: nspire_runlevel = 1;
pub const nspire_runlevel_NSPIRE_RUNLEVEL_OS: nspire_runlevel = 2;
pub type nspire_runlevel = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo {
    pub storage: nspire_devinfo__bindgen_ty_1,
    pub ram: nspire_devinfo__bindgen_ty_2,
    pub versions: [nspire_devinfo__bindgen_ty_3; 3usize],
    pub hw_type: nspire_type,
    pub batt: nspire_devinfo__bindgen_ty_4,
    pub clock_speed: u8,
    pub lcd: nspire_devinfo__bindgen_ty_5,
    pub extensions: nspire_devinfo__bindgen_ty_6,
    pub device_name: [::std::os::raw::c_char; 20usize],
    pub electronic_id: [::std::os::raw::c_char; 28usize],
    pub runlevel: nspire_runlevel,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_1 {
    pub free: u64,
    pub total: u64,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_1>())).free as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_1),
            "::",
            stringify!(free)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_1>())).total as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_1),
            "::",
            stringify!(total)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_2 {
    pub free: u64,
    pub total: u64,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_2>(),
        16usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_2>())).free as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_2),
            "::",
            stringify!(free)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_2>())).total as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_2),
            "::",
            stringify!(total)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_3 {
    pub major: u8,
    pub minor: u8,
    pub build: u16,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_3>(),
        4usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_3>(),
        2usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).major as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_3),
            "::",
            stringify!(major)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).minor as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_3),
            "::",
            stringify!(minor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).build as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_3),
            "::",
            stringify!(build)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_4 {
    pub status: nspire_battery,
    pub is_charging: u8,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_4>(),
        8usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_4>(),
        4usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_4))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_4>())).status as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_4),
            "::",
            stringify!(status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_4>())).is_charging as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_4),
            "::",
            stringify!(is_charging)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_5 {
    pub width: u16,
    pub height: u16,
    pub bbp: u8,
    pub sample_mode: u8,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_5>(),
        6usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_5>(),
        2usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_5))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).width as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_5),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).height as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_5),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).bbp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_5),
            "::",
            stringify!(bbp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).sample_mode as *const _
                as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_5),
            "::",
            stringify!(sample_mode)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_6 {
    pub file: [::std::os::raw::c_char; 8usize],
    pub os: [::std::os::raw::c_char; 8usize],
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_6() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo__bindgen_ty_6>(),
        16usize,
        concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_6))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo__bindgen_ty_6>(),
        1usize,
        concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_6))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_6>())).file as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_6),
            "::",
            stringify!(file)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_6>())).os as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo__bindgen_ty_6),
            "::",
            stringify!(os)
        )
    );
}
#[test]
fn bindgen_test_layout_nspire_devinfo() {
    assert_eq!(
        ::std::mem::size_of::<nspire_devinfo>(),
        136usize,
        concat!("Size of: ", stringify!(nspire_devinfo))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_devinfo>(),
        8usize,
        concat!("Alignment of ", stringify!(nspire_devinfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).storage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(storage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).ram as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(ram)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).versions as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(versions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).hw_type as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(hw_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).batt as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(batt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).clock_speed as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(clock_speed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).lcd as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(lcd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).extensions as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(extensions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).device_name as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(device_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).electronic_id as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(electronic_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).runlevel as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_devinfo),
            "::",
            stringify!(runlevel)
        )
    );
}
extern "C" {
    pub fn nspire_device_info(
        handle: *mut nspire_handle_t,
        i: *mut nspire_devinfo,
    ) -> ::std::os::raw::c_int;
}
pub type nspire_callback =
    ::std::option::Option<unsafe extern "C" fn(arg1: usize, arg2: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub fn nspire_file_write(
        arg1: *mut nspire_handle_t,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut ::std::os::raw::c_void,
        arg4: usize,
        cb: nspire_callback,
        cb_data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_file_read(
        handle: *mut nspire_handle_t,
        path: *const ::std::os::raw::c_char,
        data: *mut ::std::os::raw::c_void,
        size: usize,
        read_bytes: *mut usize,
        cb: nspire_callback,
        cb_data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_file_move(
        handle: *mut nspire_handle_t,
        src: *const ::std::os::raw::c_char,
        dst: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_file_copy(
        handle: *mut nspire_handle_t,
        src: *const ::std::os::raw::c_char,
        dst: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_file_delete(
        handle: *mut nspire_handle_t,
        path: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
pub const nspire_dir_type_NSPIRE_FILE: nspire_dir_type = 0;
pub const nspire_dir_type_NSPIRE_DIR: nspire_dir_type = 1;
pub type nspire_dir_type = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct nspire_dir_item {
    pub name: [::std::os::raw::c_char; 240usize],
    pub size: u64,
    pub date: u64,
    pub type_: nspire_dir_type,
}
#[test]
fn bindgen_test_layout_nspire_dir_item() {
    assert_eq!(
        ::std::mem::size_of::<nspire_dir_item>(),
        264usize,
        concat!("Size of: ", stringify!(nspire_dir_item))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_dir_item>(),
        8usize,
        concat!("Alignment of ", stringify!(nspire_dir_item))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_item),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).size as *const _ as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_item),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).date as *const _ as usize },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_item),
            "::",
            stringify!(date)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).type_ as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_item),
            "::",
            stringify!(type_)
        )
    );
}
#[repr(C)]
pub struct nspire_dir_info {
    pub num: u64,
    pub items: __IncompleteArrayField<nspire_dir_item>,
}
#[test]
fn bindgen_test_layout_nspire_dir_info() {
    assert_eq!(
        ::std::mem::size_of::<nspire_dir_info>(),
        8usize,
        concat!("Size of: ", stringify!(nspire_dir_info))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_dir_info>(),
        8usize,
        concat!("Alignment of ", stringify!(nspire_dir_info))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_info>())).num as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_info),
            "::",
            stringify!(num)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_dir_info>())).items as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_dir_info),
            "::",
            stringify!(items)
        )
    );
}
extern "C" {
    pub fn nspire_dirlist(
        arg1: *mut nspire_handle_t,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut *mut nspire_dir_info,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_dirlist_free(d: *mut nspire_dir_info);
}
extern "C" {
    pub fn nspire_dir_create(
        handle: *mut nspire_handle_t,
        path: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_dir_delete(
        handle: *mut nspire_handle_t,
        path: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nspire_attr(
        arg1: *mut nspire_handle_t,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut nspire_dir_item,
    ) -> ::std::os::raw::c_int;
}
pub const NSPIRE_ERR_SUCCESS: ::std::os::raw::c_uint = 0;
pub const NSPIRE_ERR_TIMEOUT: ::std::os::raw::c_uint = 1;
pub const NSPIRE_ERR_NOMEM: ::std::os::raw::c_uint = 2;
pub const NSPIRE_ERR_INVALID: ::std::os::raw::c_uint = 3;
pub const NSPIRE_ERR_LIBUSB: ::std::os::raw::c_uint = 4;
pub const NSPIRE_ERR_NODEVICE: ::std::os::raw::c_uint = 5;
pub const NSPIRE_ERR_INVALPKT: ::std::os::raw::c_uint = 6;
pub const NSPIRE_ERR_NACK: ::std::os::raw::c_uint = 7;
pub const NSPIRE_ERR_BUSY: ::std::os::raw::c_uint = 8;
pub const NSPIRE_ERR_EXISTS: ::std::os::raw::c_uint = 9;
pub const NSPIRE_ERR_NONEXIST: ::std::os::raw::c_uint = 10;
pub const NSPIRE_ERR_OSFAILED: ::std::os::raw::c_uint = 11;
pub const NSPIRE_ERR_MAX: ::std::os::raw::c_uint = 12;
pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
extern "C" {
    pub fn nspire_strerror(error: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn nspire_os_send(
        handle: *mut nspire_handle_t,
        data: *mut ::std::os::raw::c_void,
        size: usize,
        cb: nspire_callback,
        cb_data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug)]
pub struct nspire_image {
    pub width: u16,
    pub height: u16,
    pub bbp: u8,
    pub data: __IncompleteArrayField<::std::os::raw::c_uchar>,
}
#[test]
fn bindgen_test_layout_nspire_image() {
    assert_eq!(
        ::std::mem::size_of::<nspire_image>(),
        6usize,
        concat!("Size of: ", stringify!(nspire_image))
    );
    assert_eq!(
        ::std::mem::align_of::<nspire_image>(),
        2usize,
        concat!("Alignment of ", stringify!(nspire_image))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_image>())).width as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_image),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_image>())).height as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_image),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_image>())).bbp as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_image),
            "::",
            stringify!(bbp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<nspire_image>())).data as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(nspire_image),
            "::",
            stringify!(data)
        )
    );
}
extern "C" {
    pub fn nspire_screenshot(
        handle: *mut nspire_handle_t,
        ptr: *mut *mut nspire_image,
    ) -> ::std::os::raw::c_int;
}
