Files
daqbuffer/crates/scyllaconn/src/range.rs
T
Dominik Werder f550d37602 WIP
2024-09-11 17:23:11 +02:00

66 lines
1.5 KiB
Rust

use core::fmt;
use netpod::range::evrange::SeriesRange;
use netpod::TsNano;
#[derive(Clone)]
pub struct ScyllaSeriesRange {
beg: u64,
end: u64,
}
impl ScyllaSeriesRange {
pub fn new(beg: TsNano, end: TsNano) -> Self {
Self {
beg: beg.ns(),
end: end.ns(),
}
}
pub fn beg(&self) -> TsNano {
TsNano::from_ns(self.beg)
}
pub fn end(&self) -> TsNano {
TsNano::from_ns(self.end)
}
pub fn fmt(&self) -> ScyllaSeriesRangeFmt {
ScyllaSeriesRangeFmt { val: self.clone() }
}
}
impl fmt::Debug for ScyllaSeriesRange {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(
fmt,
"ScyllaSeriesRange {{ beg: {}, end: {} }}",
TsNano::from_ns(self.beg),
TsNano::from_ns(self.end)
)
}
}
impl From<&SeriesRange> for ScyllaSeriesRange {
fn from(value: &SeriesRange) -> Self {
match value {
SeriesRange::TimeRange(k) => Self { beg: k.beg, end: k.end },
SeriesRange::PulseRange(k) => Self { beg: k.beg, end: k.end },
}
}
}
pub struct ScyllaSeriesRangeFmt {
val: ScyllaSeriesRange,
}
impl fmt::Display for ScyllaSeriesRangeFmt {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(
fmt,
"ScyllaSeriesRange {{ beg: {}, end: {} }}",
self.val.beg().fmt(),
self.val.end().fmt()
)
}
}