1pub const MAXVAL: u32 = 20;
4pub const ATOM_EL_LEN: u32 = 6;
5pub const NUM_H_ISOTOPES: u32 = 3;
6pub const ISOTOPIC_SHIFT_FLAG: u32 = 10000;
7pub const ISOTOPIC_SHIFT_MAX: u32 = 100;
8pub const NO_ATOM: i32 = -1;
9pub const INCHI_STRING_PREFIX: &[u8; 7] = b"InChI=\0";
10pub const INCHI_NUM: u32 = 2;
11pub const INCHI_RADICAL_NONE: tagINCHIRadical = 0;
12pub const INCHI_RADICAL_SINGLET: tagINCHIRadical = 1;
13pub const INCHI_RADICAL_DOUBLET: tagINCHIRadical = 2;
14pub const INCHI_RADICAL_TRIPLET: tagINCHIRadical = 3;
15pub type tagINCHIRadical = ::std::os::raw::c_uint;
16pub use self::tagINCHIRadical as inchi_Radical;
17pub const INCHI_BOND_TYPE_NONE: tagINCHIBondType = 0;
18pub const INCHI_BOND_TYPE_SINGLE: tagINCHIBondType = 1;
19pub const INCHI_BOND_TYPE_DOUBLE: tagINCHIBondType = 2;
20pub const INCHI_BOND_TYPE_TRIPLE: tagINCHIBondType = 3;
21pub const INCHI_BOND_TYPE_ALTERN: tagINCHIBondType = 4;
22pub type tagINCHIBondType = ::std::os::raw::c_uint;
23pub use self::tagINCHIBondType as inchi_BondType;
24pub const INCHI_BOND_STEREO_NONE: tagINCHIBondStereo2D = 0;
25pub const INCHI_BOND_STEREO_SINGLE_1UP: tagINCHIBondStereo2D = 1;
26pub const INCHI_BOND_STEREO_SINGLE_1EITHER: tagINCHIBondStereo2D = 4;
27pub const INCHI_BOND_STEREO_SINGLE_1DOWN: tagINCHIBondStereo2D = 6;
28pub const INCHI_BOND_STEREO_SINGLE_2UP: tagINCHIBondStereo2D = -1;
29pub const INCHI_BOND_STEREO_SINGLE_2EITHER: tagINCHIBondStereo2D = -4;
30pub const INCHI_BOND_STEREO_SINGLE_2DOWN: tagINCHIBondStereo2D = -6;
31pub const INCHI_BOND_STEREO_DOUBLE_EITHER: tagINCHIBondStereo2D = 3;
32pub type tagINCHIBondStereo2D = ::std::os::raw::c_int;
33pub use self::tagINCHIBondStereo2D as inchi_BondStereo2D;
34pub type S_CHAR = ::std::os::raw::c_schar;
35pub type S_SHORT = ::std::os::raw::c_short;
36pub type AT_NUM = S_SHORT;
37#[repr(C)]
38#[derive(Debug, Default, Copy, Clone)]
39pub struct tagInchiAtom {
40 pub x: f64,
41 pub y: f64,
42 pub z: f64,
43 pub neighbor: [AT_NUM; 20usize],
44 pub bond_type: [S_CHAR; 20usize],
45 pub bond_stereo: [S_CHAR; 20usize],
46 pub elname: [::std::os::raw::c_char; 6usize],
47 pub num_bonds: AT_NUM,
48 pub num_iso_H: [S_CHAR; 4usize],
49 pub isotopic_mass: AT_NUM,
50 pub radical: S_CHAR,
51 pub charge: S_CHAR,
52}
53pub type inchi_Atom = tagInchiAtom;
54pub const INCHI_StereoType_None: tagINCHIStereoType0D = 0;
55pub const INCHI_StereoType_DoubleBond: tagINCHIStereoType0D = 1;
56pub const INCHI_StereoType_Tetrahedral: tagINCHIStereoType0D = 2;
57pub const INCHI_StereoType_Allene: tagINCHIStereoType0D = 3;
58pub type tagINCHIStereoType0D = ::std::os::raw::c_uint;
59pub use self::tagINCHIStereoType0D as inchi_StereoType0D;
60pub const INCHI_PARITY_NONE: tagINCHIStereoParity0D = 0;
61pub const INCHI_PARITY_ODD: tagINCHIStereoParity0D = 1;
62pub const INCHI_PARITY_EVEN: tagINCHIStereoParity0D = 2;
63pub const INCHI_PARITY_UNKNOWN: tagINCHIStereoParity0D = 3;
64pub const INCHI_PARITY_UNDEFINED: tagINCHIStereoParity0D = 4;
65pub type tagINCHIStereoParity0D = ::std::os::raw::c_uint;
66pub use self::tagINCHIStereoParity0D as inchi_StereoParity0D;
67#[repr(C)]
68#[derive(Debug, Default, Copy, Clone)]
69pub struct tagINCHIStereo0D {
70 pub neighbor: [AT_NUM; 4usize],
71 pub central_atom: AT_NUM,
72 pub type_: S_CHAR,
73 pub parity: S_CHAR,
74}
75pub type inchi_Stereo0D = tagINCHIStereo0D;
76#[repr(C)]
77#[derive(Debug, Copy, Clone)]
78pub struct tagINCHI_Input {
79 pub atom: *mut inchi_Atom,
80 pub stereo0D: *mut inchi_Stereo0D,
81 pub szOptions: *mut ::std::os::raw::c_char,
82 pub num_atoms: AT_NUM,
83 pub num_stereo0D: AT_NUM,
84}
85impl Default for tagINCHI_Input {
86 fn default() -> Self {
87 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
88 unsafe {
89 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
90 s.assume_init()
91 }
92 }
93}
94pub type inchi_Input = tagINCHI_Input;
95#[repr(C)]
96#[derive(Debug, Copy, Clone)]
97pub struct inchi_Input_PolymerUnit {
98 pub id: ::std::os::raw::c_int,
99 pub type_: ::std::os::raw::c_int,
100 pub subtype: ::std::os::raw::c_int,
101 pub conn: ::std::os::raw::c_int,
102 pub label: ::std::os::raw::c_int,
103 pub na: ::std::os::raw::c_int,
104 pub nb: ::std::os::raw::c_int,
105 pub xbr1: [f64; 4usize],
106 pub xbr2: [f64; 4usize],
107 pub smt: [::std::os::raw::c_char; 80usize],
108 pub alist: *mut ::std::os::raw::c_int,
109 pub blist: *mut ::std::os::raw::c_int,
110}
111impl Default for inchi_Input_PolymerUnit {
112 fn default() -> Self {
113 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
114 unsafe {
115 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
116 s.assume_init()
117 }
118 }
119}
120#[repr(C)]
121#[derive(Debug, Copy, Clone)]
122pub struct inchi_Input_Polymer {
123 pub units: *mut *mut inchi_Input_PolymerUnit,
124 pub n: ::std::os::raw::c_int,
125}
126impl Default for inchi_Input_Polymer {
127 fn default() -> Self {
128 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
129 unsafe {
130 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
131 s.assume_init()
132 }
133 }
134}
135#[repr(C)]
136#[derive(Debug, Copy, Clone)]
137pub struct inchi_Input_V3000 {
138 pub n_non_star_atoms: ::std::os::raw::c_int,
139 pub n_star_atoms: ::std::os::raw::c_int,
140 pub atom_index_orig: *mut ::std::os::raw::c_int,
141 pub atom_index_fin: *mut ::std::os::raw::c_int,
142 pub n_sgroups: ::std::os::raw::c_int,
143 pub n_3d_constraints: ::std::os::raw::c_int,
144 pub n_collections: ::std::os::raw::c_int,
145 pub n_non_haptic_bonds: ::std::os::raw::c_int,
146 pub n_haptic_bonds: ::std::os::raw::c_int,
147 pub lists_haptic_bonds: *mut *mut ::std::os::raw::c_int,
148 pub n_steabs: ::std::os::raw::c_int,
149 pub lists_steabs: *mut *mut ::std::os::raw::c_int,
150 pub n_sterel: ::std::os::raw::c_int,
151 pub lists_sterel: *mut *mut ::std::os::raw::c_int,
152 pub n_sterac: ::std::os::raw::c_int,
153 pub lists_sterac: *mut *mut ::std::os::raw::c_int,
154}
155impl Default for inchi_Input_V3000 {
156 fn default() -> Self {
157 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
158 unsafe {
159 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
160 s.assume_init()
161 }
162 }
163}
164#[repr(C)]
165#[derive(Debug, Copy, Clone)]
166pub struct inchi_InputEx {
167 pub atom: *mut inchi_Atom,
168 pub stereo0D: *mut inchi_Stereo0D,
169 pub szOptions: *mut ::std::os::raw::c_char,
170 pub num_atoms: AT_NUM,
171 pub num_stereo0D: AT_NUM,
172 pub polymer: *mut inchi_Input_Polymer,
173 pub v3000: *mut inchi_Input_V3000,
174}
175impl Default for inchi_InputEx {
176 fn default() -> Self {
177 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
178 unsafe {
179 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
180 s.assume_init()
181 }
182 }
183}
184#[repr(C)]
185#[derive(Debug, Copy, Clone)]
186pub struct tagINCHI_InputINCHI {
187 pub szInChI: *mut ::std::os::raw::c_char,
188 pub szOptions: *mut ::std::os::raw::c_char,
189}
190impl Default for tagINCHI_InputINCHI {
191 fn default() -> Self {
192 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
193 unsafe {
194 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
195 s.assume_init()
196 }
197 }
198}
199pub type inchi_InputINCHI = tagINCHI_InputINCHI;
200pub type inchi_Output_PolymerUnit = inchi_Input_PolymerUnit;
201pub type inchi_Output_Polymer = inchi_Input_Polymer;
202pub type inchi_Output_V3000 = inchi_Input_V3000;
203#[repr(C)]
204#[derive(Debug, Copy, Clone)]
205pub struct tagINCHI_Output {
206 pub szInChI: *mut ::std::os::raw::c_char,
207 pub szAuxInfo: *mut ::std::os::raw::c_char,
208 pub szMessage: *mut ::std::os::raw::c_char,
209 pub szLog: *mut ::std::os::raw::c_char,
210}
211impl Default for tagINCHI_Output {
212 fn default() -> Self {
213 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
214 unsafe {
215 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
216 s.assume_init()
217 }
218 }
219}
220pub type inchi_Output = tagINCHI_Output;
221#[repr(C)]
222#[derive(Debug, Copy, Clone)]
223pub struct tagINCHI_OutputStruct {
224 pub atom: *mut inchi_Atom,
225 pub stereo0D: *mut inchi_Stereo0D,
226 pub num_atoms: AT_NUM,
227 pub num_stereo0D: AT_NUM,
228 pub szMessage: *mut ::std::os::raw::c_char,
229 pub szLog: *mut ::std::os::raw::c_char,
230 pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
231}
232impl Default for tagINCHI_OutputStruct {
233 fn default() -> Self {
234 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
235 unsafe {
236 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
237 s.assume_init()
238 }
239 }
240}
241pub type inchi_OutputStruct = tagINCHI_OutputStruct;
242#[repr(C)]
243#[derive(Debug, Copy, Clone)]
244pub struct tagINCHI_OutputStructEx {
245 pub atom: *mut inchi_Atom,
246 pub stereo0D: *mut inchi_Stereo0D,
247 pub num_atoms: AT_NUM,
248 pub num_stereo0D: AT_NUM,
249 pub szMessage: *mut ::std::os::raw::c_char,
250 pub szLog: *mut ::std::os::raw::c_char,
251 pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
252 pub polymer: *mut inchi_Output_Polymer,
253 pub v3000: *mut inchi_Output_V3000,
254}
255impl Default for tagINCHI_OutputStructEx {
256 fn default() -> Self {
257 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
258 unsafe {
259 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
260 s.assume_init()
261 }
262 }
263}
264pub type inchi_OutputStructEx = tagINCHI_OutputStructEx;
265pub const inchi_Ret_BREAK: tagRetValGetINCHI = -100;
266pub const inchi_Ret_SKIP: tagRetValGetINCHI = -2;
267pub const inchi_Ret_EOF: tagRetValGetINCHI = -1;
268pub const inchi_Ret_OKAY: tagRetValGetINCHI = 0;
269pub const inchi_Ret_WARNING: tagRetValGetINCHI = 1;
270pub const inchi_Ret_ERROR: tagRetValGetINCHI = 2;
271pub const inchi_Ret_FATAL: tagRetValGetINCHI = 3;
272pub const inchi_Ret_UNKNOWN: tagRetValGetINCHI = 4;
273pub const inchi_Ret_BUSY: tagRetValGetINCHI = 5;
274pub type tagRetValGetINCHI = ::std::os::raw::c_int;
275pub use self::tagRetValGetINCHI as RetValGetINCHI;
276pub const mol2inchi_Ret_OKAY: tagRetValMOL2INCHI = 0;
277pub const mol2inchi_Ret_WARNING: tagRetValMOL2INCHI = 1;
278pub const mol2inchi_Ret_EOF: tagRetValMOL2INCHI = -1;
279pub const mol2inchi_Ret_ERROR: tagRetValMOL2INCHI = 2;
280pub const mol2inchi_Ret_ERROR_get: tagRetValMOL2INCHI = 4;
281pub const mol2inchi_Ret_ERROR_comp: tagRetValMOL2INCHI = 5;
282pub type tagRetValMOL2INCHI = ::std::os::raw::c_int;
283pub use self::tagRetValMOL2INCHI as RetValMol2INCHI;
284pub const INCHI_VALID_STANDARD: tagRetValCheckINCHI = 0;
285pub const INCHI_VALID_NON_STANDARD: tagRetValCheckINCHI = 1;
286pub const INCHI_VALID_BETA: tagRetValCheckINCHI = 2;
287pub const INCHI_INVALID_PREFIX: tagRetValCheckINCHI = 3;
288pub const INCHI_INVALID_VERSION: tagRetValCheckINCHI = 4;
289pub const INCHI_INVALID_LAYOUT: tagRetValCheckINCHI = 5;
290pub const INCHI_FAIL_I2I: tagRetValCheckINCHI = 6;
291pub type tagRetValCheckINCHI = ::std::os::raw::c_uint;
292pub use self::tagRetValCheckINCHI as RetValCheckINCHI;
293extern "C" {
294 pub fn GetINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
295}
296extern "C" {
297 pub fn GetStdINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
298}
299extern "C" {
300 pub fn GetINCHIEx(inp: *mut inchi_InputEx, out: *mut inchi_Output) -> ::std::os::raw::c_int;
301}
302extern "C" {
303 pub fn FreeINCHI(out: *mut inchi_Output);
304}
305extern "C" {
306 pub fn FreeStdINCHI(out: *mut inchi_Output);
307}
308extern "C" {
309 pub fn GetStringLength(p: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
310}
311extern "C" {
312 pub fn GetStructFromINCHI(
313 inpInChI: *mut inchi_InputINCHI,
314 outStruct: *mut inchi_OutputStruct,
315 ) -> ::std::os::raw::c_int;
316}
317extern "C" {
318 pub fn GetStructFromStdINCHI(
319 inpInChI: *mut inchi_InputINCHI,
320 outStruct: *mut inchi_OutputStruct,
321 ) -> ::std::os::raw::c_int;
322}
323extern "C" {
324 pub fn GetStructFromINCHIEx(
325 inpInChI: *mut inchi_InputINCHI,
326 outStruct: *mut inchi_OutputStructEx,
327 ) -> ::std::os::raw::c_int;
328}
329extern "C" {
330 pub fn FreeStructFromINCHI(out: *mut inchi_OutputStruct);
331}
332extern "C" {
333 pub fn FreeStructFromStdINCHI(out: *mut inchi_OutputStruct);
334}
335extern "C" {
336 pub fn FreeStructFromINCHIEx(out: *mut inchi_OutputStructEx);
337}
338extern "C" {
339 pub fn GetINCHIfromINCHI(
340 inpInChI: *mut inchi_InputINCHI,
341 out: *mut inchi_Output,
342 ) -> ::std::os::raw::c_int;
343}
344#[repr(C)]
345#[derive(Debug, Copy, Clone)]
346pub struct tagInchiInpData {
347 pub pInp: *mut inchi_Input,
348 pub bChiral: ::std::os::raw::c_int,
349 pub szErrMsg: [::std::os::raw::c_char; 256usize],
350}
351impl Default for tagInchiInpData {
352 fn default() -> Self {
353 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
354 unsafe {
355 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
356 s.assume_init()
357 }
358 }
359}
360pub type InchiInpData = tagInchiInpData;
361extern "C" {
362 pub fn Get_inchi_Input_FromAuxInfo(
363 szInchiAuxInfo: *mut ::std::os::raw::c_char,
364 bDoNotAddH: ::std::os::raw::c_int,
365 bDiffUnkUndfStereo: ::std::os::raw::c_int,
366 pInchiInp: *mut InchiInpData,
367 ) -> ::std::os::raw::c_int;
368}
369extern "C" {
370 pub fn Get_std_inchi_Input_FromAuxInfo(
371 szInchiAuxInfo: *mut ::std::os::raw::c_char,
372 bDoNotAddH: ::std::os::raw::c_int,
373 pInchiInp: *mut InchiInpData,
374 ) -> ::std::os::raw::c_int;
375}
376extern "C" {
377 pub fn Free_inchi_Input(pInp: *mut inchi_Input);
378}
379extern "C" {
380 pub fn Free_std_inchi_Input(pInp: *mut inchi_Input);
381}
382extern "C" {
383 pub fn CheckINCHI(
384 szINCHI: *const ::std::os::raw::c_char,
385 strict: ::std::os::raw::c_int,
386 ) -> ::std::os::raw::c_int;
387}
388pub const INCHIKEY_VALID_STANDARD: tagRetValGetINCHIKey = 0;
389pub const INCHIKEY_VALID_NON_STANDARD: tagRetValGetINCHIKey = -1;
390pub const INCHIKEY_INVALID_LENGTH: tagRetValGetINCHIKey = 1;
391pub const INCHIKEY_INVALID_LAYOUT: tagRetValGetINCHIKey = 2;
392pub const INCHIKEY_INVALID_VERSION: tagRetValGetINCHIKey = 3;
393pub type tagRetValGetINCHIKey = ::std::os::raw::c_int;
394pub use self::tagRetValGetINCHIKey as RetValCheckINCHIKeyv;
395extern "C" {
396 pub fn GetINCHIKeyFromINCHI(
397 szINCHISource: *const ::std::os::raw::c_char,
398 xtra1: ::std::os::raw::c_int,
399 xtra2: ::std::os::raw::c_int,
400 szINCHIKey: *mut ::std::os::raw::c_char,
401 szXtra1: *mut ::std::os::raw::c_char,
402 szXtra2: *mut ::std::os::raw::c_char,
403 ) -> ::std::os::raw::c_int;
404}
405extern "C" {
406 pub fn GetStdINCHIKeyFromStdINCHI(
407 szINCHISource: *const ::std::os::raw::c_char,
408 szINCHIKey: *mut ::std::os::raw::c_char,
409 ) -> ::std::os::raw::c_int;
410}
411extern "C" {
412 pub fn CheckINCHIKey(szINCHIKey: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
413}
414pub type INCHI_MODES = ::std::os::raw::c_ulong;
415extern "C" {
416 pub fn MakeINCHIFromMolfileText(
417 moltext: *const ::std::os::raw::c_char,
418 options: *mut ::std::os::raw::c_char,
419 result: *mut inchi_Output,
420 ) -> ::std::os::raw::c_int;
421}
422
423#[repr(C)]
434#[derive(Debug, Copy, Clone)]
435pub struct IXA_STATUS_HANDLE_STRUCT {
436 pub dummy: ::std::os::raw::c_int,
437}
438#[repr(C)]
439#[derive(Debug, Copy, Clone)]
440pub struct IXA_MOL_HANDLE_STRUCT {
441 pub dummy: ::std::os::raw::c_int,
442}
443#[repr(C)]
444#[derive(Debug, Copy, Clone)]
445pub struct IXA_INCHIBUILDER_HANDLE_STRUCT {
446 pub dummy: ::std::os::raw::c_int,
447}
448#[repr(C)]
449#[derive(Debug, Copy, Clone)]
450pub struct IXA_INCHIKEYBUILDER_HANDLE_STRUCT {
451 pub dummy: ::std::os::raw::c_int,
452}
453#[repr(C)]
454#[derive(Debug, Copy, Clone)]
455pub struct IXA_ATOMID_STRUCT {
456 pub dummy: ::std::os::raw::c_int,
457}
458#[repr(C)]
459#[derive(Debug, Copy, Clone)]
460pub struct IXA_BONDID_STRUCT {
461 pub dummy: ::std::os::raw::c_int,
462}
463#[repr(C)]
464#[derive(Debug, Copy, Clone)]
465pub struct IXA_STEREOID_STRUCT {
466 pub dummy: ::std::os::raw::c_int,
467}
468#[repr(C)]
469#[derive(Debug, Copy, Clone)]
470pub struct IXA_POLYMERUNITID_STRUCT {
471 pub dummy: ::std::os::raw::c_int,
472}
473
474pub type IXA_STATUS_HANDLE = *mut IXA_STATUS_HANDLE_STRUCT;
475pub type IXA_MOL_HANDLE = *mut IXA_MOL_HANDLE_STRUCT;
476pub type IXA_INCHIBUILDER_HANDLE = *mut IXA_INCHIBUILDER_HANDLE_STRUCT;
477pub type IXA_INCHIKEYBUILDER_HANDLE = *mut IXA_INCHIKEYBUILDER_HANDLE_STRUCT;
478pub type IXA_ATOMID = *mut IXA_ATOMID_STRUCT;
479pub type IXA_BONDID = *mut IXA_BONDID_STRUCT;
480pub type IXA_STEREOID = *mut IXA_STEREOID_STRUCT;
481pub type IXA_POLYMERUNITID = *mut IXA_POLYMERUNITID_STRUCT;
482
483pub type IXA_STATUS = ::std::os::raw::c_uint;
484pub const IXA_STATUS_SUCCESS: IXA_STATUS = 0;
485pub const IXA_STATUS_WARNING: IXA_STATUS = 1;
486pub const IXA_STATUS_ERROR: IXA_STATUS = 2;
487
488pub type IXA_BOOL = ::std::os::raw::c_uint;
489pub const IXA_FALSE: IXA_BOOL = 0;
490pub const IXA_TRUE: IXA_BOOL = 1;
491
492pub type IXA_ATOM_RADICAL = ::std::os::raw::c_uint;
493pub const IXA_ATOM_RADICAL_NONE: IXA_ATOM_RADICAL = 0;
494pub const IXA_ATOM_RADICAL_SINGLET: IXA_ATOM_RADICAL = 1;
495pub const IXA_ATOM_RADICAL_DOUBLET: IXA_ATOM_RADICAL = 2;
496pub const IXA_ATOM_RADICAL_TRIPLET: IXA_ATOM_RADICAL = 3;
497
498pub type IXA_BOND_TYPE = ::std::os::raw::c_uint;
499pub const IXA_BOND_TYPE_SINGLE: IXA_BOND_TYPE = 1;
500pub const IXA_BOND_TYPE_DOUBLE: IXA_BOND_TYPE = 2;
501pub const IXA_BOND_TYPE_TRIPLE: IXA_BOND_TYPE = 3;
502pub const IXA_BOND_TYPE_AROMATIC: IXA_BOND_TYPE = 4;
503
504pub type IXA_BOND_WEDGE = ::std::os::raw::c_uint;
505pub const IXA_BOND_WEDGE_NONE: IXA_BOND_WEDGE = 0;
506pub const IXA_BOND_WEDGE_UP: IXA_BOND_WEDGE = 1;
507pub const IXA_BOND_WEDGE_DOWN: IXA_BOND_WEDGE = 2;
508pub const IXA_BOND_WEDGE_EITHER: IXA_BOND_WEDGE = 3;
509
510pub type IXA_DBLBOND_CONFIG = ::std::os::raw::c_uint;
511pub const IXA_DBLBOND_CONFIG_PERCEIVE: IXA_DBLBOND_CONFIG = 0;
512pub const IXA_DBLBOND_CONFIG_EITHER: IXA_DBLBOND_CONFIG = 1;
513
514pub type IXA_STEREO_TOPOLOGY = ::std::os::raw::c_uint;
515pub const IXA_STEREO_TOPOLOGY_INVALID: IXA_STEREO_TOPOLOGY = 0;
516pub const IXA_STEREO_TOPOLOGY_TETRAHEDRON: IXA_STEREO_TOPOLOGY = 2;
517pub const IXA_STEREO_TOPOLOGY_RECTANGLE: IXA_STEREO_TOPOLOGY = 3;
518pub const IXA_STEREO_TOPOLOGY_ANTIRECTANGLE: IXA_STEREO_TOPOLOGY = 4;
519
520pub type IXA_STEREO_PARITY = ::std::os::raw::c_uint;
521pub const IXA_STEREO_PARITY_NONE: IXA_STEREO_PARITY = 0;
522pub const IXA_STEREO_PARITY_ODD: IXA_STEREO_PARITY = 1;
523pub const IXA_STEREO_PARITY_EVEN: IXA_STEREO_PARITY = 2;
524pub const IXA_STEREO_PARITY_UNKNOWN: IXA_STEREO_PARITY = 3;
525
526pub type IXA_INCHIBUILDER_OPTION = ::std::os::raw::c_uint;
528pub const IXA_INCHIBUILDER_OPTION_NewPsOff: IXA_INCHIBUILDER_OPTION = 0;
529pub const IXA_INCHIBUILDER_OPTION_DoNotAddH: IXA_INCHIBUILDER_OPTION = 1;
530pub const IXA_INCHIBUILDER_OPTION_SUU: IXA_INCHIBUILDER_OPTION = 2;
531pub const IXA_INCHIBUILDER_OPTION_SLUUD: IXA_INCHIBUILDER_OPTION = 3;
532pub const IXA_INCHIBUILDER_OPTION_FixedH: IXA_INCHIBUILDER_OPTION = 4;
533pub const IXA_INCHIBUILDER_OPTION_RecMet: IXA_INCHIBUILDER_OPTION = 5;
534pub const IXA_INCHIBUILDER_OPTION_KET: IXA_INCHIBUILDER_OPTION = 6;
535pub const IXA_INCHIBUILDER_OPTION_15T: IXA_INCHIBUILDER_OPTION = 7;
536pub const IXA_INCHIBUILDER_OPTION_SaveOpt: IXA_INCHIBUILDER_OPTION = 8;
537pub const IXA_INCHIBUILDER_OPTION_AuxNone: IXA_INCHIBUILDER_OPTION = 9;
538pub const IXA_INCHIBUILDER_OPTION_WarnOnEmptyStructure: IXA_INCHIBUILDER_OPTION = 10;
539pub const IXA_INCHIBUILDER_OPTION_LargeMolecules: IXA_INCHIBUILDER_OPTION = 11;
540pub const IXA_INCHIBUILDER_OPTION_Polymers: IXA_INCHIBUILDER_OPTION = 12;
541pub const IXA_INCHIBUILDER_OPTION_Polymers105: IXA_INCHIBUILDER_OPTION = 13;
542pub const IXA_INCHIBUILDER_OPTION_Polymers105Plus: IXA_INCHIBUILDER_OPTION = 14;
543pub const IXA_INCHIBUILDER_OPTION_FilterSS: IXA_INCHIBUILDER_OPTION = 15;
544pub const IXA_INCHIBUILDER_OPTION_InvFilterSS: IXA_INCHIBUILDER_OPTION = 16;
545pub const IXA_INCHIBUILDER_OPTION_NPZZ: IXA_INCHIBUILDER_OPTION = 17;
546pub const IXA_INCHIBUILDER_OPTION_SATZZ: IXA_INCHIBUILDER_OPTION = 18;
547pub const IXA_INCHIBUILDER_OPTION_NoFrameShift: IXA_INCHIBUILDER_OPTION = 19;
548pub const IXA_INCHIBUILDER_OPTION_FoldCRU: IXA_INCHIBUILDER_OPTION = 20;
549pub const IXA_INCHIBUILDER_OPTION_NoEdits: IXA_INCHIBUILDER_OPTION = 21;
550pub const IXA_INCHIBUILDER_OPTION_LooseTSACheck: IXA_INCHIBUILDER_OPTION = 22;
551pub const IXA_INCHIBUILDER_OPTION_OutErrInChI: IXA_INCHIBUILDER_OPTION = 23;
552pub const IXA_INCHIBUILDER_OPTION_NoWarnings: IXA_INCHIBUILDER_OPTION = 24;
553
554pub type IXA_INCHIBUILDER_STEREOOPTION = ::std::os::raw::c_uint;
555pub const IXA_INCHIBUILDER_STEREOOPTION_SAbs: IXA_INCHIBUILDER_STEREOOPTION = 0;
556pub const IXA_INCHIBUILDER_STEREOOPTION_SNon: IXA_INCHIBUILDER_STEREOOPTION = 1;
557pub const IXA_INCHIBUILDER_STEREOOPTION_SRel: IXA_INCHIBUILDER_STEREOOPTION = 2;
558pub const IXA_INCHIBUILDER_STEREOOPTION_SRac: IXA_INCHIBUILDER_STEREOOPTION = 3;
559pub const IXA_INCHIBUILDER_STEREOOPTION_SUCF: IXA_INCHIBUILDER_STEREOOPTION = 4;
560
561extern "C" {
563 pub fn IXA_STATUS_Create() -> IXA_STATUS_HANDLE;
564 pub fn IXA_STATUS_Clear(hStatus: IXA_STATUS_HANDLE);
565 pub fn IXA_STATUS_Destroy(hStatus: IXA_STATUS_HANDLE);
566 pub fn IXA_STATUS_HasError(hStatus: IXA_STATUS_HANDLE) -> IXA_BOOL;
567 pub fn IXA_STATUS_HasWarning(hStatus: IXA_STATUS_HANDLE) -> IXA_BOOL;
568 pub fn IXA_STATUS_GetCount(hStatus: IXA_STATUS_HANDLE) -> ::std::os::raw::c_int;
569 pub fn IXA_STATUS_GetSeverity(
570 hStatus: IXA_STATUS_HANDLE,
571 vIndex: ::std::os::raw::c_int,
572 ) -> IXA_STATUS;
573 pub fn IXA_STATUS_GetMessage(
574 hStatus: IXA_STATUS_HANDLE,
575 vIndex: ::std::os::raw::c_int,
576 ) -> *const ::std::os::raw::c_char;
577}
578
579extern "C" {
581 pub fn IXA_MOL_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_MOL_HANDLE;
582 pub fn IXA_MOL_Clear(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE);
583 pub fn IXA_MOL_Destroy(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE);
584 pub fn IXA_MOL_ReadMolfile(
585 hStatus: IXA_STATUS_HANDLE,
586 hMolecule: IXA_MOL_HANDLE,
587 pBytes: *const ::std::os::raw::c_char,
588 );
589 pub fn IXA_MOL_ReadInChI(
590 hStatus: IXA_STATUS_HANDLE,
591 hMolecule: IXA_MOL_HANDLE,
592 pInChI: *const ::std::os::raw::c_char,
593 );
594 pub fn IXA_MOL_SetChiral(
595 hStatus: IXA_STATUS_HANDLE,
596 hMolecule: IXA_MOL_HANDLE,
597 vChiral: IXA_BOOL,
598 );
599 pub fn IXA_MOL_GetChiral(hStatus: IXA_STATUS_HANDLE, hMolecule: IXA_MOL_HANDLE) -> IXA_BOOL;
600}
601
602extern "C" {
604 pub fn IXA_MOL_GetNumAtoms(
605 hStatus: IXA_STATUS_HANDLE,
606 hMolecule: IXA_MOL_HANDLE,
607 ) -> ::std::os::raw::c_int;
608 pub fn IXA_MOL_GetNumBonds(
609 hStatus: IXA_STATUS_HANDLE,
610 hMolecule: IXA_MOL_HANDLE,
611 ) -> ::std::os::raw::c_int;
612 pub fn IXA_MOL_GetAtomId(
613 hStatus: IXA_STATUS_HANDLE,
614 hMolecule: IXA_MOL_HANDLE,
615 vAtomIndex: ::std::os::raw::c_int,
616 ) -> IXA_ATOMID;
617 pub fn IXA_MOL_GetBondId(
618 hStatus: IXA_STATUS_HANDLE,
619 hMolecule: IXA_MOL_HANDLE,
620 vBondIndex: ::std::os::raw::c_int,
621 ) -> IXA_BONDID;
622 pub fn IXA_MOL_GetAtomIndex(
623 hStatus: IXA_STATUS_HANDLE,
624 hMolecule: IXA_MOL_HANDLE,
625 vAtom: IXA_ATOMID,
626 ) -> ::std::os::raw::c_int;
627 pub fn IXA_MOL_GetBondIndex(
628 hStatus: IXA_STATUS_HANDLE,
629 hMolecule: IXA_MOL_HANDLE,
630 vBond: IXA_BONDID,
631 ) -> ::std::os::raw::c_int;
632 pub fn IXA_MOL_GetAtomNumBonds(
633 hStatus: IXA_STATUS_HANDLE,
634 hMolecule: IXA_MOL_HANDLE,
635 vAtom: IXA_ATOMID,
636 ) -> ::std::os::raw::c_int;
637 pub fn IXA_MOL_GetAtomBond(
638 hStatus: IXA_STATUS_HANDLE,
639 hMolecule: IXA_MOL_HANDLE,
640 vAtom: IXA_ATOMID,
641 vBondIndex: ::std::os::raw::c_int,
642 ) -> IXA_BONDID;
643 pub fn IXA_MOL_GetCommonBond(
644 hStatus: IXA_STATUS_HANDLE,
645 hMolecule: IXA_MOL_HANDLE,
646 vAtom1: IXA_ATOMID,
647 vAtom2: IXA_ATOMID,
648 ) -> IXA_BONDID;
649 pub fn IXA_MOL_GetBondAtom1(
650 hStatus: IXA_STATUS_HANDLE,
651 hMolecule: IXA_MOL_HANDLE,
652 vBond: IXA_BONDID,
653 ) -> IXA_ATOMID;
654 pub fn IXA_MOL_GetBondAtom2(
655 hStatus: IXA_STATUS_HANDLE,
656 hMolecule: IXA_MOL_HANDLE,
657 vBond: IXA_BONDID,
658 ) -> IXA_ATOMID;
659 pub fn IXA_MOL_GetBondOtherAtom(
660 hStatus: IXA_STATUS_HANDLE,
661 hMolecule: IXA_MOL_HANDLE,
662 vBond: IXA_BONDID,
663 vAtom: IXA_ATOMID,
664 ) -> IXA_ATOMID;
665}
666
667extern "C" {
669 pub fn IXA_MOL_GetAtomElement(
670 hStatus: IXA_STATUS_HANDLE,
671 hMolecule: IXA_MOL_HANDLE,
672 vAtom: IXA_ATOMID,
673 ) -> *const ::std::os::raw::c_char;
674 pub fn IXA_MOL_GetAtomAtomicNumber(
675 hStatus: IXA_STATUS_HANDLE,
676 hMolecule: IXA_MOL_HANDLE,
677 vAtom: IXA_ATOMID,
678 ) -> ::std::os::raw::c_int;
679 pub fn IXA_MOL_GetAtomMass(
680 hStatus: IXA_STATUS_HANDLE,
681 hMolecule: IXA_MOL_HANDLE,
682 vAtom: IXA_ATOMID,
683 ) -> ::std::os::raw::c_int;
684 pub fn IXA_MOL_GetAtomCharge(
685 hStatus: IXA_STATUS_HANDLE,
686 hMolecule: IXA_MOL_HANDLE,
687 vAtom: IXA_ATOMID,
688 ) -> ::std::os::raw::c_int;
689 pub fn IXA_MOL_GetAtomRadical(
690 hStatus: IXA_STATUS_HANDLE,
691 hMolecule: IXA_MOL_HANDLE,
692 vAtom: IXA_ATOMID,
693 ) -> IXA_ATOM_RADICAL;
694 pub fn IXA_MOL_GetAtomHydrogens(
695 hStatus: IXA_STATUS_HANDLE,
696 hMolecule: IXA_MOL_HANDLE,
697 vAtom: IXA_ATOMID,
698 vHydrogenMassNumber: ::std::os::raw::c_int,
699 ) -> ::std::os::raw::c_int;
700 pub fn IXA_MOL_GetAtomX(
701 hStatus: IXA_STATUS_HANDLE,
702 hMolecule: IXA_MOL_HANDLE,
703 vAtom: IXA_ATOMID,
704 ) -> f64;
705 pub fn IXA_MOL_GetAtomY(
706 hStatus: IXA_STATUS_HANDLE,
707 hMolecule: IXA_MOL_HANDLE,
708 vAtom: IXA_ATOMID,
709 ) -> f64;
710 pub fn IXA_MOL_GetAtomZ(
711 hStatus: IXA_STATUS_HANDLE,
712 hMolecule: IXA_MOL_HANDLE,
713 vAtom: IXA_ATOMID,
714 ) -> f64;
715}
716
717extern "C" {
719 pub fn IXA_MOL_GetBondType(
720 hStatus: IXA_STATUS_HANDLE,
721 hMolecule: IXA_MOL_HANDLE,
722 vBond: IXA_BONDID,
723 ) -> IXA_BOND_TYPE;
724 pub fn IXA_MOL_GetBondWedge(
725 hStatus: IXA_STATUS_HANDLE,
726 hMolecule: IXA_MOL_HANDLE,
727 vBond: IXA_BONDID,
728 vRefAtom: IXA_ATOMID,
729 ) -> IXA_BOND_WEDGE;
730 pub fn IXA_MOL_GetDblBondConfig(
731 hStatus: IXA_STATUS_HANDLE,
732 hMolecule: IXA_MOL_HANDLE,
733 vBond: IXA_BONDID,
734 ) -> IXA_DBLBOND_CONFIG;
735}
736
737extern "C" {
739 pub fn IXA_MOL_GetNumStereos(
740 hStatus: IXA_STATUS_HANDLE,
741 hMolecule: IXA_MOL_HANDLE,
742 ) -> ::std::os::raw::c_int;
743 pub fn IXA_MOL_GetStereoId(
744 hStatus: IXA_STATUS_HANDLE,
745 hMolecule: IXA_MOL_HANDLE,
746 vStereoIndex: ::std::os::raw::c_int,
747 ) -> IXA_STEREOID;
748 pub fn IXA_MOL_GetStereoIndex(
749 hStatus: IXA_STATUS_HANDLE,
750 hMolecule: IXA_MOL_HANDLE,
751 vStereo: IXA_STEREOID,
752 ) -> ::std::os::raw::c_int;
753 pub fn IXA_MOL_GetStereoTopology(
754 hStatus: IXA_STATUS_HANDLE,
755 hMolecule: IXA_MOL_HANDLE,
756 vStereo: IXA_STEREOID,
757 ) -> IXA_STEREO_TOPOLOGY;
758 pub fn IXA_MOL_GetStereoCentralAtom(
759 hStatus: IXA_STATUS_HANDLE,
760 hMolecule: IXA_MOL_HANDLE,
761 vStereo: IXA_STEREOID,
762 ) -> IXA_ATOMID;
763 pub fn IXA_MOL_GetStereoCentralBond(
764 hStatus: IXA_STATUS_HANDLE,
765 hMolecule: IXA_MOL_HANDLE,
766 vStereo: IXA_STEREOID,
767 ) -> IXA_BONDID;
768 pub fn IXA_MOL_GetStereoNumVertices(
769 hStatus: IXA_STATUS_HANDLE,
770 hMolecule: IXA_MOL_HANDLE,
771 vStereo: IXA_STEREOID,
772 ) -> ::std::os::raw::c_int;
773 pub fn IXA_MOL_GetStereoVertex(
774 hStatus: IXA_STATUS_HANDLE,
775 hMolecule: IXA_MOL_HANDLE,
776 vStereo: IXA_STEREOID,
777 vVertexIndex: ::std::os::raw::c_int,
778 ) -> IXA_ATOMID;
779 pub fn IXA_MOL_GetStereoParity(
780 hStatus: IXA_STATUS_HANDLE,
781 hMolecule: IXA_MOL_HANDLE,
782 vStereo: IXA_STEREOID,
783 ) -> IXA_STEREO_PARITY;
784}
785
786extern "C" {
788 pub fn IXA_INCHIBUILDER_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_INCHIBUILDER_HANDLE;
789 pub fn IXA_INCHIBUILDER_SetMolecule(
790 hStatus: IXA_STATUS_HANDLE,
791 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
792 hMolecule: IXA_MOL_HANDLE,
793 );
794 pub fn IXA_INCHIBUILDER_GetInChIVersion(
795 vFullDescription: IXA_BOOL,
796 ) -> *const ::std::os::raw::c_char;
797 pub fn IXA_INCHIBUILDER_GetInChI(
798 hStatus: IXA_STATUS_HANDLE,
799 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
800 ) -> *const ::std::os::raw::c_char;
801 pub fn IXA_INCHIBUILDER_GetInChIEx(
802 hStatus: IXA_STATUS_HANDLE,
803 hBuilder: IXA_INCHIBUILDER_HANDLE,
804 ) -> *const ::std::os::raw::c_char;
805 pub fn IXA_INCHIBUILDER_GetAuxInfo(
806 hStatus: IXA_STATUS_HANDLE,
807 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
808 ) -> *const ::std::os::raw::c_char;
809 pub fn IXA_INCHIBUILDER_GetLog(
810 hStatus: IXA_STATUS_HANDLE,
811 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
812 ) -> *const ::std::os::raw::c_char;
813 pub fn IXA_INCHIBUILDER_Destroy(
814 hStatus: IXA_STATUS_HANDLE,
815 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
816 );
817 pub fn IXA_INCHIBUILDER_SetOption(
818 hStatus: IXA_STATUS_HANDLE,
819 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
820 vOption: IXA_INCHIBUILDER_OPTION,
821 vValue: IXA_BOOL,
822 );
823 pub fn IXA_INCHIBUILDER_SetOption_Stereo(
824 hStatus: IXA_STATUS_HANDLE,
825 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
826 vValue: IXA_INCHIBUILDER_STEREOOPTION,
827 );
828 pub fn IXA_INCHIBUILDER_SetOption_Timeout(
829 hStatus: IXA_STATUS_HANDLE,
830 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
831 vValue: ::std::os::raw::c_int,
832 );
833 pub fn IXA_INCHIBUILDER_SetOption_Timeout_MilliSeconds(
834 hStatus: IXA_STATUS_HANDLE,
835 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
836 vValue: ::std::os::raw::c_long,
837 );
838 pub fn IXA_INCHIBUILDER_CheckOption(
839 hStatus: IXA_STATUS_HANDLE,
840 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
841 vOption: IXA_INCHIBUILDER_OPTION,
842 ) -> IXA_BOOL;
843 pub fn IXA_INCHIBUILDER_CheckOption_Stereo(
844 hStatus: IXA_STATUS_HANDLE,
845 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
846 vValue: IXA_INCHIBUILDER_STEREOOPTION,
847 ) -> IXA_BOOL;
848 pub fn IXA_INCHIBUILDER_GetOption_Timeout_MilliSeconds(
849 hStatus: IXA_STATUS_HANDLE,
850 hInChIBuilder: IXA_INCHIBUILDER_HANDLE,
851 ) -> ::std::os::raw::c_long;
852}
853
854extern "C" {
856 pub fn IXA_INCHIKEYBUILDER_Create(hStatus: IXA_STATUS_HANDLE) -> IXA_INCHIKEYBUILDER_HANDLE;
857 pub fn IXA_INCHIKEYBUILDER_SetInChI(
858 hStatus: IXA_STATUS_HANDLE,
859 hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
860 pInChI: *const ::std::os::raw::c_char,
861 );
862 pub fn IXA_INCHIKEYBUILDER_GetInChIKey(
863 hStatus: IXA_STATUS_HANDLE,
864 hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
865 ) -> *const ::std::os::raw::c_char;
866 pub fn IXA_INCHIKEYBUILDER_Destroy(
867 hStatus: IXA_STATUS_HANDLE,
868 hInChIKeyBuilder: IXA_INCHIKEYBUILDER_HANDLE,
869 );
870}