From 9a35e2f4fa95e195892aceac68c7832f9c1f69c0 Mon Sep 17 00:00:00 2001 From: Dominik Werder Date: Wed, 23 Oct 2024 19:26:22 +0200 Subject: [PATCH] WIP --- crates/items_2/src/eventsdim0.rs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/crates/items_2/src/eventsdim0.rs b/crates/items_2/src/eventsdim0.rs index 3166458..7d44dcd 100644 --- a/crates/items_2/src/eventsdim0.rs +++ b/crates/items_2/src/eventsdim0.rs @@ -884,9 +884,10 @@ impl EventsNonObj for EventsDim0 { macro_rules! try_to_container_events { ($sty:ty, $this:expr) => { - if let Some(evs) = $this.as_any_ref().downcast_ref::>() { + let this = $this; + if let Some(evs) = this.as_any_ref().downcast_ref::>() { use crate::binning::container_events::ContainerEvents; - let tss = $this.tss.iter().map(|&x| TsNano::from_ns(x)).collect(); + let tss = this.tss.iter().map(|&x| TsNano::from_ns(x)).collect(); let vals = evs.values.clone(); let ret = ContainerEvents::<$sty>::from_constituents(tss, vals); return Box::new(ret); @@ -1121,8 +1122,26 @@ impl Events for EventsDim0 { try_to_container_events!(u16, self); try_to_container_events!(u32, self); try_to_container_events!(u64, self); + try_to_container_events!(i8, self); + try_to_container_events!(i16, self); + try_to_container_events!(i32, self); + try_to_container_events!(i64, self); try_to_container_events!(f32, self); try_to_container_events!(f64, self); + // try_to_container_events!(bool, self); + // try_to_container_events!(String, self); + let this = self; + if let Some(evs) = self.as_any_ref().downcast_ref::>() { + use crate::binning::container_events::ContainerEvents; + let tss = this.tss.iter().map(|&x| TsNano::from_ns(x)).collect(); + use crate::binning::container_events::Container; + let mut vals = crate::binning::valuetype::EnumVariantContainer::new(); + for x in evs.values.iter() { + vals.push_back(x.clone()); + } + let ret = ContainerEvents::::from_constituents(tss, vals); + return Box::new(ret); + } let styn = any::type_name::(); todo!("TODO for {styn}") }