use crate::RecordTypes;
use crate::IRecordType;
use it_lilo::traits::RecordResolvable;
use it_lilo::traits::RecordResolvableError;
use std::rc::Rc;
pub(crate) struct LiHelper {
record_types: Rc<RecordTypes>,
}
impl LiHelper {
pub(crate) fn new(record_types: Rc<RecordTypes>) -> Self {
Self { record_types }
}
}
impl RecordResolvable for LiHelper {
fn resolve_record(&self, record_type_id: u64) -> Result<&IRecordType, RecordResolvableError> {
self.record_types
.get(&record_type_id)
.map(|r| r.as_ref())
.ok_or_else(|| RecordResolvableError::RecordNotFound(record_type_id))
}
}