[−][src]Function purr::read::read
pub fn read(text: &str) -> Result<Vec<Atom>, Error>
Reads a string representation of a SMILES. Supports the feature set found in SMILES Formal Grammar. This is a subset of features supported by OpenSMILES. The missing features are:
- no wildcard/unknown atom (*)
- only tetrahedral atom pariities (@, @@)
use purr::read::{ read, Error }; use purr::valence::implicit_hydrogens; use purr::mol::{ Atom, Bond, Nub, Element }; fn main() -> Result<(), Error> { let atoms = read(&"OC[CH3]")?; assert_eq!(atoms, vec![ Atom { nub: Nub { element: Element::O, ..Default::default() }, bonds: vec![ Bond { tid: 1, style: None } ] }, Atom { nub: Default::default(), bonds: vec![ Bond { tid: 0, style: None }, Bond { tid: 2, style: None } ] }, Atom { nub: Nub { hcount: Some(3), charge: Some(0), ..Default::default() }, bonds: vec![ Bond { tid: 1, style: None } ] } ]); assert_eq!(implicit_hydrogens(&atoms[0]), Ok(Some(1))); assert_eq!(implicit_hydrogens(&atoms[1]), Ok(Some(2))); assert_eq!(implicit_hydrogens(&atoms[2]), Ok(None)); Ok(()) }