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}