chewdata 3.6.1

Extract Transform and Load data
Documentation
pub mod metadata;

use self::metadata::Metadata;
use crate::connector::mongodb::Mongodb;
use serde::{Deserialize, Serialize};
use std::io::Result;

#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(tag = "type")]
pub enum CounterType {
    #[serde(alias = "metadata")]
    #[serde(skip_serializing)]
    Metadata(Metadata),
}

impl Default for CounterType {
    fn default() -> Self {
        CounterType::Metadata(Metadata::default())
    }
}

impl CounterType {
    pub async fn count(&self, connector: &Mongodb) -> Result<usize> {
        match self {
            CounterType::Metadata(counter) => counter.count(connector).await,
        }
    }
}