use crate::{
common::{conf::Configuration, fs::FileSystem},
hdfs::hdfs::DistributedFileSystem,
};
use anyhow::Error;
use iref::Iri;
pub fn get(uri: &Iri, conf: &Configuration) -> anyhow::Result<impl FileSystem> {
create_file_system(uri, conf)
}
fn create_file_system(uri: &Iri, conf: &Configuration) -> anyhow::Result<impl FileSystem> {
match uri.scheme().as_str() {
"hdfs" => Ok(DistributedFileSystem::new(uri, conf)?),
_ => Err(Error::msg(format!(
"Failed to initialize fileystem {}",
uri
))),
}
}