Skip to main content

chematic_mol/
lib.rs

1#![forbid(unsafe_code)]
2//! `chematic-mol` — SDF/MOL V2000 file format reader and writer for chematic.
3//!
4//! # Overview
5//! - [`mol2000`]: parse and write individual MOL V2000 (Ctab) blocks.
6//! - [`sdf`]: iterate over multi-molecule SDF files.
7//!
8//! # Quick start
9//! ```rust
10//! use chematic_mol::{parse_mol, write_mol, SdfReader};
11//! use chematic_mol::mol2000::MolMetadata;
12//!
13//! let mol_str = "ethanol\n  prog\n\n  3  2  0  0  0  0  0  0  0  0  0 V2000\n    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.5000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n    3.0000    0.0000    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n  1  2  1  0\n  2  3  1  0\nM  END\n";
14//! let (mol, meta) = parse_mol(mol_str).unwrap();
15//! assert_eq!(mol.atom_count(), 3);
16//! let written = write_mol(&mol, &meta);
17//! ```
18
19pub mod error;
20pub mod mol2000;
21pub mod mol3000;
22pub mod sdf;
23
24// Convenient re-exports at crate root.
25pub use error::MolParseError;
26// Re-export MolParseError under the alias MolError as specified by the public API.
27pub use error::MolParseError as MolError;
28pub use mol2000::{MolMetadata, parse_mol, write_mol};
29pub use mol3000::parse_mol_v3000;
30pub use sdf::SdfReader;