1
2
3
4
5
6
7
8
9
use crate::chopper::chopper::Source;
use crate::error::CliResult;
use crate::util::preview::Preview;

pub trait SourceFactory {
    fn can_create_from_format(&self, format: &String) -> bool;
    fn can_create_from_previewer(&self, previewer: &Box<dyn Preview>) -> bool;
    fn create_source(&mut self, previewer: Box<dyn Preview>) -> CliResult<Box<dyn Source>>;
}