rdk_sys/bindings/
mol_standardize.rs

1#[cxx::bridge(namespace = "RDKit")]
2pub mod ffi {
3    unsafe extern "C++" {
4        include!("cpp/include/ro_mol.h");
5        include!("cpp/include/mol_standardize.h");
6
7        pub type ROMol = crate::ro_mol_ffi::ROMol;
8        pub type RWMol = crate::rw_mol_ffi::RWMol;
9
10        pub type TautomerEnumerator;
11        pub type TautomerEnumeratorResult;
12        pub type CleanupParameters;
13        pub type Uncharger;
14
15        pub fn tautomer_enumerator() -> SharedPtr<TautomerEnumerator>;
16
17        pub fn tautomer_enumerate(
18            tautomer_enumerator: SharedPtr<TautomerEnumerator>,
19            mol: SharedPtr<ROMol>,
20        ) -> SharedPtr<TautomerEnumeratorResult>;
21        pub fn tautomer_enumerator_result_tautomers_size(
22            enumerator_result: SharedPtr<TautomerEnumeratorResult>,
23        ) -> i32;
24        pub fn tautomer_enumerator_result_tautomers_at(
25            enumerator_result: SharedPtr<TautomerEnumeratorResult>,
26            at: usize,
27        ) -> SharedPtr<ROMol>;
28        pub fn tautomer_enumerator_canonicalize(
29            tautomer_enumerator: SharedPtr<TautomerEnumerator>,
30            mol: SharedPtr<ROMol>,
31        ) -> SharedPtr<ROMol>;
32
33        pub fn default_cleanup_parameters() -> SharedPtr<CleanupParameters>;
34
35        pub fn new_uncharger(canonical: bool) -> SharedPtr<Uncharger>;
36        pub fn uncharger_uncharge(
37            uncharger: SharedPtr<Uncharger>,
38            mol: SharedPtr<ROMol>,
39        ) -> SharedPtr<ROMol>;
40
41        pub fn fragment_parent(
42            rw_mol: SharedPtr<RWMol>,
43            cleanup_params: SharedPtr<CleanupParameters>,
44            skip_standardize: bool,
45        ) -> SharedPtr<RWMol>;
46
47        pub fn normalize(
48            rw_mol: SharedPtr<RWMol>,
49            cleanup_params: SharedPtr<CleanupParameters>,
50        ) -> SharedPtr<RWMol>;
51    }
52}