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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_STATUS_HANDLE_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_MOL_HANDLE_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_INCHIBUILDER_HANDLE_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_INCHIKEYBUILDER_HANDLE_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_ATOMID_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_BONDID_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_STEREOID_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXA_POLYMERUNITID_STRUCT {
pub dummy: ::std::os::raw::c_int,
}
pub type IXA_STATUS_HANDLE = *mut IXA_STATUS_HANDLE_STRUCT;
pub type IXA_MOL_HANDLE = *mut IXA_MOL_HANDLE_STRUCT;
pub type IXA_INCHIBUILDER_HANDLE = *mut IXA_INCHIBUILDER_HANDLE_STRUCT;
pub type IXA_INCHIKEYBUILDER_HANDLE = *mut IXA_INCHIKEYBUILDER_HANDLE_STRUCT;
pub type IXA_ATOMID = *mut IXA_ATOMID_STRUCT;
pub type IXA_BONDID = *mut IXA_BONDID_STRUCT;
pub type IXA_STEREOID = *mut IXA_STEREOID_STRUCT;
pub type IXA_POLYMERUNITID = *mut IXA_POLYMERUNITID_STRUCT;
pub type IXA_STATUS = ::std::os::raw::c_uint;
pub const IXA_STATUS_SUCCESS: IXA_STATUS = 0;
pub const IXA_STATUS_WARNING: IXA_STATUS = 1;
pub const IXA_STATUS_ERROR: IXA_STATUS = 2;
pub type IXA_BOOL = ::std::os::raw::c_uint;
pub const IXA_FALSE: IXA_BOOL = 0;
pub const IXA_TRUE: IXA_BOOL = 1;
pub type IXA_ATOM_RADICAL = ::std::os::raw::c_uint;
pub const IXA_ATOM_RADICAL_NONE: IXA_ATOM_RADICAL = 0;
pub const IXA_ATOM_RADICAL_SINGLET: IXA_ATOM_RADICAL = 1;
pub const IXA_ATOM_RADICAL_DOUBLET: IXA_ATOM_RADICAL = 2;
pub const IXA_ATOM_RADICAL_TRIPLET: IXA_ATOM_RADICAL = 3;
pub type IXA_BOND_TYPE = ::std::os::raw::c_uint;
pub const IXA_BOND_TYPE_SINGLE: IXA_BOND_TYPE = 1;
pub const IXA_BOND_TYPE_DOUBLE: IXA_BOND_TYPE = 2;
pub const IXA_BOND_TYPE_TRIPLE: IXA_BOND_TYPE = 3;
pub const IXA_BOND_TYPE_AROMATIC: IXA_BOND_TYPE = 4;
pub type IXA_BOND_WEDGE = ::std::os::raw::c_uint;
pub const IXA_BOND_WEDGE_NONE: IXA_BOND_WEDGE = 0;
pub const IXA_BOND_WEDGE_UP: IXA_BOND_WEDGE = 1;
pub const IXA_BOND_WEDGE_DOWN: IXA_BOND_WEDGE = 2;
pub const IXA_BOND_WEDGE_EITHER: IXA_BOND_WEDGE = 3;
pub type IXA_DBLBOND_CONFIG = ::std::os::raw::c_uint;
pub const IXA_DBLBOND_CONFIG_PERCEIVE: IXA_DBLBOND_CONFIG = 0;
pub const IXA_DBLBOND_CONFIG_EITHER: IXA_DBLBOND_CONFIG = 1;
pub type IXA_STEREO_TOPOLOGY = ::std::os::raw::c_uint;
pub const IXA_STEREO_TOPOLOGY_INVALID: IXA_STEREO_TOPOLOGY = 0;
pub const IXA_STEREO_TOPOLOGY_TETRAHEDRON: IXA_STEREO_TOPOLOGY = 2;
pub const IXA_STEREO_TOPOLOGY_RECTANGLE: IXA_STEREO_TOPOLOGY = 3;
pub const IXA_STEREO_TOPOLOGY_ANTIRECTANGLE: IXA_STEREO_TOPOLOGY = 4;
pub type IXA_STEREO_PARITY = ::std::os::raw::c_uint;
pub const IXA_STEREO_PARITY_NONE: IXA_STEREO_PARITY = 0;
pub const IXA_STEREO_PARITY_ODD: IXA_STEREO_PARITY = 1;
pub const IXA_STEREO_PARITY_EVEN: IXA_STEREO_PARITY = 2;
pub const IXA_STEREO_PARITY_UNKNOWN: IXA_STEREO_PARITY = 3;
pub type IXA_INCHIBUILDER_OPTION = ::std::os::raw::c_uint;
pub const IXA_INCHIBUILDER_OPTION_NewPsOff: IXA_INCHIBUILDER_OPTION = 0;
pub const IXA_INCHIBUILDER_OPTION_DoNotAddH: IXA_INCHIBUILDER_OPTION = 1;
pub const IXA_INCHIBUILDER_OPTION_SUU: IXA_INCHIBUILDER_OPTION = 2;
pub const IXA_INCHIBUILDER_OPTION_SLUUD: IXA_INCHIBUILDER_OPTION = 3;
pub const IXA_INCHIBUILDER_OPTION_FixedH: IXA_INCHIBUILDER_OPTION = 4;
pub const IXA_INCHIBUILDER_OPTION_RecMet: IXA_INCHIBUILDER_OPTION = 5;
pub const IXA_INCHIBUILDER_OPTION_KET: IXA_INCHIBUILDER_OPTION = 6;
pub const IXA_INCHIBUILDER_OPTION_15T: IXA_INCHIBUILDER_OPTION = 7;
pub const IXA_INCHIBUILDER_OPTION_SaveOpt: IXA_INCHIBUILDER_OPTION = 8;
pub const IXA_INCHIBUILDER_OPTION_AuxNone: IXA_INCHIBUILDER_OPTION = 9;
pub const IXA_INCHIBUILDER_OPTION_WarnOnEmptyStructure: IXA_INCHIBUILDER_OPTION = 10;
pub const IXA_INCHIBUILDER_OPTION_LargeMolecules: IXA_INCHIBUILDER_OPTION = 11;
pub const IXA_INCHIBUILDER_OPTION_Polymers: IXA_INCHIBUILDER_OPTION = 12;
pub const IXA_INCHIBUILDER_OPTION_Polymers105: IXA_INCHIBUILDER_OPTION = 13;
pub const IXA_INCHIBUILDER_OPTION_Polymers105Plus: IXA_INCHIBUILDER_OPTION = 14;
pub const IXA_INCHIBUILDER_OPTION_FilterSS: IXA_INCHIBUILDER_OPTION = 15;
pub const IXA_INCHIBUILDER_OPTION_InvFilterSS: IXA_INCHIBUILDER_OPTION = 16;
pub const IXA_INCHIBUILDER_OPTION_NPZZ: IXA_INCHIBUILDER_OPTION = 17;
pub const IXA_INCHIBUILDER_OPTION_SATZZ: IXA_INCHIBUILDER_OPTION = 18;
pub const IXA_INCHIBUILDER_OPTION_NoFrameShift: IXA_INCHIBUILDER_OPTION = 19;
pub const IXA_INCHIBUILDER_OPTION_FoldCRU: IXA_INCHIBUILDER_OPTION = 20;
pub const IXA_INCHIBUILDER_OPTION_NoEdits: IXA_INCHIBUILDER_OPTION = 21;
pub const IXA_INCHIBUILDER_OPTION_LooseTSACheck: IXA_INCHIBUILDER_OPTION = 22;
pub const IXA_INCHIBUILDER_OPTION_OutErrInChI: IXA_INCHIBUILDER_OPTION = 23;
pub const IXA_INCHIBUILDER_OPTION_NoWarnings: IXA_INCHIBUILDER_OPTION = 24;
pub type IXA_INCHIBUILDER_STEREOOPTION = ::std::os::raw::c_uint;
pub const IXA_INCHIBUILDER_STEREOOPTION_SAbs: IXA_INCHIBUILDER_STEREOOPTION = 0;
pub const IXA_INCHIBUILDER_STEREOOPTION_SNon: IXA_INCHIBUILDER_STEREOOPTION = 1;
pub const IXA_INCHIBUILDER_STEREOOPTION_SRel: IXA_INCHIBUILDER_STEREOOPTION = 2;
pub const IXA_INCHIBUILDER_STEREOOPTION_SRac: IXA_INCHIBUILDER_STEREOOPTION = 3;
pub const IXA_INCHIBUILDER_STEREOOPTION_SUCF: IXA_INCHIBUILDER_STEREOOPTION = 4;
extern "C" {
pub fn IXA_STATUS_Create() -> IXA_STATUS_HANDLE;
pub fn IXA_STATUS_Clear(hStatus: IXA_STATUS_HANDLE);
pub fn IXA_STATUS_Destroy(hStatus: IXA_STATUS_HANDLE);
pub fn IXA_STATUS_HasError(hStatus: IXA_STATUS_HANDLE) -> IXA_BOOL;
pub fn IXA_STATUS_HasWarning(hStatus: IXA_STATUS_HANDLE) -> IXA_BOOL;
pub fn IXA_STATUS_GetCount(hStatus: IXA_STATUS_HANDLE) -> ::std::os::raw::c_int;
pub fn IXA_STATUS_GetSeverity(
hStatus: IXA_STATUS_HANDLE,
vIndex: ::std::os::raw::c_int,
) -> IXA_STATUS;
pub fn IXA_STATUS_GetMessage(
hStatus: IXA_STATUS_HANDLE,
vIndex: ::std::os::raw::c_int,
) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn IXA_MOL_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_MOL_HANDLE;
pub fn IXA_MOL_Clear(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE);
pub fn IXA_MOL_Destroy(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE);
pub fn IXA_MOL_ReadMolfile(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
pBytes: *const ::std::os::raw::c_char,
);
pub fn IXA_MOL_ReadInChI(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
pInChI: *const ::std::os::raw::c_char,
);
pub fn IXA_MOL_SetChiral(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vChiral: IXA_BOOL,
);
pub fn IXA_MOL_GetChiral(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE) -> IXA_BOOL;
}
extern "C" {
pub fn IXA_MOL_GetNumAtoms(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetNumBonds(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomId(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtomIndex: ::std::os::raw::c_int,
) -> IXA_ATOMID;
pub fn IXA_MOL_GetBondId(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBondIndex: ::std::os::raw::c_int,
) -> IXA_BONDID;
pub fn IXA_MOL_GetAtomIndex(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetBondIndex(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomNumBonds(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomBond(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
vBondIndex: ::std::os::raw::c_int,
) -> IXA_BONDID;
pub fn IXA_MOL_GetCommonBond(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom1: IXA_ATOMID,
vAtom2: IXA_ATOMID,
) -> IXA_BONDID;
pub fn IXA_MOL_GetBondAtom1(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
) -> IXA_ATOMID;
pub fn IXA_MOL_GetBondAtom2(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
) -> IXA_ATOMID;
pub fn IXA_MOL_GetBondOtherAtom(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
vAtom: IXA_ATOMID,
) -> IXA_ATOMID;
}
extern "C" {
pub fn IXA_MOL_GetAtomElement(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> *const ::std::os::raw::c_char;
pub fn IXA_MOL_GetAtomAtomicNumber(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomMass(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomCharge(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomRadical(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> IXA_ATOM_RADICAL;
pub fn IXA_MOL_GetAtomHydrogens(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
vHydrogenMassNumber: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetAtomX(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> f64;
pub fn IXA_MOL_GetAtomY(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> f64;
pub fn IXA_MOL_GetAtomZ(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vAtom: IXA_ATOMID,
) -> f64;
}
extern "C" {
pub fn IXA_MOL_GetBondType(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
) -> IXA_BOND_TYPE;
pub fn IXA_MOL_GetBondWedge(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
vRefAtom: IXA_ATOMID,
) -> IXA_BOND_WEDGE;
pub fn IXA_MOL_GetDblBondConfig(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vBond: IXA_BONDID,
) -> IXA_DBLBOND_CONFIG;
}
extern "C" {
pub fn IXA_MOL_GetNumStereos(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetStereoId(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereoIndex: ::std::os::raw::c_int,
) -> IXA_STEREOID;
pub fn IXA_MOL_GetStereoIndex(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetStereoTopology(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> IXA_STEREO_TOPOLOGY;
pub fn IXA_MOL_GetStereoCentralAtom(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> IXA_ATOMID;
pub fn IXA_MOL_GetStereoCentralBond(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> IXA_BONDID;
pub fn IXA_MOL_GetStereoNumVertices(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> ::std::os::raw::c_int;
pub fn IXA_MOL_GetStereoVertex(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
vVertexIndex: ::std::os::raw::c_int,
) -> IXA_ATOMID;
pub fn IXA_MOL_GetStereoParity(
hStatus: IXA_STATUS_HANDLE,
hMolecule: IXA_MOL_HANDLE,
vStereo: IXA_STEREOID,
) -> IXA_STEREO_PARITY;
}
extern "C" {
pub fn IXA_INCHIBUILDER_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_INCHIBUILDER_HANDLE;
pub fn IXA_INCHIBUILDER_SetMolecule(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
hMolecule: IXA_MOL_HANDLE,
);
pub fn IXA_INCHIBUILDER_GetInChIVersion(
vFullDescription: IXA_BOOL,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIBUILDER_GetInChI(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIBUILDER_GetInChIEx(
hStatus: IXA_STATUS_HANDLE,
hBuilder: IXA_INCHIBUILDER_HANDLE,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIBUILDER_GetAuxInfo(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIBUILDER_GetLog(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIBUILDER_Destroy(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
);
pub fn IXA_INCHIBUILDER_SetOption(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vOption: IXA_INCHIBUILDER_OPTION,
vValue: IXA_BOOL,
);
pub fn IXA_INCHIBUILDER_SetOption_Stereo(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vValue: IXA_INCHIBUILDER_STEREOOPTION,
);
pub fn IXA_INCHIBUILDER_SetOption_Timeout(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vValue: ::std::os::raw::c_int,
);
pub fn IXA_INCHIBUILDER_SetOption_Timeout_MilliSeconds(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vValue: ::std::os::raw::c_long,
);
pub fn IXA_INCHIBUILDER_CheckOption(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vOption: IXA_INCHIBUILDER_OPTION,
) -> IXA_BOOL;
pub fn IXA_INCHIBUILDER_CheckOption_Stereo(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
vValue: IXA_INCHIBUILDER_STEREOOPTION,
) -> IXA_BOOL;
pub fn IXA_INCHIBUILDER_GetOption_Timeout_MilliSeconds(
hStatus: IXA_STATUS_HANDLE,
hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn IXA_INCHIKEYBUILDER_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_INCHIKEYBUILDER_HANDLE;
pub fn IXA_INCHIKEYBUILDER_SetInChI(
hStatus: IXA_STATUS_HANDLE,
hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
pInChI: *const ::std::os::raw::c_char,
);
pub fn IXA_INCHIKEYBUILDER_GetInChIKey(
hStatus: IXA_STATUS_HANDLE,
hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
) -> *const ::std::os::raw::c_char;
pub fn IXA_INCHIKEYBUILDER_Destroy(
hStatus: IXA_STATUS_HANDLE,
hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
);
}