chewdata 3.6.1

Extract Transform and Load data
Documentation
pub mod wildcard;

use futures::Stream;
use serde::{Deserialize, Serialize};
use std::io::Result;
use std::pin::Pin;
use wildcard::Wildcard;

use crate::connector::{local::Local, Connector};

#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(tag = "type")]
pub enum PaginatorType {
    #[serde(alias = "wildcard")]
    Wildcard(Wildcard),
}

impl Default for PaginatorType {
    fn default() -> Self {
        PaginatorType::Wildcard(Wildcard::default())
    }
}

impl PaginatorType {
    pub async fn paginate(
        &self,
        connector: &Local,
    ) -> Result<Pin<Box<dyn Stream<Item = Result<Box<dyn Connector>>> + Send>>> {
        match self {
            PaginatorType::Wildcard(paginator) => paginator.paginate(connector).await,
        }
    }
}