use std::io;
use super::defs::*;
use crate::mime::fetch::zstd_train::ZstdTrainFetcher;
use crate::mime::grovel::grovel;
use crate::support::error::Error;
impl Account {
pub fn zstd_train(&mut self, mb: &Mailbox) -> Result<Vec<u8>, Error> {
let samples = mb
.messages
.iter()
.map(|m| {
let mut accessor = self.access_message(mb, m.uid)?;
grovel(&mut accessor, ZstdTrainFetcher::default())
})
.collect::<Result<Vec<_>, Error>>()?;
zstd::dict::from_samples(&samples, 4096)
.map_err(|e| Error::Io(io::Error::new(io::ErrorKind::Other, e)))
}
}