pub const MAXVAL: u32 = 20;
pub const ATOM_EL_LEN: u32 = 6;
pub const NUM_H_ISOTOPES: u32 = 3;
pub const ISOTOPIC_SHIFT_FLAG: u32 = 10000;
pub const ISOTOPIC_SHIFT_MAX: u32 = 100;
pub const NO_ATOM: i32 = -1;
pub const INCHI_STRING_PREFIX: &[u8; 7] = b"InChI=\0";
pub const INCHI_NUM: u32 = 2;
pub const INCHI_RADICAL_NONE: tagINCHIRadical = 0;
pub const INCHI_RADICAL_SINGLET: tagINCHIRadical = 1;
pub const INCHI_RADICAL_DOUBLET: tagINCHIRadical = 2;
pub const INCHI_RADICAL_TRIPLET: tagINCHIRadical = 3;
pub type tagINCHIRadical = ::std::os::raw::c_uint;
pub use self::tagINCHIRadical as inchi_Radical;
pub const INCHI_BOND_TYPE_NONE: tagINCHIBondType = 0;
pub const INCHI_BOND_TYPE_SINGLE: tagINCHIBondType = 1;
pub const INCHI_BOND_TYPE_DOUBLE: tagINCHIBondType = 2;
pub const INCHI_BOND_TYPE_TRIPLE: tagINCHIBondType = 3;
pub const INCHI_BOND_TYPE_ALTERN: tagINCHIBondType = 4;
pub type tagINCHIBondType = ::std::os::raw::c_uint;
pub use self::tagINCHIBondType as inchi_BondType;
pub const INCHI_BOND_STEREO_NONE: tagINCHIBondStereo2D = 0;
pub const INCHI_BOND_STEREO_SINGLE_1UP: tagINCHIBondStereo2D = 1;
pub const INCHI_BOND_STEREO_SINGLE_1EITHER: tagINCHIBondStereo2D = 4;
pub const INCHI_BOND_STEREO_SINGLE_1DOWN: tagINCHIBondStereo2D = 6;
pub const INCHI_BOND_STEREO_SINGLE_2UP: tagINCHIBondStereo2D = -1;
pub const INCHI_BOND_STEREO_SINGLE_2EITHER: tagINCHIBondStereo2D = -4;
pub const INCHI_BOND_STEREO_SINGLE_2DOWN: tagINCHIBondStereo2D = -6;
pub const INCHI_BOND_STEREO_DOUBLE_EITHER: tagINCHIBondStereo2D = 3;
pub type tagINCHIBondStereo2D = ::std::os::raw::c_int;
pub use self::tagINCHIBondStereo2D as inchi_BondStereo2D;
pub type S_CHAR = ::std::os::raw::c_schar;
pub type S_SHORT = ::std::os::raw::c_short;
pub type AT_NUM = S_SHORT;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct tagInchiAtom {
pub x: f64,
pub y: f64,
pub z: f64,
pub neighbor: [AT_NUM; 20usize],
pub bond_type: [S_CHAR; 20usize],
pub bond_stereo: [S_CHAR; 20usize],
pub elname: [::std::os::raw::c_char; 6usize],
pub num_bonds: AT_NUM,
pub num_iso_H: [S_CHAR; 4usize],
pub isotopic_mass: AT_NUM,
pub radical: S_CHAR,
pub charge: S_CHAR,
}
pub type inchi_Atom = tagInchiAtom;
pub const INCHI_StereoType_None: tagINCHIStereoType0D = 0;
pub const INCHI_StereoType_DoubleBond: tagINCHIStereoType0D = 1;
pub const INCHI_StereoType_Tetrahedral: tagINCHIStereoType0D = 2;
pub const INCHI_StereoType_Allene: tagINCHIStereoType0D = 3;
pub type tagINCHIStereoType0D = ::std::os::raw::c_uint;
pub use self::tagINCHIStereoType0D as inchi_StereoType0D;
pub const INCHI_PARITY_NONE: tagINCHIStereoParity0D = 0;
pub const INCHI_PARITY_ODD: tagINCHIStereoParity0D = 1;
pub const INCHI_PARITY_EVEN: tagINCHIStereoParity0D = 2;
pub const INCHI_PARITY_UNKNOWN: tagINCHIStereoParity0D = 3;
pub const INCHI_PARITY_UNDEFINED: tagINCHIStereoParity0D = 4;
pub type tagINCHIStereoParity0D = ::std::os::raw::c_uint;
pub use self::tagINCHIStereoParity0D as inchi_StereoParity0D;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct tagINCHIStereo0D {
pub neighbor: [AT_NUM; 4usize],
pub central_atom: AT_NUM,
pub type_: S_CHAR,
pub parity: S_CHAR,
}
pub type inchi_Stereo0D = tagINCHIStereo0D;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINCHI_Input {
pub atom: *mut inchi_Atom,
pub stereo0D: *mut inchi_Stereo0D,
pub szOptions: *mut ::std::os::raw::c_char,
pub num_atoms: AT_NUM,
pub num_stereo0D: AT_NUM,
}
impl Default for tagINCHI_Input {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type inchi_Input = tagINCHI_Input;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inchi_Input_PolymerUnit {
pub id: ::std::os::raw::c_int,
pub type_: ::std::os::raw::c_int,
pub subtype: ::std::os::raw::c_int,
pub conn: ::std::os::raw::c_int,
pub label: ::std::os::raw::c_int,
pub na: ::std::os::raw::c_int,
pub nb: ::std::os::raw::c_int,
pub xbr1: [f64; 4usize],
pub xbr2: [f64; 4usize],
pub smt: [::std::os::raw::c_char; 80usize],
pub alist: *mut ::std::os::raw::c_int,
pub blist: *mut ::std::os::raw::c_int,
}
impl Default for inchi_Input_PolymerUnit {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inchi_Input_Polymer {
pub units: *mut *mut inchi_Input_PolymerUnit,
pub n: ::std::os::raw::c_int,
}
impl Default for inchi_Input_Polymer {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inchi_Input_V3000 {
pub n_non_star_atoms: ::std::os::raw::c_int,
pub n_star_atoms: ::std::os::raw::c_int,
pub atom_index_orig: *mut ::std::os::raw::c_int,
pub atom_index_fin: *mut ::std::os::raw::c_int,
pub n_sgroups: ::std::os::raw::c_int,
pub n_3d_constraints: ::std::os::raw::c_int,
pub n_collections: ::std::os::raw::c_int,
pub n_non_haptic_bonds: ::std::os::raw::c_int,
pub n_haptic_bonds: ::std::os::raw::c_int,
pub lists_haptic_bonds: *mut *mut ::std::os::raw::c_int,
pub n_steabs: ::std::os::raw::c_int,
pub lists_steabs: *mut *mut ::std::os::raw::c_int,
pub n_sterel: ::std::os::raw::c_int,
pub lists_sterel: *mut *mut ::std::os::raw::c_int,
pub n_sterac: ::std::os::raw::c_int,
pub lists_sterac: *mut *mut ::std::os::raw::c_int,
}
impl Default for inchi_Input_V3000 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct inchi_InputEx {
pub atom: *mut inchi_Atom,
pub stereo0D: *mut inchi_Stereo0D,
pub szOptions: *mut ::std::os::raw::c_char,
pub num_atoms: AT_NUM,
pub num_stereo0D: AT_NUM,
pub polymer: *mut inchi_Input_Polymer,
pub v3000: *mut inchi_Input_V3000,
}
impl Default for inchi_InputEx {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINCHI_InputINCHI {
pub szInChI: *mut ::std::os::raw::c_char,
pub szOptions: *mut ::std::os::raw::c_char,
}
impl Default for tagINCHI_InputINCHI {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type inchi_InputINCHI = tagINCHI_InputINCHI;
pub type inchi_Output_PolymerUnit = inchi_Input_PolymerUnit;
pub type inchi_Output_Polymer = inchi_Input_Polymer;
pub type inchi_Output_V3000 = inchi_Input_V3000;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINCHI_Output {
pub szInChI: *mut ::std::os::raw::c_char,
pub szAuxInfo: *mut ::std::os::raw::c_char,
pub szMessage: *mut ::std::os::raw::c_char,
pub szLog: *mut ::std::os::raw::c_char,
}
impl Default for tagINCHI_Output {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type inchi_Output = tagINCHI_Output;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINCHI_OutputStruct {
pub atom: *mut inchi_Atom,
pub stereo0D: *mut inchi_Stereo0D,
pub num_atoms: AT_NUM,
pub num_stereo0D: AT_NUM,
pub szMessage: *mut ::std::os::raw::c_char,
pub szLog: *mut ::std::os::raw::c_char,
pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
}
impl Default for tagINCHI_OutputStruct {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type inchi_OutputStruct = tagINCHI_OutputStruct;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINCHI_OutputStructEx {
pub atom: *mut inchi_Atom,
pub stereo0D: *mut inchi_Stereo0D,
pub num_atoms: AT_NUM,
pub num_stereo0D: AT_NUM,
pub szMessage: *mut ::std::os::raw::c_char,
pub szLog: *mut ::std::os::raw::c_char,
pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
pub polymer: *mut inchi_Output_Polymer,
pub v3000: *mut inchi_Output_V3000,
}
impl Default for tagINCHI_OutputStructEx {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type inchi_OutputStructEx = tagINCHI_OutputStructEx;
pub const inchi_Ret_BREAK: tagRetValGetINCHI = -100;
pub const inchi_Ret_SKIP: tagRetValGetINCHI = -2;
pub const inchi_Ret_EOF: tagRetValGetINCHI = -1;
pub const inchi_Ret_OKAY: tagRetValGetINCHI = 0;
pub const inchi_Ret_WARNING: tagRetValGetINCHI = 1;
pub const inchi_Ret_ERROR: tagRetValGetINCHI = 2;
pub const inchi_Ret_FATAL: tagRetValGetINCHI = 3;
pub const inchi_Ret_UNKNOWN: tagRetValGetINCHI = 4;
pub const inchi_Ret_BUSY: tagRetValGetINCHI = 5;
pub type tagRetValGetINCHI = ::std::os::raw::c_int;
pub use self::tagRetValGetINCHI as RetValGetINCHI;
pub const mol2inchi_Ret_OKAY: tagRetValMOL2INCHI = 0;
pub const mol2inchi_Ret_WARNING: tagRetValMOL2INCHI = 1;
pub const mol2inchi_Ret_EOF: tagRetValMOL2INCHI = -1;
pub const mol2inchi_Ret_ERROR: tagRetValMOL2INCHI = 2;
pub const mol2inchi_Ret_ERROR_get: tagRetValMOL2INCHI = 4;
pub const mol2inchi_Ret_ERROR_comp: tagRetValMOL2INCHI = 5;
pub type tagRetValMOL2INCHI = ::std::os::raw::c_int;
pub use self::tagRetValMOL2INCHI as RetValMol2INCHI;
pub const INCHI_VALID_STANDARD: tagRetValCheckINCHI = 0;
pub const INCHI_VALID_NON_STANDARD: tagRetValCheckINCHI = 1;
pub const INCHI_VALID_BETA: tagRetValCheckINCHI = 2;
pub const INCHI_INVALID_PREFIX: tagRetValCheckINCHI = 3;
pub const INCHI_INVALID_VERSION: tagRetValCheckINCHI = 4;
pub const INCHI_INVALID_LAYOUT: tagRetValCheckINCHI = 5;
pub const INCHI_FAIL_I2I: tagRetValCheckINCHI = 6;
pub type tagRetValCheckINCHI = ::std::os::raw::c_uint;
pub use self::tagRetValCheckINCHI as RetValCheckINCHI;
extern "C" {
pub fn GetINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetStdINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetINCHIEx(inp: *mut inchi_InputEx, out: *mut inchi_Output) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn FreeINCHI(out: *mut inchi_Output);
}
extern "C" {
pub fn FreeStdINCHI(out: *mut inchi_Output);
}
extern "C" {
pub fn GetStringLength(p: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetStructFromINCHI(
inpInChI: *mut inchi_InputINCHI,
outStruct: *mut inchi_OutputStruct,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetStructFromStdINCHI(
inpInChI: *mut inchi_InputINCHI,
outStruct: *mut inchi_OutputStruct,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetStructFromINCHIEx(
inpInChI: *mut inchi_InputINCHI,
outStruct: *mut inchi_OutputStructEx,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn FreeStructFromINCHI(out: *mut inchi_OutputStruct);
}
extern "C" {
pub fn FreeStructFromStdINCHI(out: *mut inchi_OutputStruct);
}
extern "C" {
pub fn FreeStructFromINCHIEx(out: *mut inchi_OutputStructEx);
}
extern "C" {
pub fn GetINCHIfromINCHI(
inpInChI: *mut inchi_InputINCHI,
out: *mut inchi_Output,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagInchiInpData {
pub pInp: *mut inchi_Input,
pub bChiral: ::std::os::raw::c_int,
pub szErrMsg: [::std::os::raw::c_char; 256usize],
}
impl Default for tagInchiInpData {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type InchiInpData = tagInchiInpData;
extern "C" {
pub fn Get_inchi_Input_FromAuxInfo(
szInchiAuxInfo: *mut ::std::os::raw::c_char,
bDoNotAddH: ::std::os::raw::c_int,
bDiffUnkUndfStereo: ::std::os::raw::c_int,
pInchiInp: *mut InchiInpData,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn Get_std_inchi_Input_FromAuxInfo(
szInchiAuxInfo: *mut ::std::os::raw::c_char,
bDoNotAddH: ::std::os::raw::c_int,
pInchiInp: *mut InchiInpData,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn Free_inchi_Input(pInp: *mut inchi_Input);
}
extern "C" {
pub fn Free_std_inchi_Input(pInp: *mut inchi_Input);
}
extern "C" {
pub fn CheckINCHI(
szINCHI: *const ::std::os::raw::c_char,
strict: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
pub const INCHIKEY_VALID_STANDARD: tagRetValGetINCHIKey = 0;
pub const INCHIKEY_VALID_NON_STANDARD: tagRetValGetINCHIKey = -1;
pub const INCHIKEY_INVALID_LENGTH: tagRetValGetINCHIKey = 1;
pub const INCHIKEY_INVALID_LAYOUT: tagRetValGetINCHIKey = 2;
pub const INCHIKEY_INVALID_VERSION: tagRetValGetINCHIKey = 3;
pub type tagRetValGetINCHIKey = ::std::os::raw::c_int;
pub use self::tagRetValGetINCHIKey as RetValCheckINCHIKeyv;
extern "C" {
pub fn GetINCHIKeyFromINCHI(
szINCHISource: *const ::std::os::raw::c_char,
xtra1: ::std::os::raw::c_int,
xtra2: ::std::os::raw::c_int,
szINCHIKey: *mut ::std::os::raw::c_char,
szXtra1: *mut ::std::os::raw::c_char,
szXtra2: *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn GetStdINCHIKeyFromStdINCHI(
szINCHISource: *const ::std::os::raw::c_char,
szINCHIKey: *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn CheckINCHIKey(szINCHIKey: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
pub type INCHI_MODES = ::std::os::raw::c_ulong;
extern "C" {
pub fn MakeINCHIFromMolfileText(
moltext: *const ::std::os::raw::c_char,
options: *mut ::std::os::raw::c_char,
result: *mut inchi_Output,
) -> ::std::os::raw::c_int;
}