rsql_driver_csv 0.19.3

rsql csv driver
Documentation
use async_trait::async_trait;
use file_type::FileType;
use rsql_driver::Result;
use rsql_driver_delimited::Driver as DelimitedDriver;
use url::Url;

#[derive(Debug)]
pub struct Driver;

#[async_trait]
impl rsql_driver::Driver for Driver {
    fn identifier(&self) -> &'static str {
        "csv"
    }

    async fn connect(&self, url: &str) -> Result<Box<dyn rsql_driver::Connection>> {
        let mut parsed_url = Url::parse(url)?;
        parsed_url.query_pairs_mut().append_pair("separator", ",");
        DelimitedDriver.connect(parsed_url.as_str()).await
    }

    fn supports_file_type(&self, file_type: &FileType) -> bool {
        file_type.extensions().contains(&"csv")
    }
}