Skip to main content

inchi_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3pub 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}