use std::io::BufRead;
use crate::Molecule;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SdfRecord {
pub molecule: Molecule,
pub data_fields: Vec<(String, String)>,
}
#[derive(Debug)]
pub enum SdfReadError {
Io(std::io::Error),
Parse(String),
NotImplemented,
}
impl From<std::io::Error> for SdfReadError {
fn from(value: std::io::Error) -> Self {
Self::Io(value)
}
}
pub struct SdfReader<R> {
reader: R,
}
impl<R: BufRead> SdfReader<R> {
#[must_use]
pub fn new(reader: R) -> Self {
Self { reader }
}
pub fn next_record(&mut self) -> Result<Option<SdfRecord>, SdfReadError> {
let _ = &mut self.reader;
unimplemented!("SDF streaming reader is not implemented yet")
}
}