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