converter_buddy 0.1.0

File format conversion library. Provides conversion utilities between files with different formats.
Documentation
use super::ConversionError;
use crate::format::Format;

pub trait Converter {
    fn process(
        &self,
        input: &Vec<u8>,
        output: &mut Vec<u8>,
        target_format: Format,
    ) -> Result<(), ConversionError> {
        match target_format {
            Format::Tiff => self.to_tiff(input, output),
            Format::Png => self.to_png(input, output),
            Format::Jpeg => self.to_jpeg(input, output),
            Format::Bmp => self.to_bmp(input, output),
            Format::Gif => self.to_gif(input, output),
            Format::WebP => self.to_webp(input, output),
            Format::Svg => self.to_svg(input, output),
            _ => Err(ConversionError::UnsupportedOperation),
        }
    }

    fn supported_formats(&self) -> Vec<Format> {
        vec![]
    }

    fn to_png(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_jpeg(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_tiff(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_bmp(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_gif(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_webp(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
    fn to_svg(&self, _input: &Vec<u8>, _output: &mut Vec<u8>) -> Result<(), ConversionError> {
        Err(ConversionError::UnsupportedOperation)
    }
}