use std::io;
use super::defs::*;
use crate::mime::fetch::zstd_train::ZstdTrainFetcher;
use crate::mime::grovel::grovel;
use crate::support::error::Error;
impl StatefulMailbox {
pub fn zstd_train(&mut self) -> Result<Vec<u8>, Error> {
let samples = self
.state
.uids()
.map(|uid| {
let accessor = self.access_message(uid)?;
grovel(&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)))
}
}