Can show pulse id diff from sf-databuffer

This commit is contained in:
Dominik Werder
2023-03-22 14:07:05 +01:00
parent d1c10e1712
commit e53b328f21
24 changed files with 421 additions and 224 deletions

View File

@@ -11,7 +11,7 @@ use items_0::collect_s::ToJsonResult;
use items_0::streamitem::RangeCompletableItem;
use items_0::streamitem::Sitemty;
use items_0::streamitem::StreamItem;
use items_0::EventTransform;
use items_0::transform::EventTransform;
use items_0::TimeBinnable;
use items_0::TimeBinner;
use netpod::log::*;

View File

@@ -17,6 +17,7 @@ use items_0::TimeBinnable;
use items_0::TimeBinned;
use items_0::TimeBinner;
use items_0::TimeBins;
use items_0::TypeName;
use items_0::WithLen;
use netpod::is_false;
use netpod::log::*;
@@ -50,6 +51,12 @@ pub struct BinsDim0<NTY> {
pub dim0kind: Option<Dim0Kind>,
}
impl<STY> TypeName for BinsDim0<STY> {
fn type_name(&self) -> String {
any::type_name::<Self>().into()
}
}
impl<NTY> fmt::Debug for BinsDim0<NTY>
where
NTY: fmt::Debug,

View File

@@ -20,6 +20,7 @@ use items_0::TimeBinnable;
use items_0::TimeBinned;
use items_0::TimeBinner;
use items_0::TimeBins;
use items_0::TypeName;
use items_0::WithLen;
use netpod::is_false;
use netpod::log::*;
@@ -27,8 +28,8 @@ use netpod::range::evrange::NanoRange;
use netpod::range::evrange::SeriesRange;
use netpod::timeunits::SEC;
use netpod::BinnedRangeEnum;
use netpod::Dim0Kind;
use netpod::CmpZero;
use netpod::Dim0Kind;
use serde::Deserialize;
use serde::Serialize;
use std::any;
@@ -56,6 +57,12 @@ pub struct BinsXbinDim0<NTY> {
dim0kind: Option<Dim0Kind>,
}
impl<STY> TypeName for BinsXbinDim0<STY> {
fn type_name(&self) -> String {
any::type_name::<Self>().into()
}
}
impl<NTY> fmt::Debug for BinsXbinDim0<NTY>
where
NTY: fmt::Debug,

View File

@@ -1,6 +1,7 @@
use crate::framable::FrameType;
use crate::merger::Mergeable;
use crate::Events;
use items_0::TypeName;
use items_0::collect_s::Collectable;
use items_0::collect_s::Collected;
use items_0::collect_s::Collector;
@@ -16,6 +17,7 @@ use netpod::range::evrange::SeriesRange;
use netpod::BinnedRangeEnum;
use serde::Deserialize;
use serde::Serialize;
use std::any;
use std::any::Any;
use std::fmt;
use std::time::Duration;
@@ -106,6 +108,12 @@ pub enum ChannelEvents {
Status(Option<ConnStatusEvent>),
}
impl TypeName for ChannelEvents {
fn type_name(&self) -> String {
any::type_name::<Self>().into()
}
}
impl FrameTypeInnerStatic for ChannelEvents {
const FRAME_TYPE_ID: u32 = ITEMS_2_CHANNEL_EVENTS_FRAME_TYPE_ID;
}

View File

@@ -21,6 +21,7 @@ use items_0::EventsNonObj;
use items_0::MergeError;
use items_0::TimeBinnable;
use items_0::TimeBinner;
use items_0::TypeName;
use items_0::WithLen;
use netpod::is_false;
use netpod::log::*;
@@ -747,10 +748,11 @@ impl<NTY: ScalarOps> TimeBinnable for EventsDim0<NTY> {
}
}
impl<STY> items_0::TypeName for EventsDim0<STY> {
impl<STY> TypeName for EventsDim0<STY> {
fn type_name(&self) -> String {
let sty = std::any::type_name::<STY>();
format!("EventsDim0<{sty}>")
let self_name = any::type_name::<Self>();
let sty = any::type_name::<STY>();
format!("EventsDim0<{sty}> aka {self_name}<{sty}>")
}
}

View File

@@ -1,5 +1,4 @@
use crate::binsxbindim0::BinsXbinDim0;
use items_0::container::ByteEstimate;
use crate::IsoDateTime;
use crate::RangeOverlapInfo;
use crate::TimeBinnableType;
@@ -10,10 +9,12 @@ use items_0::collect_s::Collected;
use items_0::collect_s::CollectorType;
use items_0::collect_s::ToJsonBytes;
use items_0::collect_s::ToJsonResult;
use items_0::container::ByteEstimate;
use items_0::scalar_ops::ScalarOps;
use items_0::AsAnyMut;
use items_0::AsAnyRef;
use items_0::Empty;
use items_0::TypeName;
use items_0::WithLen;
use netpod::is_false;
use netpod::log::*;
@@ -56,6 +57,12 @@ impl<NTY> EventsXbinDim0<NTY> {
}
}
impl<STY> TypeName for EventsXbinDim0<STY> {
fn type_name(&self) -> String {
any::type_name::<Self>().into()
}
}
impl<NTY> fmt::Debug for EventsXbinDim0<NTY>
where
NTY: fmt::Debug,

View File

@@ -1,19 +0,0 @@
use items_0::Events;
pub trait EventTransform {
fn transform(&mut self, src: Box<dyn Events>) -> Box<dyn Events>;
}
pub struct IdentityTransform {}
impl IdentityTransform {
pub fn default() -> Self {
Self {}
}
}
impl EventTransform for IdentityTransform {
fn transform(&mut self, src: Box<dyn Events>) -> Box<dyn Events> {
src
}
}

View File

@@ -7,7 +7,6 @@ pub mod eventfull;
pub mod eventsdim0;
pub mod eventsdim1;
pub mod eventsxbindim0;
pub mod eventtransform;
pub mod framable;
pub mod frame;
pub mod inmem;
@@ -24,6 +23,7 @@ use chrono::TimeZone;
use chrono::Utc;
use futures_util::Stream;
use items_0::streamitem::Sitemty;
use items_0::transform::EventTransform;
use items_0::Empty;
use items_0::Events;
use items_0::MergeError;
@@ -199,9 +199,9 @@ pub trait TimeBinnableTypeAggregator: Send {
fn result_reset(&mut self, range: SeriesRange, expand: bool) -> Self::Output;
}
pub trait ChannelEventsInput: Stream<Item = Sitemty<ChannelEvents>> + items_0::EventTransform + Send {}
pub trait ChannelEventsInput: Stream<Item = Sitemty<ChannelEvents>> + EventTransform + Send {}
impl<T> ChannelEventsInput for T where T: Stream<Item = Sitemty<ChannelEvents>> + items_0::EventTransform + Send {}
impl<T> ChannelEventsInput for T where T: Stream<Item = Sitemty<ChannelEvents>> + EventTransform + Send {}
pub fn runfut<T, F>(fut: F) -> Result<T, err::Error>
where

View File

@@ -7,6 +7,8 @@ use items_0::streamitem::sitem_data;
use items_0::streamitem::RangeCompletableItem;
use items_0::streamitem::Sitemty;
use items_0::streamitem::StreamItem;
use items_0::transform::EventTransform;
use items_0::transform::TransformProperties;
use items_0::MergeError;
use items_0::WithLen;
use netpod::log::*;
@@ -412,8 +414,12 @@ where
}
}
impl<T> items_0::EventTransform for Merger<T> {
fn query_transform_properties(&self) -> items_0::TransformProperties {
impl<T> EventTransform for Merger<T> {
fn query_transform_properties(&self) -> TransformProperties {
todo!()
}
fn transform(&mut self, src: Box<dyn items_0::Events>) -> Box<dyn items_0::Events> {
todo!()
}
}

View File

@@ -2,8 +2,8 @@ use futures_util::Future;
use futures_util::FutureExt;
use futures_util::Stream;
use futures_util::StreamExt;
use items_0::EventTransform;
use items_0::TransformProperties;
use items_0::transform::EventTransform;
use items_0::transform::TransformProperties;
use std::collections::VecDeque;
use std::pin::Pin;
use std::task::Context;
@@ -47,6 +47,10 @@ impl<T> EventTransform for Enumerate2<T> {
fn query_transform_properties(&self) -> TransformProperties {
todo!()
}
fn transform(&mut self, src: Box<dyn items_0::Events>) -> Box<dyn items_0::Events> {
todo!()
}
}
pub struct Then2<T, F, Fut> {
@@ -118,6 +122,10 @@ impl<T, F, Fut> EventTransform for Then2<T, F, Fut> {
fn query_transform_properties(&self) -> TransformProperties {
todo!()
}
fn transform(&mut self, src: Box<dyn items_0::Events>) -> Box<dyn items_0::Events> {
todo!()
}
}
pub trait TransformerExt {
@@ -182,4 +190,8 @@ impl<T> EventTransform for VecStream<T> {
fn query_transform_properties(&self) -> TransformProperties {
todo!()
}
fn transform(&mut self, src: Box<dyn items_0::Events>) -> Box<dyn items_0::Events> {
todo!()
}
}