pub mod builder;
#[cfg(unix)]
pub mod fd;
pub mod image;
pub mod path;
pub mod util;
use crate::image::{DynamicImage, ImageFormat};
use std::time::SystemTime;
pub trait FileLocation<P: FileProperties> {
fn is_file(&self) -> Result<bool, String>;
fn extension(&self) -> Result<String, String>;
fn into_properties(self) -> Result<P, String>;
}
pub trait FileProperties {
fn infer_format(&self) -> Option<ImageFormat>;
fn into_image_contents(self, print_info: bool) -> Result<DynamicImage, String>;
fn file_size(&self) -> u64;
fn modify_time(&self) -> SystemTime;
fn full_path(&self) -> Option<&String>;
}