pub mod Read { use image::{io::Reader as ImageReader, DynamicImage}; use rpl::instructions::read::{Read, SourceType}; pub fn read(Read { source, format }: Read) -> DynamicImage { let mut img = ImageReader::open(match source { SourceType::File(path) => path, }) .expect("something went wrong :((("); img.decode().expect("couldn't decode image") } } pub mod Write { use image::{io::Reader as ImageReader, DynamicImage, ImageFormat}; use rpl::instructions::write::{TargetFormat, TargetType, Write}; pub fn write(Write { target, format }: Write, input_data: DynamicImage) { input_data.save_with_format( match target { TargetType::File(path) => path, }, match format { TargetFormat::Jpeg => ImageFormat::Jpeg, TargetFormat::Png => ImageFormat::Png, }, ); } }