Expand description
Low-level, unsafe FFI bindings to the vendored IUPAC InChI 1.07 reference
C library.
This crate is the unsafe foundation underneath the safe inchi crate. It
exposes the raw C structs and extern "C" entry points (GetINCHI,
GetINCHIKeyFromINCHI, MakeINCHIFromMolfileText, GetStructFromINCHI,
the matching Free* deallocators, …) exactly as declared in the upstream
inchi_api.h. The native C source is vendored and statically linked, so no
system InChI installation is required.
Almost all users should depend on the high-level inchi crate instead.
Everything here is unsafe and mirrors C ownership rules: any out
parameter populated by a Get*/Make* call must be released with the
corresponding Free* call to avoid leaking memory allocated by the C side.
§Bindings
By default the version-controlled, pre-generated bindings (produced by
bindgen) are used, so no libclang is needed to build. Enable the
regenerate-bindings feature to regenerate them from the vendored headers
at build time.
§Safety & threading
The InChI C library keeps some static internal state and is not
guaranteed to be thread-safe across concurrent calls. Callers of this crate
are responsible for synchronization; the inchi crate provides it.
Structs§
- IXA_
ATOMID_ STRUCT - IXA_
BONDID_ STRUCT - IXA_
INCHIBUILDER_ HANDLE_ STRUCT - IXA_
INCHIKEYBUILDER_ HANDLE_ STRUCT - IXA_
MOL_ HANDLE_ STRUCT - IXA_
POLYMERUNITID_ STRUCT - IXA_
STATUS_ HANDLE_ STRUCT - IXA_
STEREOID_ STRUCT - inchi_
Input Ex - inchi_
Input_ Polymer - inchi_
Input_ Polymer Unit - inchi_
Input_ V3000 - tagINCHI
Stereo0D - tagINCHI_
Input - tagINCHI_
InputINCHI - tagINCHI_
Output - tagINCHI_
Output Struct - tagINCHI_
Output Struct Ex - tagInchi
Atom - tagInchi
InpData
Constants§
- ATOM_
EL_ LEN - INCHIKEY_
INVALID_ LAYOUT - INCHIKEY_
INVALID_ LENGTH - INCHIKEY_
INVALID_ VERSION - INCHIKEY_
VALID_ NON_ STANDARD - INCHIKEY_
VALID_ STANDARD - INCHI_
BOND_ STEREO_ DOUBLE_ EITHER - INCHI_
BOND_ STEREO_ NONE - INCHI_
BOND_ STEREO_ SINGLE_ 1DOWN - INCHI_
BOND_ STEREO_ SINGLE_ 1EITHER - INCHI_
BOND_ STEREO_ SINGLE_ 1UP - INCHI_
BOND_ STEREO_ SINGLE_ 2DOWN - INCHI_
BOND_ STEREO_ SINGLE_ 2EITHER - INCHI_
BOND_ STEREO_ SINGLE_ 2UP - INCHI_
BOND_ TYPE_ ALTERN - INCHI_
BOND_ TYPE_ DOUBLE - INCHI_
BOND_ TYPE_ NONE - INCHI_
BOND_ TYPE_ SINGLE - INCHI_
BOND_ TYPE_ TRIPLE - INCHI_
FAIL_ I2I - INCHI_
INVALID_ LAYOUT - INCHI_
INVALID_ PREFIX - INCHI_
INVALID_ VERSION - INCHI_
NUM - INCHI_
PARITY_ EVEN - INCHI_
PARITY_ NONE - INCHI_
PARITY_ ODD - INCHI_
PARITY_ UNDEFINED - INCHI_
PARITY_ UNKNOWN - INCHI_
RADICAL_ DOUBLET - INCHI_
RADICAL_ NONE - INCHI_
RADICAL_ SINGLET - INCHI_
RADICAL_ TRIPLET - INCHI_
STRING_ PREFIX - INCHI_
Stereo Type_ Allene - INCHI_
Stereo Type_ Double Bond - INCHI_
Stereo Type_ None - INCHI_
Stereo Type_ Tetrahedral - INCHI_
VALID_ BETA - INCHI_
VALID_ NON_ STANDARD - INCHI_
VALID_ STANDARD - ISOTOPIC_
SHIFT_ FLAG - ISOTOPIC_
SHIFT_ MAX - IXA_
ATOM_ RADICAL_ DOUBLET - IXA_
ATOM_ RADICAL_ NONE - IXA_
ATOM_ RADICAL_ SINGLET - IXA_
ATOM_ RADICAL_ TRIPLET - IXA_
BOND_ TYPE_ AROMATIC - IXA_
BOND_ TYPE_ DOUBLE - IXA_
BOND_ TYPE_ SINGLE - IXA_
BOND_ TYPE_ TRIPLE - IXA_
BOND_ WEDGE_ DOWN - IXA_
BOND_ WEDGE_ EITHER - IXA_
BOND_ WEDGE_ NONE - IXA_
BOND_ WEDGE_ UP - IXA_
DBLBOND_ CONFIG_ EITHER - IXA_
DBLBOND_ CONFIG_ PERCEIVE - IXA_
FALSE - IXA_
INCHIBUILDER_ OPTION_ 15T - IXA_
INCHIBUILDER_ OPTION_ AuxNone - IXA_
INCHIBUILDER_ OPTION_ DoNot AddH - IXA_
INCHIBUILDER_ OPTION_ FilterSS - IXA_
INCHIBUILDER_ OPTION_ FixedH - IXA_
INCHIBUILDER_ OPTION_ FoldCRU - IXA_
INCHIBUILDER_ OPTION_ InvFilterSS - IXA_
INCHIBUILDER_ OPTION_ KET - IXA_
INCHIBUILDER_ OPTION_ Large Molecules - IXA_
INCHIBUILDER_ OPTION_ LooseTSA Check - IXA_
INCHIBUILDER_ OPTION_ NPZZ - IXA_
INCHIBUILDER_ OPTION_ NewPs Off - IXA_
INCHIBUILDER_ OPTION_ NoEdits - IXA_
INCHIBUILDER_ OPTION_ NoFrame Shift - IXA_
INCHIBUILDER_ OPTION_ NoWarnings - IXA_
INCHIBUILDER_ OPTION_ OutErr InChI - IXA_
INCHIBUILDER_ OPTION_ Polymers - IXA_
INCHIBUILDER_ OPTION_ Polymers105 - IXA_
INCHIBUILDER_ OPTION_ Polymers105 Plus - IXA_
INCHIBUILDER_ OPTION_ RecMet - IXA_
INCHIBUILDER_ OPTION_ SATZZ - IXA_
INCHIBUILDER_ OPTION_ SLUUD - IXA_
INCHIBUILDER_ OPTION_ SUU - IXA_
INCHIBUILDER_ OPTION_ Save Opt - IXA_
INCHIBUILDER_ OPTION_ Warn OnEmpty Structure - IXA_
INCHIBUILDER_ STEREOOPTION_ SAbs - IXA_
INCHIBUILDER_ STEREOOPTION_ SNon - IXA_
INCHIBUILDER_ STEREOOPTION_ SRac - IXA_
INCHIBUILDER_ STEREOOPTION_ SRel - IXA_
INCHIBUILDER_ STEREOOPTION_ SUCF - IXA_
STATUS_ ERROR - IXA_
STATUS_ SUCCESS - IXA_
STATUS_ WARNING - IXA_
STEREO_ PARITY_ EVEN - IXA_
STEREO_ PARITY_ NONE - IXA_
STEREO_ PARITY_ ODD - IXA_
STEREO_ PARITY_ UNKNOWN - IXA_
STEREO_ TOPOLOGY_ ANTIRECTANGLE - IXA_
STEREO_ TOPOLOGY_ INVALID - IXA_
STEREO_ TOPOLOGY_ RECTANGLE - IXA_
STEREO_ TOPOLOGY_ TETRAHEDRON - IXA_
TRUE - MAXVAL
- NO_ATOM
- NUM_
H_ ISOTOPES - inchi_
Ret_ BREAK - inchi_
Ret_ BUSY - inchi_
Ret_ EOF - inchi_
Ret_ ERROR - inchi_
Ret_ FATAL - inchi_
Ret_ OKAY - inchi_
Ret_ SKIP - inchi_
Ret_ UNKNOWN - inchi_
Ret_ WARNING - mol2inchi_
Ret_ EOF - mol2inchi_
Ret_ ERROR - mol2inchi_
Ret_ ERROR_ comp - mol2inchi_
Ret_ ERROR_ get - mol2inchi_
Ret_ OKAY - mol2inchi_
Ret_ WARNING
Functions§
- CheckINCHI⚠
- CheckINCHI
Key ⚠ - FreeINCHI⚠
- Free
StdINCHI ⚠ - Free
Struct ⚠FromINCHI - Free
Struct ⚠FromINCHI Ex - Free
Struct ⚠From StdINCHI - Free_
inchi_ ⚠Input - Free_
std_ ⚠inchi_ Input - GetINCHI⚠
- GetINCHI
Ex ⚠ - GetINCHI
KeyFromINCHI ⚠ - GetINCH
IfromINCHI ⚠ - GetStdINCHI⚠
- GetStdINCHI
KeyFrom ⚠StdINCHI - GetString
Length ⚠ - GetStruct
FromINCHI ⚠ - GetStruct
FromINCHI ⚠Ex - GetStruct
From ⚠StdINCHI - Get_
inchi_ ⚠Input_ From AuxInfo - Get_
std_ ⚠inchi_ Input_ From AuxInfo - IXA_
INCHIBUILDER_ ⚠Check Option - IXA_
INCHIBUILDER_ ⚠Check Option_ Stereo - IXA_
INCHIBUILDER_ ⚠Create - IXA_
INCHIBUILDER_ ⚠Destroy - IXA_
INCHIBUILDER_ ⚠GetAux Info - IXA_
INCHIBUILDER_ ⚠GetIn ChI - IXA_
INCHIBUILDER_ ⚠GetIn ChIEx - IXA_
INCHIBUILDER_ ⚠GetIn ChIVersion - IXA_
INCHIBUILDER_ ⚠GetLog - IXA_
INCHIBUILDER_ ⚠GetOption_ Timeout_ Milli Seconds - IXA_
INCHIBUILDER_ ⚠SetMolecule - IXA_
INCHIBUILDER_ ⚠SetOption - IXA_
INCHIBUILDER_ ⚠SetOption_ Stereo - IXA_
INCHIBUILDER_ ⚠SetOption_ Timeout - IXA_
INCHIBUILDER_ ⚠SetOption_ Timeout_ Milli Seconds - IXA_
INCHIKEYBUILDER_ ⚠Create - IXA_
INCHIKEYBUILDER_ ⚠Destroy - IXA_
INCHIKEYBUILDER_ ⚠GetIn ChIKey - IXA_
INCHIKEYBUILDER_ ⚠SetIn ChI - IXA_
MOL_ ⚠Clear - IXA_
MOL_ ⚠Create - IXA_
MOL_ ⚠Destroy - IXA_
MOL_ ⚠GetAtom Atomic Number - IXA_
MOL_ ⚠GetAtom Bond - IXA_
MOL_ ⚠GetAtom Charge - IXA_
MOL_ ⚠GetAtom Element - IXA_
MOL_ ⚠GetAtom Hydrogens - IXA_
MOL_ ⚠GetAtom Id - IXA_
MOL_ ⚠GetAtom Index - IXA_
MOL_ ⚠GetAtom Mass - IXA_
MOL_ ⚠GetAtom NumBonds - IXA_
MOL_ ⚠GetAtom Radical - IXA_
MOL_ ⚠GetAtomX - IXA_
MOL_ ⚠GetAtomY - IXA_
MOL_ ⚠GetAtomZ - IXA_
MOL_ ⚠GetBond Atom1 - IXA_
MOL_ ⚠GetBond Atom2 - IXA_
MOL_ ⚠GetBond Id - IXA_
MOL_ ⚠GetBond Index - IXA_
MOL_ ⚠GetBond Other Atom - IXA_
MOL_ ⚠GetBond Type - IXA_
MOL_ ⚠GetBond Wedge - IXA_
MOL_ ⚠GetChiral - IXA_
MOL_ ⚠GetCommon Bond - IXA_
MOL_ ⚠GetDbl Bond Config - IXA_
MOL_ ⚠GetNum Atoms - IXA_
MOL_ ⚠GetNum Bonds - IXA_
MOL_ ⚠GetNum Stereos - IXA_
MOL_ ⚠GetStereo Central Atom - IXA_
MOL_ ⚠GetStereo Central Bond - IXA_
MOL_ ⚠GetStereo Id - IXA_
MOL_ ⚠GetStereo Index - IXA_
MOL_ ⚠GetStereo NumVertices - IXA_
MOL_ ⚠GetStereo Parity - IXA_
MOL_ ⚠GetStereo Topology - IXA_
MOL_ ⚠GetStereo Vertex - IXA_
MOL_ ⚠Read InChI - IXA_
MOL_ ⚠Read Molfile - IXA_
MOL_ ⚠SetChiral - IXA_
STATUS_ ⚠Clear - IXA_
STATUS_ ⚠Create - IXA_
STATUS_ ⚠Destroy - IXA_
STATUS_ ⚠GetCount - IXA_
STATUS_ ⚠GetMessage - IXA_
STATUS_ ⚠GetSeverity - IXA_
STATUS_ ⚠HasError - IXA_
STATUS_ ⚠HasWarning - MakeINCHI
From ⚠Molfile Text
Type Aliases§
- AT_NUM
- INCHI_
MODES - IXA_
ATOMID - IXA_
ATOM_ RADICAL - IXA_
BONDID - IXA_
BOND_ TYPE - IXA_
BOND_ WEDGE - IXA_
BOOL - IXA_
DBLBOND_ CONFIG - IXA_
INCHIBUILDER_ HANDLE - IXA_
INCHIBUILDER_ OPTION - IXA_
INCHIBUILDER_ STEREOOPTION - IXA_
INCHIKEYBUILDER_ HANDLE - IXA_
MOL_ HANDLE - IXA_
POLYMERUNITID - IXA_
STATUS - IXA_
STATUS_ HANDLE - IXA_
STEREOID - IXA_
STEREO_ PARITY - IXA_
STEREO_ TOPOLOGY - Inchi
InpData - RetVal
CheckINCHI - RetVal
CheckINCHI Keyv - RetVal
GetINCHI - RetVal
Mol2INCHI - S_CHAR
- S_SHORT
- inchi_
Atom - inchi_
Bond Stereo2D - inchi_
Bond Type - inchi_
Input - inchi_
InputINCHI - inchi_
Output - inchi_
Output Struct - inchi_
Output Struct Ex - inchi_
Output_ Polymer - inchi_
Output_ Polymer Unit - inchi_
Output_ V3000 - inchi_
Radical - inchi_
Stereo0D - inchi_
Stereo Parity0D - inchi_
Stereo Type0D - tagINCHI
Bond Stereo2D - tagINCHI
Bond Type - tagINCHI
Radical - tagINCHI
Stereo Parity0D - tagINCHI
Stereo Type0D - tagRet
ValCheckINCHI - tagRet
ValGetINCHI - tagRet
ValGetINCHI Key - tagRet
ValMO L2INCHI