From 28db398714aef3f02b64906a3edb01e07c7e7083 Mon Sep 17 00:00:00 2001 From: Dominik Werder Date: Tue, 27 Jul 2021 12:54:52 +0200 Subject: [PATCH] Support more types --- archapp/src/events.rs | 2 +- archapp/src/lib.rs | 29 +++++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/archapp/src/events.rs b/archapp/src/events.rs index c0b1b48..78b85e3 100644 --- a/archapp/src/events.rs +++ b/archapp/src/events.rs @@ -309,7 +309,7 @@ pub async fn make_single_event_pipe( info!("file {} {}", ts1, ts1 + DAY * 27); info!("range {} {}", evq.range.beg, evq.range.end); if evq.range.beg < ts1 + DAY * 27 && evq.range.end > ts1 { - info!("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + info!("•••••••••••••••••••••••••• file matches requested range"); let f1 = File::open(de.path()).await?; info!("opened {:?}", de.path()); let mut pbr = PbFileReader::new(f1).await; diff --git a/archapp/src/lib.rs b/archapp/src/lib.rs index 4863318..e12dec0 100644 --- a/archapp/src/lib.rs +++ b/archapp/src/lib.rs @@ -136,6 +136,20 @@ fn tmp1() { //> as SitemtyFrameType>::FRAME_TYPE_ID; } +macro_rules! wagg1 { + ($k:expr, $ak:expr, $shape:expr, $sty:ident) => { + match $ak { + AggKind::Plain => EventsItem::Plain(PlainEvents::Wave(WavePlainEvents::$sty($k))), + AggKind::DimXBins1 => { + let p = WaveXBinner::create($shape, $ak.clone()); + let j = p.process($k); + EventsItem::XBinnedEvents(XBinnedEvents::SingleBinWave(SingleBinWaveEvents::$sty(j))) + } + AggKind::DimXBinsN(_) => EventsItem::Plain(PlainEvents::Wave(err::todoval())), + } + }; +} + impl WavePlainEvents { pub fn variant_name(&self) -> String { use WavePlainEvents::*; @@ -152,16 +166,11 @@ impl WavePlainEvents { use WavePlainEvents::*; let shape = self.shape(); match self { - Byte(k) => match ak { - AggKind::Plain => EventsItem::Plain(PlainEvents::Wave(WavePlainEvents::Byte(k))), - AggKind::DimXBins1 => { - let p = WaveXBinner::create(shape, ak.clone()); - let j = p.process(k); - EventsItem::XBinnedEvents(XBinnedEvents::SingleBinWave(SingleBinWaveEvents::Byte(j))) - } - AggKind::DimXBinsN(_) => EventsItem::Plain(PlainEvents::Wave(err::todoval())), - }, - _ => panic!(), + Byte(k) => wagg1!(k, ak, shape, Byte), + Short(k) => wagg1!(k, ak, shape, Short), + Int(k) => wagg1!(k, ak, shape, Int), + Float(k) => wagg1!(k, ak, shape, Float), + Double(k) => wagg1!(k, ak, shape, Double), } } }