/* automatically generated by rust-bindgen 0.59.2 */

pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum TF_AttrType {
    TF_ATTR_STRING = 0,
    TF_ATTR_INT = 1,
    TF_ATTR_FLOAT = 2,
    TF_ATTR_BOOL = 3,
    TF_ATTR_TYPE = 4,
    TF_ATTR_SHAPE = 5,
    TF_ATTR_TENSOR = 6,
    TF_ATTR_PLACEHOLDER = 7,
    TF_ATTR_FUNC = 8,
}
impl TF_DataType {
    pub const TF_COMPLEX: TF_DataType = TF_DataType::TF_COMPLEX64;
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum TF_DataType {
    TF_FLOAT = 1,
    TF_DOUBLE = 2,
    TF_INT32 = 3,
    TF_UINT8 = 4,
    TF_INT16 = 5,
    TF_INT8 = 6,
    TF_STRING = 7,
    TF_COMPLEX64 = 8,
    TF_INT64 = 9,
    TF_BOOL = 10,
    TF_QINT8 = 11,
    TF_QUINT8 = 12,
    TF_QINT32 = 13,
    TF_BFLOAT16 = 14,
    TF_QINT16 = 15,
    TF_QUINT16 = 16,
    TF_UINT16 = 17,
    TF_COMPLEX128 = 18,
    TF_HALF = 19,
    TF_RESOURCE = 20,
    TF_VARIANT = 21,
    TF_UINT32 = 22,
    TF_UINT64 = 23,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Status {
    _unused: [u8; 0],
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum TF_Code {
    TF_OK = 0,
    TF_CANCELLED = 1,
    TF_UNKNOWN = 2,
    TF_INVALID_ARGUMENT = 3,
    TF_DEADLINE_EXCEEDED = 4,
    TF_NOT_FOUND = 5,
    TF_ALREADY_EXISTS = 6,
    TF_PERMISSION_DENIED = 7,
    TF_UNAUTHENTICATED = 16,
    TF_RESOURCE_EXHAUSTED = 8,
    TF_FAILED_PRECONDITION = 9,
    TF_ABORTED = 10,
    TF_OUT_OF_RANGE = 11,
    TF_UNIMPLEMENTED = 12,
    TF_INTERNAL = 13,
    TF_UNAVAILABLE = 14,
    TF_DATA_LOSS = 15,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_AllocatorAttributes {
    pub struct_size: usize,
    pub on_host: ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_TF_AllocatorAttributes() {
    assert_eq!(
        ::std::mem::size_of::<TF_AllocatorAttributes>(),
        16usize,
        concat!("Size of: ", stringify!(TF_AllocatorAttributes))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_AllocatorAttributes>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_AllocatorAttributes))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<TF_AllocatorAttributes>())).struct_size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AllocatorAttributes),
            "::",
            stringify!(struct_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_AllocatorAttributes>())).on_host as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AllocatorAttributes),
            "::",
            stringify!(on_host)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Tensor {
    _unused: [u8; 0],
}
impl TF_TString_Type {
    pub const TF_TSTR_TYPE_MASK: TF_TString_Type = TF_TString_Type::TF_TSTR_VIEW;
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum TF_TString_Type {
    TF_TSTR_SMALL = 0,
    TF_TSTR_LARGE = 1,
    TF_TSTR_OFFSET = 2,
    TF_TSTR_VIEW = 3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_TString_Large {
    pub size: usize,
    pub cap: usize,
    pub ptr: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_TF_TString_Large() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_Large>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString_Large))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_Large>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_TString_Large))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Large>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Large),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Large>())).cap as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Large),
            "::",
            stringify!(cap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Large>())).ptr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Large),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_TString_Offset {
    pub size: u32,
    pub offset: u32,
    pub count: u32,
}
#[test]
fn bindgen_test_layout_TF_TString_Offset() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_Offset>(),
        12usize,
        concat!("Size of: ", stringify!(TF_TString_Offset))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_Offset>(),
        4usize,
        concat!("Alignment of ", stringify!(TF_TString_Offset))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Offset>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Offset),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Offset>())).offset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Offset),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Offset>())).count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Offset),
            "::",
            stringify!(count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_TString_View {
    pub size: usize,
    pub ptr: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_TF_TString_View() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_View>(),
        16usize,
        concat!("Size of: ", stringify!(TF_TString_View))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_View>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_TString_View))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_View>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_View),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_View>())).ptr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_View),
            "::",
            stringify!(ptr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_TString_Raw {
    pub raw: [u8; 24usize],
}
#[test]
fn bindgen_test_layout_TF_TString_Raw() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_Raw>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString_Raw))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_Raw>(),
        1usize,
        concat!("Alignment of ", stringify!(TF_TString_Raw))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Raw>())).raw as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Raw),
            "::",
            stringify!(raw)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union TF_TString_Union {
    pub large: TF_TString_Large,
    pub offset: TF_TString_Offset,
    pub view: TF_TString_View,
    pub raw: TF_TString_Raw,
}
#[test]
fn bindgen_test_layout_TF_TString_Union() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_Union>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString_Union))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_Union>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_TString_Union))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Union>())).large as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Union),
            "::",
            stringify!(large)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Union>())).offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Union),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Union>())).view as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Union),
            "::",
            stringify!(view)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Union>())).raw as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Union),
            "::",
            stringify!(raw)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_TString_Small {
    pub size: u8,
    pub str_: [::std::os::raw::c_char; 23usize],
}
#[test]
fn bindgen_test_layout_TF_TString_Small() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString_Small>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString_Small))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString_Small>(),
        1usize,
        concat!("Alignment of ", stringify!(TF_TString_Small))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Small>())).size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Small),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString_Small>())).str_ as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString_Small),
            "::",
            stringify!(str_)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct TF_TString {
    pub u: TF_TString__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union TF_TString__bindgen_ty_1 {
    pub smll: TF_TString_Small,
    pub large: TF_TString_Large,
    pub offset: TF_TString_Offset,
    pub view: TF_TString_View,
    pub raw: TF_TString_Raw,
}
#[test]
fn bindgen_test_layout_TF_TString__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_TString__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString__bindgen_ty_1>())).smll as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString__bindgen_ty_1),
            "::",
            stringify!(smll)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString__bindgen_ty_1>())).large as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString__bindgen_ty_1),
            "::",
            stringify!(large)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString__bindgen_ty_1>())).offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString__bindgen_ty_1),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString__bindgen_ty_1>())).view as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString__bindgen_ty_1),
            "::",
            stringify!(view)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString__bindgen_ty_1>())).raw as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString__bindgen_ty_1),
            "::",
            stringify!(raw)
        )
    );
}
#[test]
fn bindgen_test_layout_TF_TString() {
    assert_eq!(
        ::std::mem::size_of::<TF_TString>(),
        24usize,
        concat!("Size of: ", stringify!(TF_TString))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_TString>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_TString))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_TString>())).u as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_TString),
            "::",
            stringify!(u)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Buffer {
    pub data: *const ::std::os::raw::c_void,
    pub length: usize,
    pub data_deallocator: ::std::option::Option<
        unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, length: usize),
    >,
}
#[test]
fn bindgen_test_layout_TF_Buffer() {
    assert_eq!(
        ::std::mem::size_of::<TF_Buffer>(),
        24usize,
        concat!("Size of: ", stringify!(TF_Buffer))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_Buffer>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_Buffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Buffer>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Buffer),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Buffer>())).length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Buffer),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Buffer>())).data_deallocator as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Buffer),
            "::",
            stringify!(data_deallocator)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_StringView {
    pub data: *const ::std::os::raw::c_char,
    pub len: usize,
}
#[test]
fn bindgen_test_layout_TF_StringView() {
    assert_eq!(
        ::std::mem::size_of::<TF_StringView>(),
        16usize,
        concat!("Size of: ", stringify!(TF_StringView))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_StringView>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_StringView))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_StringView>())).data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_StringView),
            "::",
            stringify!(data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_StringView>())).len as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_StringView),
            "::",
            stringify!(len)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_SessionOptions {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Graph {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_OperationDescription {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Operation {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Input {
    pub oper: *mut TF_Operation,
    pub index: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_TF_Input() {
    assert_eq!(
        ::std::mem::size_of::<TF_Input>(),
        16usize,
        concat!("Size of: ", stringify!(TF_Input))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_Input>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_Input))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Input>())).oper as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Input),
            "::",
            stringify!(oper)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Input>())).index as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Input),
            "::",
            stringify!(index)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Output {
    pub oper: *mut TF_Operation,
    pub index: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_TF_Output() {
    assert_eq!(
        ::std::mem::size_of::<TF_Output>(),
        16usize,
        concat!("Size of: ", stringify!(TF_Output))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_Output>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_Output))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Output>())).oper as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Output),
            "::",
            stringify!(oper)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_Output>())).index as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_Output),
            "::",
            stringify!(index)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Function {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_FunctionOptions {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_AttrMetadata {
    pub is_list: ::std::os::raw::c_uchar,
    pub list_size: i64,
    pub type_: TF_AttrType,
    pub total_size: i64,
}
#[test]
fn bindgen_test_layout_TF_AttrMetadata() {
    assert_eq!(
        ::std::mem::size_of::<TF_AttrMetadata>(),
        32usize,
        concat!("Size of: ", stringify!(TF_AttrMetadata))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_AttrMetadata>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_AttrMetadata))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_AttrMetadata>())).is_list as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AttrMetadata),
            "::",
            stringify!(is_list)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_AttrMetadata>())).list_size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AttrMetadata),
            "::",
            stringify!(list_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_AttrMetadata>())).type_ as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AttrMetadata),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_AttrMetadata>())).total_size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_AttrMetadata),
            "::",
            stringify!(total_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_ImportGraphDefOptions {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_ImportGraphDefResults {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_WhileParams {
    pub ninputs: ::std::os::raw::c_int,
    pub cond_graph: *mut TF_Graph,
    pub cond_inputs: *const TF_Output,
    pub cond_output: TF_Output,
    pub body_graph: *mut TF_Graph,
    pub body_inputs: *const TF_Output,
    pub body_outputs: *mut TF_Output,
    pub name: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_TF_WhileParams() {
    assert_eq!(
        ::std::mem::size_of::<TF_WhileParams>(),
        72usize,
        concat!("Size of: ", stringify!(TF_WhileParams))
    );
    assert_eq!(
        ::std::mem::align_of::<TF_WhileParams>(),
        8usize,
        concat!("Alignment of ", stringify!(TF_WhileParams))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).ninputs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(ninputs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).cond_graph as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(cond_graph)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).cond_inputs as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(cond_inputs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).cond_output as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(cond_output)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).body_graph as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(body_graph)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).body_inputs as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(body_inputs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).body_outputs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(body_outputs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TF_WhileParams>())).name as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(TF_WhileParams),
            "::",
            stringify!(name)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Session {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_DeprecatedSession {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_DeviceList {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Library {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_ApiDefMap {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TF_Server {
    _unused: [u8; 0],
}
