Skip to main content

Crate inchi_sys

Crate inchi_sys 

Source
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_InputEx
inchi_Input_Polymer
inchi_Input_PolymerUnit
inchi_Input_V3000
tagINCHIStereo0D
tagINCHI_Input
tagINCHI_InputINCHI
tagINCHI_Output
tagINCHI_OutputStruct
tagINCHI_OutputStructEx
tagInchiAtom
tagInchiInpData

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_StereoType_Allene
INCHI_StereoType_DoubleBond
INCHI_StereoType_None
INCHI_StereoType_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_DoNotAddH
IXA_INCHIBUILDER_OPTION_FilterSS
IXA_INCHIBUILDER_OPTION_FixedH
IXA_INCHIBUILDER_OPTION_FoldCRU
IXA_INCHIBUILDER_OPTION_InvFilterSS
IXA_INCHIBUILDER_OPTION_KET
IXA_INCHIBUILDER_OPTION_LargeMolecules
IXA_INCHIBUILDER_OPTION_LooseTSACheck
IXA_INCHIBUILDER_OPTION_NPZZ
IXA_INCHIBUILDER_OPTION_NewPsOff
IXA_INCHIBUILDER_OPTION_NoEdits
IXA_INCHIBUILDER_OPTION_NoFrameShift
IXA_INCHIBUILDER_OPTION_NoWarnings
IXA_INCHIBUILDER_OPTION_OutErrInChI
IXA_INCHIBUILDER_OPTION_Polymers
IXA_INCHIBUILDER_OPTION_Polymers105
IXA_INCHIBUILDER_OPTION_Polymers105Plus
IXA_INCHIBUILDER_OPTION_RecMet
IXA_INCHIBUILDER_OPTION_SATZZ
IXA_INCHIBUILDER_OPTION_SLUUD
IXA_INCHIBUILDER_OPTION_SUU
IXA_INCHIBUILDER_OPTION_SaveOpt
IXA_INCHIBUILDER_OPTION_WarnOnEmptyStructure
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
CheckINCHIKey
FreeINCHI
FreeStdINCHI
FreeStructFromINCHI
FreeStructFromINCHIEx
FreeStructFromStdINCHI
Free_inchi_Input
Free_std_inchi_Input
GetINCHI
GetINCHIEx
GetINCHIKeyFromINCHI
GetINCHIfromINCHI
GetStdINCHI
GetStdINCHIKeyFromStdINCHI
GetStringLength
GetStructFromINCHI
GetStructFromINCHIEx
GetStructFromStdINCHI
Get_inchi_Input_FromAuxInfo
Get_std_inchi_Input_FromAuxInfo
IXA_INCHIBUILDER_CheckOption
IXA_INCHIBUILDER_CheckOption_Stereo
IXA_INCHIBUILDER_Create
IXA_INCHIBUILDER_Destroy
IXA_INCHIBUILDER_GetAuxInfo
IXA_INCHIBUILDER_GetInChI
IXA_INCHIBUILDER_GetInChIEx
IXA_INCHIBUILDER_GetInChIVersion
IXA_INCHIBUILDER_GetLog
IXA_INCHIBUILDER_GetOption_Timeout_MilliSeconds
IXA_INCHIBUILDER_SetMolecule
IXA_INCHIBUILDER_SetOption
IXA_INCHIBUILDER_SetOption_Stereo
IXA_INCHIBUILDER_SetOption_Timeout
IXA_INCHIBUILDER_SetOption_Timeout_MilliSeconds
IXA_INCHIKEYBUILDER_Create
IXA_INCHIKEYBUILDER_Destroy
IXA_INCHIKEYBUILDER_GetInChIKey
IXA_INCHIKEYBUILDER_SetInChI
IXA_MOL_Clear
IXA_MOL_Create
IXA_MOL_Destroy
IXA_MOL_GetAtomAtomicNumber
IXA_MOL_GetAtomBond
IXA_MOL_GetAtomCharge
IXA_MOL_GetAtomElement
IXA_MOL_GetAtomHydrogens
IXA_MOL_GetAtomId
IXA_MOL_GetAtomIndex
IXA_MOL_GetAtomMass
IXA_MOL_GetAtomNumBonds
IXA_MOL_GetAtomRadical
IXA_MOL_GetAtomX
IXA_MOL_GetAtomY
IXA_MOL_GetAtomZ
IXA_MOL_GetBondAtom1
IXA_MOL_GetBondAtom2
IXA_MOL_GetBondId
IXA_MOL_GetBondIndex
IXA_MOL_GetBondOtherAtom
IXA_MOL_GetBondType
IXA_MOL_GetBondWedge
IXA_MOL_GetChiral
IXA_MOL_GetCommonBond
IXA_MOL_GetDblBondConfig
IXA_MOL_GetNumAtoms
IXA_MOL_GetNumBonds
IXA_MOL_GetNumStereos
IXA_MOL_GetStereoCentralAtom
IXA_MOL_GetStereoCentralBond
IXA_MOL_GetStereoId
IXA_MOL_GetStereoIndex
IXA_MOL_GetStereoNumVertices
IXA_MOL_GetStereoParity
IXA_MOL_GetStereoTopology
IXA_MOL_GetStereoVertex
IXA_MOL_ReadInChI
IXA_MOL_ReadMolfile
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
MakeINCHIFromMolfileText

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
InchiInpData
RetValCheckINCHI
RetValCheckINCHIKeyv
RetValGetINCHI
RetValMol2INCHI
S_CHAR
S_SHORT
inchi_Atom
inchi_BondStereo2D
inchi_BondType
inchi_Input
inchi_InputINCHI
inchi_Output
inchi_OutputStruct
inchi_OutputStructEx
inchi_Output_Polymer
inchi_Output_PolymerUnit
inchi_Output_V3000
inchi_Radical
inchi_Stereo0D
inchi_StereoParity0D
inchi_StereoType0D
tagINCHIBondStereo2D
tagINCHIBondType
tagINCHIRadical
tagINCHIStereoParity0D
tagINCHIStereoType0D
tagRetValCheckINCHI
tagRetValGetINCHI
tagRetValGetINCHIKey
tagRetValMOL2INCHI