use crate::error::Result;
use crate::template::{TModel, TemplateSequenceModel};
pub struct DefaultArrayAdapter {
array: Vec<TModel>,
}
impl DefaultArrayAdapter {
pub fn adapt(array: Vec<TModel>) -> Self {
DefaultArrayAdapter { array }
}
}
impl TemplateSequenceModel for DefaultArrayAdapter {
fn get(&self, index: usize) -> Result<TModel> {
self.array
.get(index)
.cloned()
.ok_or_else(|| crate::error::TemplateError::misc("index out of bounds".to_string()))
}
fn size(&self) -> Result<usize> {
Ok(self.array.len())
}
}