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}
53#[allow(clippy::unnecessary_operation, clippy::identity_op)]
54const _: () = {
55 ["Size of tagInchiAtom"][::std::mem::size_of::<tagInchiAtom>() - 120usize];
56 ["Alignment of tagInchiAtom"][::std::mem::align_of::<tagInchiAtom>() - 8usize];
57 ["Offset of field: tagInchiAtom::x"][::std::mem::offset_of!(tagInchiAtom, x) - 0usize];
58 ["Offset of field: tagInchiAtom::y"][::std::mem::offset_of!(tagInchiAtom, y) - 8usize];
59 ["Offset of field: tagInchiAtom::z"][::std::mem::offset_of!(tagInchiAtom, z) - 16usize];
60 ["Offset of field: tagInchiAtom::neighbor"]
61 [::std::mem::offset_of!(tagInchiAtom, neighbor) - 24usize];
62 ["Offset of field: tagInchiAtom::bond_type"]
63 [::std::mem::offset_of!(tagInchiAtom, bond_type) - 64usize];
64 ["Offset of field: tagInchiAtom::bond_stereo"]
65 [::std::mem::offset_of!(tagInchiAtom, bond_stereo) - 84usize];
66 ["Offset of field: tagInchiAtom::elname"]
67 [::std::mem::offset_of!(tagInchiAtom, elname) - 104usize];
68 ["Offset of field: tagInchiAtom::num_bonds"]
69 [::std::mem::offset_of!(tagInchiAtom, num_bonds) - 110usize];
70 ["Offset of field: tagInchiAtom::num_iso_H"]
71 [::std::mem::offset_of!(tagInchiAtom, num_iso_H) - 112usize];
72 ["Offset of field: tagInchiAtom::isotopic_mass"]
73 [::std::mem::offset_of!(tagInchiAtom, isotopic_mass) - 116usize];
74 ["Offset of field: tagInchiAtom::radical"]
75 [::std::mem::offset_of!(tagInchiAtom, radical) - 118usize];
76 ["Offset of field: tagInchiAtom::charge"]
77 [::std::mem::offset_of!(tagInchiAtom, charge) - 119usize];
78};
79pub type inchi_Atom = tagInchiAtom;
80pub const INCHI_StereoType_None: tagINCHIStereoType0D = 0;
81pub const INCHI_StereoType_DoubleBond: tagINCHIStereoType0D = 1;
82pub const INCHI_StereoType_Tetrahedral: tagINCHIStereoType0D = 2;
83pub const INCHI_StereoType_Allene: tagINCHIStereoType0D = 3;
84pub type tagINCHIStereoType0D = ::std::os::raw::c_uint;
85pub use self::tagINCHIStereoType0D as inchi_StereoType0D;
86pub const INCHI_PARITY_NONE: tagINCHIStereoParity0D = 0;
87pub const INCHI_PARITY_ODD: tagINCHIStereoParity0D = 1;
88pub const INCHI_PARITY_EVEN: tagINCHIStereoParity0D = 2;
89pub const INCHI_PARITY_UNKNOWN: tagINCHIStereoParity0D = 3;
90pub const INCHI_PARITY_UNDEFINED: tagINCHIStereoParity0D = 4;
91pub type tagINCHIStereoParity0D = ::std::os::raw::c_uint;
92pub use self::tagINCHIStereoParity0D as inchi_StereoParity0D;
93#[repr(C)]
94#[derive(Debug, Default, Copy, Clone)]
95pub struct tagINCHIStereo0D {
96 pub neighbor: [AT_NUM; 4usize],
97 pub central_atom: AT_NUM,
98 pub type_: S_CHAR,
99 pub parity: S_CHAR,
100}
101#[allow(clippy::unnecessary_operation, clippy::identity_op)]
102const _: () = {
103 ["Size of tagINCHIStereo0D"][::std::mem::size_of::<tagINCHIStereo0D>() - 12usize];
104 ["Alignment of tagINCHIStereo0D"][::std::mem::align_of::<tagINCHIStereo0D>() - 2usize];
105 ["Offset of field: tagINCHIStereo0D::neighbor"]
106 [::std::mem::offset_of!(tagINCHIStereo0D, neighbor) - 0usize];
107 ["Offset of field: tagINCHIStereo0D::central_atom"]
108 [::std::mem::offset_of!(tagINCHIStereo0D, central_atom) - 8usize];
109 ["Offset of field: tagINCHIStereo0D::type_"]
110 [::std::mem::offset_of!(tagINCHIStereo0D, type_) - 10usize];
111 ["Offset of field: tagINCHIStereo0D::parity"]
112 [::std::mem::offset_of!(tagINCHIStereo0D, parity) - 11usize];
113};
114pub type inchi_Stereo0D = tagINCHIStereo0D;
115#[repr(C)]
116#[derive(Debug, Copy, Clone)]
117pub struct tagINCHI_Input {
118 pub atom: *mut inchi_Atom,
119 pub stereo0D: *mut inchi_Stereo0D,
120 pub szOptions: *mut ::std::os::raw::c_char,
121 pub num_atoms: AT_NUM,
122 pub num_stereo0D: AT_NUM,
123}
124#[allow(clippy::unnecessary_operation, clippy::identity_op)]
125const _: () = {
126 ["Size of tagINCHI_Input"][::std::mem::size_of::<tagINCHI_Input>() - 32usize];
127 ["Alignment of tagINCHI_Input"][::std::mem::align_of::<tagINCHI_Input>() - 8usize];
128 ["Offset of field: tagINCHI_Input::atom"]
129 [::std::mem::offset_of!(tagINCHI_Input, atom) - 0usize];
130 ["Offset of field: tagINCHI_Input::stereo0D"]
131 [::std::mem::offset_of!(tagINCHI_Input, stereo0D) - 8usize];
132 ["Offset of field: tagINCHI_Input::szOptions"]
133 [::std::mem::offset_of!(tagINCHI_Input, szOptions) - 16usize];
134 ["Offset of field: tagINCHI_Input::num_atoms"]
135 [::std::mem::offset_of!(tagINCHI_Input, num_atoms) - 24usize];
136 ["Offset of field: tagINCHI_Input::num_stereo0D"]
137 [::std::mem::offset_of!(tagINCHI_Input, num_stereo0D) - 26usize];
138};
139impl Default for tagINCHI_Input {
140 fn default() -> Self {
141 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
142 unsafe {
143 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
144 s.assume_init()
145 }
146 }
147}
148pub type inchi_Input = tagINCHI_Input;
149#[repr(C)]
150#[derive(Debug, Copy, Clone)]
151pub struct inchi_Input_PolymerUnit {
152 pub id: ::std::os::raw::c_int,
153 pub type_: ::std::os::raw::c_int,
154 pub subtype: ::std::os::raw::c_int,
155 pub conn: ::std::os::raw::c_int,
156 pub label: ::std::os::raw::c_int,
157 pub na: ::std::os::raw::c_int,
158 pub nb: ::std::os::raw::c_int,
159 pub xbr1: [f64; 4usize],
160 pub xbr2: [f64; 4usize],
161 pub smt: [::std::os::raw::c_char; 80usize],
162 pub alist: *mut ::std::os::raw::c_int,
163 pub blist: *mut ::std::os::raw::c_int,
164}
165#[allow(clippy::unnecessary_operation, clippy::identity_op)]
166const _: () = {
167 ["Size of inchi_Input_PolymerUnit"]
168 [::std::mem::size_of::<inchi_Input_PolymerUnit>() - 192usize];
169 ["Alignment of inchi_Input_PolymerUnit"]
170 [::std::mem::align_of::<inchi_Input_PolymerUnit>() - 8usize];
171 ["Offset of field: inchi_Input_PolymerUnit::id"]
172 [::std::mem::offset_of!(inchi_Input_PolymerUnit, id) - 0usize];
173 ["Offset of field: inchi_Input_PolymerUnit::type_"]
174 [::std::mem::offset_of!(inchi_Input_PolymerUnit, type_) - 4usize];
175 ["Offset of field: inchi_Input_PolymerUnit::subtype"]
176 [::std::mem::offset_of!(inchi_Input_PolymerUnit, subtype) - 8usize];
177 ["Offset of field: inchi_Input_PolymerUnit::conn"]
178 [::std::mem::offset_of!(inchi_Input_PolymerUnit, conn) - 12usize];
179 ["Offset of field: inchi_Input_PolymerUnit::label"]
180 [::std::mem::offset_of!(inchi_Input_PolymerUnit, label) - 16usize];
181 ["Offset of field: inchi_Input_PolymerUnit::na"]
182 [::std::mem::offset_of!(inchi_Input_PolymerUnit, na) - 20usize];
183 ["Offset of field: inchi_Input_PolymerUnit::nb"]
184 [::std::mem::offset_of!(inchi_Input_PolymerUnit, nb) - 24usize];
185 ["Offset of field: inchi_Input_PolymerUnit::xbr1"]
186 [::std::mem::offset_of!(inchi_Input_PolymerUnit, xbr1) - 32usize];
187 ["Offset of field: inchi_Input_PolymerUnit::xbr2"]
188 [::std::mem::offset_of!(inchi_Input_PolymerUnit, xbr2) - 64usize];
189 ["Offset of field: inchi_Input_PolymerUnit::smt"]
190 [::std::mem::offset_of!(inchi_Input_PolymerUnit, smt) - 96usize];
191 ["Offset of field: inchi_Input_PolymerUnit::alist"]
192 [::std::mem::offset_of!(inchi_Input_PolymerUnit, alist) - 176usize];
193 ["Offset of field: inchi_Input_PolymerUnit::blist"]
194 [::std::mem::offset_of!(inchi_Input_PolymerUnit, blist) - 184usize];
195};
196impl Default for inchi_Input_PolymerUnit {
197 fn default() -> Self {
198 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
199 unsafe {
200 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
201 s.assume_init()
202 }
203 }
204}
205#[repr(C)]
206#[derive(Debug, Copy, Clone)]
207pub struct inchi_Input_Polymer {
208 pub units: *mut *mut inchi_Input_PolymerUnit,
209 pub n: ::std::os::raw::c_int,
210}
211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
212const _: () = {
213 ["Size of inchi_Input_Polymer"][::std::mem::size_of::<inchi_Input_Polymer>() - 16usize];
214 ["Alignment of inchi_Input_Polymer"][::std::mem::align_of::<inchi_Input_Polymer>() - 8usize];
215 ["Offset of field: inchi_Input_Polymer::units"]
216 [::std::mem::offset_of!(inchi_Input_Polymer, units) - 0usize];
217 ["Offset of field: inchi_Input_Polymer::n"]
218 [::std::mem::offset_of!(inchi_Input_Polymer, n) - 8usize];
219};
220impl Default for inchi_Input_Polymer {
221 fn default() -> Self {
222 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
223 unsafe {
224 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
225 s.assume_init()
226 }
227 }
228}
229#[repr(C)]
230#[derive(Debug, Copy, Clone)]
231pub struct inchi_Input_V3000 {
232 pub n_non_star_atoms: ::std::os::raw::c_int,
233 pub n_star_atoms: ::std::os::raw::c_int,
234 pub atom_index_orig: *mut ::std::os::raw::c_int,
235 pub atom_index_fin: *mut ::std::os::raw::c_int,
236 pub n_sgroups: ::std::os::raw::c_int,
237 pub n_3d_constraints: ::std::os::raw::c_int,
238 pub n_collections: ::std::os::raw::c_int,
239 pub n_non_haptic_bonds: ::std::os::raw::c_int,
240 pub n_haptic_bonds: ::std::os::raw::c_int,
241 pub lists_haptic_bonds: *mut *mut ::std::os::raw::c_int,
242 pub n_steabs: ::std::os::raw::c_int,
243 pub lists_steabs: *mut *mut ::std::os::raw::c_int,
244 pub n_sterel: ::std::os::raw::c_int,
245 pub lists_sterel: *mut *mut ::std::os::raw::c_int,
246 pub n_sterac: ::std::os::raw::c_int,
247 pub lists_sterac: *mut *mut ::std::os::raw::c_int,
248}
249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
250const _: () = {
251 ["Size of inchi_Input_V3000"][::std::mem::size_of::<inchi_Input_V3000>() - 104usize];
252 ["Alignment of inchi_Input_V3000"][::std::mem::align_of::<inchi_Input_V3000>() - 8usize];
253 ["Offset of field: inchi_Input_V3000::n_non_star_atoms"]
254 [::std::mem::offset_of!(inchi_Input_V3000, n_non_star_atoms) - 0usize];
255 ["Offset of field: inchi_Input_V3000::n_star_atoms"]
256 [::std::mem::offset_of!(inchi_Input_V3000, n_star_atoms) - 4usize];
257 ["Offset of field: inchi_Input_V3000::atom_index_orig"]
258 [::std::mem::offset_of!(inchi_Input_V3000, atom_index_orig) - 8usize];
259 ["Offset of field: inchi_Input_V3000::atom_index_fin"]
260 [::std::mem::offset_of!(inchi_Input_V3000, atom_index_fin) - 16usize];
261 ["Offset of field: inchi_Input_V3000::n_sgroups"]
262 [::std::mem::offset_of!(inchi_Input_V3000, n_sgroups) - 24usize];
263 ["Offset of field: inchi_Input_V3000::n_3d_constraints"]
264 [::std::mem::offset_of!(inchi_Input_V3000, n_3d_constraints) - 28usize];
265 ["Offset of field: inchi_Input_V3000::n_collections"]
266 [::std::mem::offset_of!(inchi_Input_V3000, n_collections) - 32usize];
267 ["Offset of field: inchi_Input_V3000::n_non_haptic_bonds"]
268 [::std::mem::offset_of!(inchi_Input_V3000, n_non_haptic_bonds) - 36usize];
269 ["Offset of field: inchi_Input_V3000::n_haptic_bonds"]
270 [::std::mem::offset_of!(inchi_Input_V3000, n_haptic_bonds) - 40usize];
271 ["Offset of field: inchi_Input_V3000::lists_haptic_bonds"]
272 [::std::mem::offset_of!(inchi_Input_V3000, lists_haptic_bonds) - 48usize];
273 ["Offset of field: inchi_Input_V3000::n_steabs"]
274 [::std::mem::offset_of!(inchi_Input_V3000, n_steabs) - 56usize];
275 ["Offset of field: inchi_Input_V3000::lists_steabs"]
276 [::std::mem::offset_of!(inchi_Input_V3000, lists_steabs) - 64usize];
277 ["Offset of field: inchi_Input_V3000::n_sterel"]
278 [::std::mem::offset_of!(inchi_Input_V3000, n_sterel) - 72usize];
279 ["Offset of field: inchi_Input_V3000::lists_sterel"]
280 [::std::mem::offset_of!(inchi_Input_V3000, lists_sterel) - 80usize];
281 ["Offset of field: inchi_Input_V3000::n_sterac"]
282 [::std::mem::offset_of!(inchi_Input_V3000, n_sterac) - 88usize];
283 ["Offset of field: inchi_Input_V3000::lists_sterac"]
284 [::std::mem::offset_of!(inchi_Input_V3000, lists_sterac) - 96usize];
285};
286impl Default for inchi_Input_V3000 {
287 fn default() -> Self {
288 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
289 unsafe {
290 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
291 s.assume_init()
292 }
293 }
294}
295#[repr(C)]
296#[derive(Debug, Copy, Clone)]
297pub struct inchi_InputEx {
298 pub atom: *mut inchi_Atom,
299 pub stereo0D: *mut inchi_Stereo0D,
300 pub szOptions: *mut ::std::os::raw::c_char,
301 pub num_atoms: AT_NUM,
302 pub num_stereo0D: AT_NUM,
303 pub polymer: *mut inchi_Input_Polymer,
304 pub v3000: *mut inchi_Input_V3000,
305}
306#[allow(clippy::unnecessary_operation, clippy::identity_op)]
307const _: () = {
308 ["Size of inchi_InputEx"][::std::mem::size_of::<inchi_InputEx>() - 48usize];
309 ["Alignment of inchi_InputEx"][::std::mem::align_of::<inchi_InputEx>() - 8usize];
310 ["Offset of field: inchi_InputEx::atom"][::std::mem::offset_of!(inchi_InputEx, atom) - 0usize];
311 ["Offset of field: inchi_InputEx::stereo0D"]
312 [::std::mem::offset_of!(inchi_InputEx, stereo0D) - 8usize];
313 ["Offset of field: inchi_InputEx::szOptions"]
314 [::std::mem::offset_of!(inchi_InputEx, szOptions) - 16usize];
315 ["Offset of field: inchi_InputEx::num_atoms"]
316 [::std::mem::offset_of!(inchi_InputEx, num_atoms) - 24usize];
317 ["Offset of field: inchi_InputEx::num_stereo0D"]
318 [::std::mem::offset_of!(inchi_InputEx, num_stereo0D) - 26usize];
319 ["Offset of field: inchi_InputEx::polymer"]
320 [::std::mem::offset_of!(inchi_InputEx, polymer) - 32usize];
321 ["Offset of field: inchi_InputEx::v3000"]
322 [::std::mem::offset_of!(inchi_InputEx, v3000) - 40usize];
323};
324impl Default for inchi_InputEx {
325 fn default() -> Self {
326 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
327 unsafe {
328 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
329 s.assume_init()
330 }
331 }
332}
333#[repr(C)]
334#[derive(Debug, Copy, Clone)]
335pub struct tagINCHI_InputINCHI {
336 pub szInChI: *mut ::std::os::raw::c_char,
337 pub szOptions: *mut ::std::os::raw::c_char,
338}
339#[allow(clippy::unnecessary_operation, clippy::identity_op)]
340const _: () = {
341 ["Size of tagINCHI_InputINCHI"][::std::mem::size_of::<tagINCHI_InputINCHI>() - 16usize];
342 ["Alignment of tagINCHI_InputINCHI"][::std::mem::align_of::<tagINCHI_InputINCHI>() - 8usize];
343 ["Offset of field: tagINCHI_InputINCHI::szInChI"]
344 [::std::mem::offset_of!(tagINCHI_InputINCHI, szInChI) - 0usize];
345 ["Offset of field: tagINCHI_InputINCHI::szOptions"]
346 [::std::mem::offset_of!(tagINCHI_InputINCHI, szOptions) - 8usize];
347};
348impl Default for tagINCHI_InputINCHI {
349 fn default() -> Self {
350 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
351 unsafe {
352 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
353 s.assume_init()
354 }
355 }
356}
357pub type inchi_InputINCHI = tagINCHI_InputINCHI;
358pub type inchi_Output_PolymerUnit = inchi_Input_PolymerUnit;
359pub type inchi_Output_Polymer = inchi_Input_Polymer;
360pub type inchi_Output_V3000 = inchi_Input_V3000;
361#[repr(C)]
362#[derive(Debug, Copy, Clone)]
363pub struct tagINCHI_Output {
364 pub szInChI: *mut ::std::os::raw::c_char,
365 pub szAuxInfo: *mut ::std::os::raw::c_char,
366 pub szMessage: *mut ::std::os::raw::c_char,
367 pub szLog: *mut ::std::os::raw::c_char,
368}
369#[allow(clippy::unnecessary_operation, clippy::identity_op)]
370const _: () = {
371 ["Size of tagINCHI_Output"][::std::mem::size_of::<tagINCHI_Output>() - 32usize];
372 ["Alignment of tagINCHI_Output"][::std::mem::align_of::<tagINCHI_Output>() - 8usize];
373 ["Offset of field: tagINCHI_Output::szInChI"]
374 [::std::mem::offset_of!(tagINCHI_Output, szInChI) - 0usize];
375 ["Offset of field: tagINCHI_Output::szAuxInfo"]
376 [::std::mem::offset_of!(tagINCHI_Output, szAuxInfo) - 8usize];
377 ["Offset of field: tagINCHI_Output::szMessage"]
378 [::std::mem::offset_of!(tagINCHI_Output, szMessage) - 16usize];
379 ["Offset of field: tagINCHI_Output::szLog"]
380 [::std::mem::offset_of!(tagINCHI_Output, szLog) - 24usize];
381};
382impl Default for tagINCHI_Output {
383 fn default() -> Self {
384 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
385 unsafe {
386 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
387 s.assume_init()
388 }
389 }
390}
391pub type inchi_Output = tagINCHI_Output;
392#[repr(C)]
393#[derive(Debug, Copy, Clone)]
394pub struct tagINCHI_OutputStruct {
395 pub atom: *mut inchi_Atom,
396 pub stereo0D: *mut inchi_Stereo0D,
397 pub num_atoms: AT_NUM,
398 pub num_stereo0D: AT_NUM,
399 pub szMessage: *mut ::std::os::raw::c_char,
400 pub szLog: *mut ::std::os::raw::c_char,
401 pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
402}
403#[allow(clippy::unnecessary_operation, clippy::identity_op)]
404const _: () = {
405 ["Size of tagINCHI_OutputStruct"][::std::mem::size_of::<tagINCHI_OutputStruct>() - 72usize];
406 ["Alignment of tagINCHI_OutputStruct"]
407 [::std::mem::align_of::<tagINCHI_OutputStruct>() - 8usize];
408 ["Offset of field: tagINCHI_OutputStruct::atom"]
409 [::std::mem::offset_of!(tagINCHI_OutputStruct, atom) - 0usize];
410 ["Offset of field: tagINCHI_OutputStruct::stereo0D"]
411 [::std::mem::offset_of!(tagINCHI_OutputStruct, stereo0D) - 8usize];
412 ["Offset of field: tagINCHI_OutputStruct::num_atoms"]
413 [::std::mem::offset_of!(tagINCHI_OutputStruct, num_atoms) - 16usize];
414 ["Offset of field: tagINCHI_OutputStruct::num_stereo0D"]
415 [::std::mem::offset_of!(tagINCHI_OutputStruct, num_stereo0D) - 18usize];
416 ["Offset of field: tagINCHI_OutputStruct::szMessage"]
417 [::std::mem::offset_of!(tagINCHI_OutputStruct, szMessage) - 24usize];
418 ["Offset of field: tagINCHI_OutputStruct::szLog"]
419 [::std::mem::offset_of!(tagINCHI_OutputStruct, szLog) - 32usize];
420 ["Offset of field: tagINCHI_OutputStruct::WarningFlags"]
421 [::std::mem::offset_of!(tagINCHI_OutputStruct, WarningFlags) - 40usize];
422};
423impl Default for tagINCHI_OutputStruct {
424 fn default() -> Self {
425 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
426 unsafe {
427 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
428 s.assume_init()
429 }
430 }
431}
432pub type inchi_OutputStruct = tagINCHI_OutputStruct;
433#[repr(C)]
434#[derive(Debug, Copy, Clone)]
435pub struct tagINCHI_OutputStructEx {
436 pub atom: *mut inchi_Atom,
437 pub stereo0D: *mut inchi_Stereo0D,
438 pub num_atoms: AT_NUM,
439 pub num_stereo0D: AT_NUM,
440 pub szMessage: *mut ::std::os::raw::c_char,
441 pub szLog: *mut ::std::os::raw::c_char,
442 pub WarningFlags: [[::std::os::raw::c_ulong; 2usize]; 2usize],
443 pub polymer: *mut inchi_Output_Polymer,
444 pub v3000: *mut inchi_Output_V3000,
445}
446#[allow(clippy::unnecessary_operation, clippy::identity_op)]
447const _: () = {
448 ["Size of tagINCHI_OutputStructEx"][::std::mem::size_of::<tagINCHI_OutputStructEx>() - 88usize];
449 ["Alignment of tagINCHI_OutputStructEx"]
450 [::std::mem::align_of::<tagINCHI_OutputStructEx>() - 8usize];
451 ["Offset of field: tagINCHI_OutputStructEx::atom"]
452 [::std::mem::offset_of!(tagINCHI_OutputStructEx, atom) - 0usize];
453 ["Offset of field: tagINCHI_OutputStructEx::stereo0D"]
454 [::std::mem::offset_of!(tagINCHI_OutputStructEx, stereo0D) - 8usize];
455 ["Offset of field: tagINCHI_OutputStructEx::num_atoms"]
456 [::std::mem::offset_of!(tagINCHI_OutputStructEx, num_atoms) - 16usize];
457 ["Offset of field: tagINCHI_OutputStructEx::num_stereo0D"]
458 [::std::mem::offset_of!(tagINCHI_OutputStructEx, num_stereo0D) - 18usize];
459 ["Offset of field: tagINCHI_OutputStructEx::szMessage"]
460 [::std::mem::offset_of!(tagINCHI_OutputStructEx, szMessage) - 24usize];
461 ["Offset of field: tagINCHI_OutputStructEx::szLog"]
462 [::std::mem::offset_of!(tagINCHI_OutputStructEx, szLog) - 32usize];
463 ["Offset of field: tagINCHI_OutputStructEx::WarningFlags"]
464 [::std::mem::offset_of!(tagINCHI_OutputStructEx, WarningFlags) - 40usize];
465 ["Offset of field: tagINCHI_OutputStructEx::polymer"]
466 [::std::mem::offset_of!(tagINCHI_OutputStructEx, polymer) - 72usize];
467 ["Offset of field: tagINCHI_OutputStructEx::v3000"]
468 [::std::mem::offset_of!(tagINCHI_OutputStructEx, v3000) - 80usize];
469};
470impl Default for tagINCHI_OutputStructEx {
471 fn default() -> Self {
472 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
473 unsafe {
474 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
475 s.assume_init()
476 }
477 }
478}
479pub type inchi_OutputStructEx = tagINCHI_OutputStructEx;
480pub const inchi_Ret_BREAK: tagRetValGetINCHI = -100;
481pub const inchi_Ret_SKIP: tagRetValGetINCHI = -2;
482pub const inchi_Ret_EOF: tagRetValGetINCHI = -1;
483pub const inchi_Ret_OKAY: tagRetValGetINCHI = 0;
484pub const inchi_Ret_WARNING: tagRetValGetINCHI = 1;
485pub const inchi_Ret_ERROR: tagRetValGetINCHI = 2;
486pub const inchi_Ret_FATAL: tagRetValGetINCHI = 3;
487pub const inchi_Ret_UNKNOWN: tagRetValGetINCHI = 4;
488pub const inchi_Ret_BUSY: tagRetValGetINCHI = 5;
489pub type tagRetValGetINCHI = ::std::os::raw::c_int;
490pub use self::tagRetValGetINCHI as RetValGetINCHI;
491pub const mol2inchi_Ret_OKAY: tagRetValMOL2INCHI = 0;
492pub const mol2inchi_Ret_WARNING: tagRetValMOL2INCHI = 1;
493pub const mol2inchi_Ret_EOF: tagRetValMOL2INCHI = -1;
494pub const mol2inchi_Ret_ERROR: tagRetValMOL2INCHI = 2;
495pub const mol2inchi_Ret_ERROR_get: tagRetValMOL2INCHI = 4;
496pub const mol2inchi_Ret_ERROR_comp: tagRetValMOL2INCHI = 5;
497pub type tagRetValMOL2INCHI = ::std::os::raw::c_int;
498pub use self::tagRetValMOL2INCHI as RetValMol2INCHI;
499pub const INCHI_VALID_STANDARD: tagRetValCheckINCHI = 0;
500pub const INCHI_VALID_NON_STANDARD: tagRetValCheckINCHI = 1;
501pub const INCHI_VALID_BETA: tagRetValCheckINCHI = 2;
502pub const INCHI_INVALID_PREFIX: tagRetValCheckINCHI = 3;
503pub const INCHI_INVALID_VERSION: tagRetValCheckINCHI = 4;
504pub const INCHI_INVALID_LAYOUT: tagRetValCheckINCHI = 5;
505pub const INCHI_FAIL_I2I: tagRetValCheckINCHI = 6;
506pub type tagRetValCheckINCHI = ::std::os::raw::c_uint;
507pub use self::tagRetValCheckINCHI as RetValCheckINCHI;
508extern "C" {
509 pub fn GetINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
510}
511extern "C" {
512 pub fn GetStdINCHI(inp: *mut inchi_Input, out: *mut inchi_Output) -> ::std::os::raw::c_int;
513}
514extern "C" {
515 pub fn GetINCHIEx(inp: *mut inchi_InputEx, out: *mut inchi_Output) -> ::std::os::raw::c_int;
516}
517extern "C" {
518 pub fn FreeINCHI(out: *mut inchi_Output);
519}
520extern "C" {
521 pub fn FreeStdINCHI(out: *mut inchi_Output);
522}
523extern "C" {
524 pub fn GetStringLength(p: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
525}
526extern "C" {
527 pub fn GetStructFromINCHI(
528 inpInChI: *mut inchi_InputINCHI,
529 outStruct: *mut inchi_OutputStruct,
530 ) -> ::std::os::raw::c_int;
531}
532extern "C" {
533 pub fn GetStructFromStdINCHI(
534 inpInChI: *mut inchi_InputINCHI,
535 outStruct: *mut inchi_OutputStruct,
536 ) -> ::std::os::raw::c_int;
537}
538extern "C" {
539 pub fn GetStructFromINCHIEx(
540 inpInChI: *mut inchi_InputINCHI,
541 outStruct: *mut inchi_OutputStructEx,
542 ) -> ::std::os::raw::c_int;
543}
544extern "C" {
545 pub fn FreeStructFromINCHI(out: *mut inchi_OutputStruct);
546}
547extern "C" {
548 pub fn FreeStructFromStdINCHI(out: *mut inchi_OutputStruct);
549}
550extern "C" {
551 pub fn FreeStructFromINCHIEx(out: *mut inchi_OutputStructEx);
552}
553extern "C" {
554 pub fn GetINCHIfromINCHI(
555 inpInChI: *mut inchi_InputINCHI,
556 out: *mut inchi_Output,
557 ) -> ::std::os::raw::c_int;
558}
559#[repr(C)]
560#[derive(Debug, Copy, Clone)]
561pub struct tagInchiInpData {
562 pub pInp: *mut inchi_Input,
563 pub bChiral: ::std::os::raw::c_int,
564 pub szErrMsg: [::std::os::raw::c_char; 256usize],
565}
566#[allow(clippy::unnecessary_operation, clippy::identity_op)]
567const _: () = {
568 ["Size of tagInchiInpData"][::std::mem::size_of::<tagInchiInpData>() - 272usize];
569 ["Alignment of tagInchiInpData"][::std::mem::align_of::<tagInchiInpData>() - 8usize];
570 ["Offset of field: tagInchiInpData::pInp"]
571 [::std::mem::offset_of!(tagInchiInpData, pInp) - 0usize];
572 ["Offset of field: tagInchiInpData::bChiral"]
573 [::std::mem::offset_of!(tagInchiInpData, bChiral) - 8usize];
574 ["Offset of field: tagInchiInpData::szErrMsg"]
575 [::std::mem::offset_of!(tagInchiInpData, szErrMsg) - 12usize];
576};
577impl Default for tagInchiInpData {
578 fn default() -> Self {
579 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
580 unsafe {
581 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
582 s.assume_init()
583 }
584 }
585}
586pub type InchiInpData = tagInchiInpData;
587extern "C" {
588 pub fn Get_inchi_Input_FromAuxInfo(
589 szInchiAuxInfo: *mut ::std::os::raw::c_char,
590 bDoNotAddH: ::std::os::raw::c_int,
591 bDiffUnkUndfStereo: ::std::os::raw::c_int,
592 pInchiInp: *mut InchiInpData,
593 ) -> ::std::os::raw::c_int;
594}
595extern "C" {
596 pub fn Get_std_inchi_Input_FromAuxInfo(
597 szInchiAuxInfo: *mut ::std::os::raw::c_char,
598 bDoNotAddH: ::std::os::raw::c_int,
599 pInchiInp: *mut InchiInpData,
600 ) -> ::std::os::raw::c_int;
601}
602extern "C" {
603 pub fn Free_inchi_Input(pInp: *mut inchi_Input);
604}
605extern "C" {
606 pub fn Free_std_inchi_Input(pInp: *mut inchi_Input);
607}
608extern "C" {
609 pub fn CheckINCHI(
610 szINCHI: *const ::std::os::raw::c_char,
611 strict: ::std::os::raw::c_int,
612 ) -> ::std::os::raw::c_int;
613}
614pub const INCHIKEY_VALID_STANDARD: tagRetValGetINCHIKey = 0;
615pub const INCHIKEY_VALID_NON_STANDARD: tagRetValGetINCHIKey = -1;
616pub const INCHIKEY_INVALID_LENGTH: tagRetValGetINCHIKey = 1;
617pub const INCHIKEY_INVALID_LAYOUT: tagRetValGetINCHIKey = 2;
618pub const INCHIKEY_INVALID_VERSION: tagRetValGetINCHIKey = 3;
619pub type tagRetValGetINCHIKey = ::std::os::raw::c_int;
620pub use self::tagRetValGetINCHIKey as RetValCheckINCHIKeyv;
621extern "C" {
622 pub fn GetINCHIKeyFromINCHI(
623 szINCHISource: *const ::std::os::raw::c_char,
624 xtra1: ::std::os::raw::c_int,
625 xtra2: ::std::os::raw::c_int,
626 szINCHIKey: *mut ::std::os::raw::c_char,
627 szXtra1: *mut ::std::os::raw::c_char,
628 szXtra2: *mut ::std::os::raw::c_char,
629 ) -> ::std::os::raw::c_int;
630}
631extern "C" {
632 pub fn GetStdINCHIKeyFromStdINCHI(
633 szINCHISource: *const ::std::os::raw::c_char,
634 szINCHIKey: *mut ::std::os::raw::c_char,
635 ) -> ::std::os::raw::c_int;
636}
637extern "C" {
638 pub fn CheckINCHIKey(szINCHIKey: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
639}
640pub type INCHI_MODES = ::std::os::raw::c_ulong;
641extern "C" {
642 pub fn MakeINCHIFromMolfileText(
643 moltext: *const ::std::os::raw::c_char,
644 options: *mut ::std::os::raw::c_char,
645 result: *mut inchi_Output,
646 ) -> ::std::os::raw::c_int;
647}