diff --git a/src/core/service_items.rs b/src/core/service_items.rs index e60267a..1183a92 100644 --- a/src/core/service_items.rs +++ b/src/core/service_items.rs @@ -212,7 +212,7 @@ impl ServiceItemModel { } pub fn to_slides(&self) -> Result> { - Ok(self + let slides = self .items .iter() .filter_map(|item| { @@ -221,7 +221,13 @@ impl ServiceItemModel { slides }) .flatten() - .collect::>()) + .collect::>(); + let mut final_slides = vec![]; + for (index, mut slide) in slides.into_iter().enumerate() { + slide.set_index(index as i32); + final_slides.push(slide); + } + Ok(final_slides) } } diff --git a/src/core/slide.rs b/src/core/slide.rs index 3986dd4..5511105 100644 --- a/src/core/slide.rs +++ b/src/core/slide.rs @@ -245,6 +245,10 @@ impl Slide { Ok(slides) } + pub(crate) fn set_index(&mut self, index: i32) { + self.id = index; + } + // pub fn slides_from_item(item: &ServiceItem) -> Result> { // todo!() // }