Refactor for easier channel conversion tool
This commit is contained in:
@@ -11,31 +11,31 @@ use crate::{
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub enum SingleBinWaveEvents {
|
||||
Byte(XBinnedScalarEvents<i8>),
|
||||
Short(XBinnedScalarEvents<i16>),
|
||||
Int(XBinnedScalarEvents<i32>),
|
||||
Float(XBinnedScalarEvents<f32>),
|
||||
Double(XBinnedScalarEvents<f64>),
|
||||
I8(XBinnedScalarEvents<i8>),
|
||||
I16(XBinnedScalarEvents<i16>),
|
||||
I32(XBinnedScalarEvents<i32>),
|
||||
F32(XBinnedScalarEvents<f32>),
|
||||
F64(XBinnedScalarEvents<f64>),
|
||||
}
|
||||
|
||||
impl SingleBinWaveEvents {
|
||||
pub fn variant_name(&self) -> String {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => format!("Byte"),
|
||||
Short(_) => format!("Short"),
|
||||
Int(_) => format!("Int"),
|
||||
Float(_) => format!("Float"),
|
||||
Double(_) => format!("Double"),
|
||||
I8(_) => format!("I8"),
|
||||
I16(_) => format!("I16"),
|
||||
I32(_) => format!("I32"),
|
||||
F32(_) => format!("F32"),
|
||||
F64(_) => format!("F64"),
|
||||
}
|
||||
}
|
||||
|
||||
fn x_aggregate(self, ak: &AggKind) -> EventsItem {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(k) => match ak {
|
||||
I8(k) => match ak {
|
||||
AggKind::EventBlobs => panic!(),
|
||||
AggKind::Plain => EventsItem::XBinnedEvents(XBinnedEvents::SingleBinWave(SingleBinWaveEvents::Byte(k))),
|
||||
AggKind::Plain => EventsItem::XBinnedEvents(XBinnedEvents::SingleBinWave(SingleBinWaveEvents::I8(k))),
|
||||
AggKind::TimeWeightedScalar => err::todoval(),
|
||||
AggKind::DimXBins1 => err::todoval(),
|
||||
AggKind::DimXBinsN(_) => EventsItem::Plain(PlainEvents::Wave(err::todoval())),
|
||||
@@ -48,11 +48,11 @@ impl SingleBinWaveEvents {
|
||||
impl Clearable for SingleBinWaveEvents {
|
||||
fn clear(&mut self) {
|
||||
match self {
|
||||
SingleBinWaveEvents::Byte(k) => k.clear(),
|
||||
SingleBinWaveEvents::Short(k) => k.clear(),
|
||||
SingleBinWaveEvents::Int(k) => k.clear(),
|
||||
SingleBinWaveEvents::Float(k) => k.clear(),
|
||||
SingleBinWaveEvents::Double(k) => k.clear(),
|
||||
SingleBinWaveEvents::I8(k) => k.clear(),
|
||||
SingleBinWaveEvents::I16(k) => k.clear(),
|
||||
SingleBinWaveEvents::I32(k) => k.clear(),
|
||||
SingleBinWaveEvents::F32(k) => k.clear(),
|
||||
SingleBinWaveEvents::F64(k) => k.clear(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,34 +60,34 @@ impl Clearable for SingleBinWaveEvents {
|
||||
impl Appendable for SingleBinWaveEvents {
|
||||
fn empty_like_self(&self) -> Self {
|
||||
match self {
|
||||
Self::Byte(k) => Self::Byte(k.empty_like_self()),
|
||||
Self::Short(k) => Self::Short(k.empty_like_self()),
|
||||
Self::Int(k) => Self::Int(k.empty_like_self()),
|
||||
Self::Float(k) => Self::Float(k.empty_like_self()),
|
||||
Self::Double(k) => Self::Double(k.empty_like_self()),
|
||||
Self::I8(k) => Self::I8(k.empty_like_self()),
|
||||
Self::I16(k) => Self::I16(k.empty_like_self()),
|
||||
Self::I32(k) => Self::I32(k.empty_like_self()),
|
||||
Self::F32(k) => Self::F32(k.empty_like_self()),
|
||||
Self::F64(k) => Self::F64(k.empty_like_self()),
|
||||
}
|
||||
}
|
||||
|
||||
fn append(&mut self, src: &Self) {
|
||||
match self {
|
||||
Self::Byte(k) => match src {
|
||||
Self::Byte(j) => k.append(j),
|
||||
Self::I8(k) => match src {
|
||||
Self::I8(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Short(k) => match src {
|
||||
Self::Short(j) => k.append(j),
|
||||
Self::I16(k) => match src {
|
||||
Self::I16(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Int(k) => match src {
|
||||
Self::Int(j) => k.append(j),
|
||||
Self::I32(k) => match src {
|
||||
Self::I32(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Float(k) => match src {
|
||||
Self::Float(j) => k.append(j),
|
||||
Self::F32(k) => match src {
|
||||
Self::F32(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Double(k) => match src {
|
||||
Self::Double(j) => k.append(j),
|
||||
Self::F64(k) => match src {
|
||||
Self::F64(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
}
|
||||
@@ -97,24 +97,24 @@ impl Appendable for SingleBinWaveEvents {
|
||||
impl PushableIndex for SingleBinWaveEvents {
|
||||
fn push_index(&mut self, src: &Self, ix: usize) {
|
||||
match self {
|
||||
Self::Byte(k) => match src {
|
||||
Self::Byte(j) => k.push_index(j, ix),
|
||||
Self::I8(k) => match src {
|
||||
Self::I8(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Short(k) => match src {
|
||||
Self::Short(j) => k.push_index(j, ix),
|
||||
Self::I16(k) => match src {
|
||||
Self::I16(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Int(k) => match src {
|
||||
Self::Int(j) => k.push_index(j, ix),
|
||||
Self::I32(k) => match src {
|
||||
Self::I32(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Float(k) => match src {
|
||||
Self::Float(j) => k.push_index(j, ix),
|
||||
Self::F32(k) => match src {
|
||||
Self::F32(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Double(k) => match src {
|
||||
Self::Double(j) => k.push_index(j, ix),
|
||||
Self::F64(k) => match src {
|
||||
Self::F64(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
}
|
||||
@@ -125,11 +125,11 @@ impl WithLen for SingleBinWaveEvents {
|
||||
fn len(&self) -> usize {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(j) => j.len(),
|
||||
Short(j) => j.len(),
|
||||
Int(j) => j.len(),
|
||||
Float(j) => j.len(),
|
||||
Double(j) => j.len(),
|
||||
I8(j) => j.len(),
|
||||
I16(j) => j.len(),
|
||||
I32(j) => j.len(),
|
||||
F32(j) => j.len(),
|
||||
F64(j) => j.len(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,11 +138,11 @@ impl WithTimestamps for SingleBinWaveEvents {
|
||||
fn ts(&self, ix: usize) -> u64 {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(j) => j.ts(ix),
|
||||
Short(j) => j.ts(ix),
|
||||
Int(j) => j.ts(ix),
|
||||
Float(j) => j.ts(ix),
|
||||
Double(j) => j.ts(ix),
|
||||
I8(j) => j.ts(ix),
|
||||
I16(j) => j.ts(ix),
|
||||
I32(j) => j.ts(ix),
|
||||
F32(j) => j.ts(ix),
|
||||
F64(j) => j.ts(ix),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -151,11 +151,11 @@ impl HasShape for SingleBinWaveEvents {
|
||||
fn shape(&self) -> Shape {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => Shape::Scalar,
|
||||
Short(_) => Shape::Scalar,
|
||||
Int(_) => Shape::Scalar,
|
||||
Float(_) => Shape::Scalar,
|
||||
Double(_) => Shape::Scalar,
|
||||
I8(_) => Shape::Scalar,
|
||||
I16(_) => Shape::Scalar,
|
||||
I32(_) => Shape::Scalar,
|
||||
F32(_) => Shape::Scalar,
|
||||
F64(_) => Shape::Scalar,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,42 +164,42 @@ impl HasScalarType for SingleBinWaveEvents {
|
||||
fn scalar_type(&self) -> ScalarType {
|
||||
use SingleBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => ScalarType::I8,
|
||||
Short(_) => ScalarType::I16,
|
||||
Int(_) => ScalarType::I32,
|
||||
Float(_) => ScalarType::F32,
|
||||
Double(_) => ScalarType::F64,
|
||||
I8(_) => ScalarType::I8,
|
||||
I16(_) => ScalarType::I16,
|
||||
I32(_) => ScalarType::I32,
|
||||
F32(_) => ScalarType::F32,
|
||||
F64(_) => ScalarType::F64,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub enum MultiBinWaveEvents {
|
||||
Byte(XBinnedWaveEvents<i8>),
|
||||
Short(XBinnedWaveEvents<i16>),
|
||||
Int(XBinnedWaveEvents<i32>),
|
||||
Float(XBinnedWaveEvents<f32>),
|
||||
Double(XBinnedWaveEvents<f64>),
|
||||
I8(XBinnedWaveEvents<i8>),
|
||||
I16(XBinnedWaveEvents<i16>),
|
||||
I32(XBinnedWaveEvents<i32>),
|
||||
F32(XBinnedWaveEvents<f32>),
|
||||
F64(XBinnedWaveEvents<f64>),
|
||||
}
|
||||
|
||||
impl MultiBinWaveEvents {
|
||||
pub fn variant_name(&self) -> String {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => format!("Byte"),
|
||||
Short(_) => format!("Short"),
|
||||
Int(_) => format!("Int"),
|
||||
Float(_) => format!("Float"),
|
||||
Double(_) => format!("Double"),
|
||||
I8(_) => format!("I8"),
|
||||
I16(_) => format!("I16"),
|
||||
I32(_) => format!("I32"),
|
||||
F32(_) => format!("F32"),
|
||||
F64(_) => format!("F64"),
|
||||
}
|
||||
}
|
||||
|
||||
fn x_aggregate(self, ak: &AggKind) -> EventsItem {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(k) => match ak {
|
||||
I8(k) => match ak {
|
||||
AggKind::EventBlobs => panic!(),
|
||||
AggKind::Plain => EventsItem::XBinnedEvents(XBinnedEvents::MultiBinWave(MultiBinWaveEvents::Byte(k))),
|
||||
AggKind::Plain => EventsItem::XBinnedEvents(XBinnedEvents::MultiBinWave(MultiBinWaveEvents::I8(k))),
|
||||
AggKind::TimeWeightedScalar => err::todoval(),
|
||||
AggKind::DimXBins1 => err::todoval(),
|
||||
AggKind::DimXBinsN(_) => EventsItem::Plain(PlainEvents::Wave(err::todoval())),
|
||||
@@ -212,11 +212,11 @@ impl MultiBinWaveEvents {
|
||||
impl Clearable for MultiBinWaveEvents {
|
||||
fn clear(&mut self) {
|
||||
match self {
|
||||
MultiBinWaveEvents::Byte(k) => k.clear(),
|
||||
MultiBinWaveEvents::Short(k) => k.clear(),
|
||||
MultiBinWaveEvents::Int(k) => k.clear(),
|
||||
MultiBinWaveEvents::Float(k) => k.clear(),
|
||||
MultiBinWaveEvents::Double(k) => k.clear(),
|
||||
MultiBinWaveEvents::I8(k) => k.clear(),
|
||||
MultiBinWaveEvents::I16(k) => k.clear(),
|
||||
MultiBinWaveEvents::I32(k) => k.clear(),
|
||||
MultiBinWaveEvents::F32(k) => k.clear(),
|
||||
MultiBinWaveEvents::F64(k) => k.clear(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,34 +224,34 @@ impl Clearable for MultiBinWaveEvents {
|
||||
impl Appendable for MultiBinWaveEvents {
|
||||
fn empty_like_self(&self) -> Self {
|
||||
match self {
|
||||
Self::Byte(k) => Self::Byte(k.empty_like_self()),
|
||||
Self::Short(k) => Self::Short(k.empty_like_self()),
|
||||
Self::Int(k) => Self::Int(k.empty_like_self()),
|
||||
Self::Float(k) => Self::Float(k.empty_like_self()),
|
||||
Self::Double(k) => Self::Double(k.empty_like_self()),
|
||||
Self::I8(k) => Self::I8(k.empty_like_self()),
|
||||
Self::I16(k) => Self::I16(k.empty_like_self()),
|
||||
Self::I32(k) => Self::I32(k.empty_like_self()),
|
||||
Self::F32(k) => Self::F32(k.empty_like_self()),
|
||||
Self::F64(k) => Self::F64(k.empty_like_self()),
|
||||
}
|
||||
}
|
||||
|
||||
fn append(&mut self, src: &Self) {
|
||||
match self {
|
||||
Self::Byte(k) => match src {
|
||||
Self::Byte(j) => k.append(j),
|
||||
Self::I8(k) => match src {
|
||||
Self::I8(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Short(k) => match src {
|
||||
Self::Short(j) => k.append(j),
|
||||
Self::I16(k) => match src {
|
||||
Self::I16(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Int(k) => match src {
|
||||
Self::Int(j) => k.append(j),
|
||||
Self::I32(k) => match src {
|
||||
Self::I32(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Float(k) => match src {
|
||||
Self::Float(j) => k.append(j),
|
||||
Self::F32(k) => match src {
|
||||
Self::F32(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Double(k) => match src {
|
||||
Self::Double(j) => k.append(j),
|
||||
Self::F64(k) => match src {
|
||||
Self::F64(j) => k.append(j),
|
||||
_ => panic!(),
|
||||
},
|
||||
}
|
||||
@@ -261,24 +261,24 @@ impl Appendable for MultiBinWaveEvents {
|
||||
impl PushableIndex for MultiBinWaveEvents {
|
||||
fn push_index(&mut self, src: &Self, ix: usize) {
|
||||
match self {
|
||||
Self::Byte(k) => match src {
|
||||
Self::Byte(j) => k.push_index(j, ix),
|
||||
Self::I8(k) => match src {
|
||||
Self::I8(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Short(k) => match src {
|
||||
Self::Short(j) => k.push_index(j, ix),
|
||||
Self::I16(k) => match src {
|
||||
Self::I16(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Int(k) => match src {
|
||||
Self::Int(j) => k.push_index(j, ix),
|
||||
Self::I32(k) => match src {
|
||||
Self::I32(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Float(k) => match src {
|
||||
Self::Float(j) => k.push_index(j, ix),
|
||||
Self::F32(k) => match src {
|
||||
Self::F32(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
Self::Double(k) => match src {
|
||||
Self::Double(j) => k.push_index(j, ix),
|
||||
Self::F64(k) => match src {
|
||||
Self::F64(j) => k.push_index(j, ix),
|
||||
_ => panic!(),
|
||||
},
|
||||
}
|
||||
@@ -289,11 +289,11 @@ impl WithLen for MultiBinWaveEvents {
|
||||
fn len(&self) -> usize {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(j) => j.len(),
|
||||
Short(j) => j.len(),
|
||||
Int(j) => j.len(),
|
||||
Float(j) => j.len(),
|
||||
Double(j) => j.len(),
|
||||
I8(j) => j.len(),
|
||||
I16(j) => j.len(),
|
||||
I32(j) => j.len(),
|
||||
F32(j) => j.len(),
|
||||
F64(j) => j.len(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -302,11 +302,11 @@ impl WithTimestamps for MultiBinWaveEvents {
|
||||
fn ts(&self, ix: usize) -> u64 {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(j) => j.ts(ix),
|
||||
Short(j) => j.ts(ix),
|
||||
Int(j) => j.ts(ix),
|
||||
Float(j) => j.ts(ix),
|
||||
Double(j) => j.ts(ix),
|
||||
I8(j) => j.ts(ix),
|
||||
I16(j) => j.ts(ix),
|
||||
I32(j) => j.ts(ix),
|
||||
F32(j) => j.ts(ix),
|
||||
F64(j) => j.ts(ix),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -315,11 +315,11 @@ impl HasShape for MultiBinWaveEvents {
|
||||
fn shape(&self) -> Shape {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => Shape::Scalar,
|
||||
Short(_) => Shape::Scalar,
|
||||
Int(_) => Shape::Scalar,
|
||||
Float(_) => Shape::Scalar,
|
||||
Double(_) => Shape::Scalar,
|
||||
I8(_) => Shape::Scalar,
|
||||
I16(_) => Shape::Scalar,
|
||||
I32(_) => Shape::Scalar,
|
||||
F32(_) => Shape::Scalar,
|
||||
F64(_) => Shape::Scalar,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -328,11 +328,11 @@ impl HasScalarType for MultiBinWaveEvents {
|
||||
fn scalar_type(&self) -> ScalarType {
|
||||
use MultiBinWaveEvents::*;
|
||||
match self {
|
||||
Byte(_) => ScalarType::I8,
|
||||
Short(_) => ScalarType::I16,
|
||||
Int(_) => ScalarType::I32,
|
||||
Float(_) => ScalarType::F32,
|
||||
Double(_) => ScalarType::F64,
|
||||
I8(_) => ScalarType::I8,
|
||||
I16(_) => ScalarType::I16,
|
||||
I32(_) => ScalarType::I32,
|
||||
F32(_) => ScalarType::F32,
|
||||
F64(_) => ScalarType::F64,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user