use std::io;
use crate::filters::Filter;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Counters;
impl Counters {
#[inline] pub fn new() -> Self { Counters }
#[inline] pub fn with_capacity(_cap: usize) -> Self { Counters }
#[inline] pub fn event(&self, _key: &'static str) {}
#[inline] pub fn reset_event(&self, _key: &'static str) {}
#[inline] pub fn reset_events<F: Filter>(&self, _filter: F) {}
#[inline] pub fn reset_all(&self) {}
#[inline] pub fn retain<F: Filter>(&self, _filter: F) {}
#[inline] pub fn get(&self, _key: &'static str) -> u64 { 0 }
#[inline] pub fn accumulate<F: Filter>(&self, _filter: F) -> u64 { 0 }
#[inline] pub fn print<F: Filter>(&self, _filter: F, _out: &mut io::Write) -> io::Result<()> { Ok(()) }
#[inline] pub fn print_to_stdout<F: Filter>(&self, _filter: F) {}
#[inline] pub fn apply<F: Filter, Cb: FnMut(&'static str, u64) -> u64>(&self, mut _filter: F, mut _callback: Cb) {}
}
pub struct Table;
impl Table {
#[inline] pub fn new<Label>(_labels: &[Label]) -> Self where Label: ToString { Table }
#[inline] pub fn add_row(&self, _row: &Counters) -> usize { 0 }
#[inline] pub fn print(&self, _to: &mut io::Write) -> io::Result<()> { Ok(()) }
#[inline] pub fn print_to_stdout(&self) {}
}
#[cfg(feature = "dummy_serialization")]
use serde::{Serialize, Deserialize};
#[cfg(feature = "dummy_serialization")]
use crate::Dummy;
#[cfg(feature = "dummy_serialization")]
impl Serialize for Counters {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: serde::Serializer {
Dummy.serialize(serializer)
}
}
#[cfg(feature = "dummy_serialization")]
impl<'de> Deserialize<'de> for Counters {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: serde::Deserializer<'de> {
Dummy::deserialize(deserializer)?;
Ok(Counters::new())
}
}
#[cfg(feature = "dummy_serialization")]
impl Serialize for Table {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: serde::Serializer {
Dummy.serialize(serializer)
}
}
#[cfg(feature = "dummy_serialization")]
impl<'de> Deserialize<'de> for Table {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: serde::Deserializer<'de> {
Dummy::deserialize(deserializer)?;
Ok(Table)
}
}