pub struct PortalChunks<'a, T: 'a> {
v: &'a [T],
chunk_size: usize,
}
impl<'a, T: 'a> PortalChunks<'a, T> {
pub fn init(data: &'a [T], chunk_size: usize) -> PortalChunks<'a,T> {
PortalChunks{
v: data, chunk_size: chunk_size,
}
}
}
impl<'a> Iterator for PortalChunks<'a,u8>
{
type Item = &'a [u8];
fn next(&mut self) -> Option<Self::Item> {
if self.v.is_empty() {
return None;
}
let chunksz = std::cmp::min(self.v.len(), self.chunk_size);
let (beg,end) = self.v.split_at(chunksz);
self.v = end;
Some(beg)
}
}