use crate::context::SproutContext; use crate::extractors::filesystem::FileSystemExtractorConfiguration; use anyhow::{Result, bail}; use serde::{Deserialize, Serialize}; use std::rc::Rc; pub mod filesystem; #[derive(Serialize, Deserialize, Default, Clone)] pub struct ExtractorDeclaration { pub filesystem: Option, } pub fn extract(context: Rc, extractor: &ExtractorDeclaration) -> Result { if let Some(filesystem) = &extractor.filesystem { filesystem::extract(context, filesystem) } else { bail!("unknown extractor configuration"); } }