From 0c1429fd7e6e1432e480e59ffc5b0e86588cd26e Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Tue, 23 Jun 2026 08:50:28 -0700 Subject: Tweaked for generality. --- src/context.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/context.rs') diff --git a/src/context.rs b/src/context.rs index 0b51677..6f8e04f 100644 --- a/src/context.rs +++ b/src/context.rs @@ -21,6 +21,24 @@ pub trait MappedList<'a> { fn get_index(&'a self, id: usize) -> Option>; fn for_each(&'a self, func: &dyn Fn(&MappedValue<'a>, &mut String) -> CrimResult<()>) -> CrimResult; } + +impl<'a, T: MappedStructure<'a>> MappedList<'a> for Vec { + fn get_index(&'a self, id: usize) -> Option> { + if let Some(x) = self.get(id) { + Some(MappedValue::<'a>::Struct(x)) + } else { + None + } + } + + fn for_each(&'a self, func: &dyn Fn(&MappedValue<'a>, &mut String) -> CrimResult<()>) -> CrimResult { + let mut buf = String::new(); + for i in self { + func( &MappedValue::Struct(i), &mut buf )?; + } + Ok(buf) + } +} impl<'a> MappedList<'a> for Vec { fn get_index(&'a self, id: usize) -> Option> { -- cgit v1.2.3