geotiff 0.1.0

A GeoTIFF library for Rust
Documentation
use std::fmt;
use std::fmt::{Debug, Formatter};

pub(super) enum RasterData {
    U8(Vec<u8>),
    U16(Vec<u16>),
    U32(Vec<u32>),
    U64(Vec<u64>),
    F32(Vec<f32>),
    F64(Vec<f64>),
    I8(Vec<i8>),
    I16(Vec<i16>),
    I32(Vec<i32>),
    I64(Vec<i64>),
}

impl Debug for RasterData {
    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
        f.write_fmt(format_args!(
            "RasterData {{ type: {}, len: {} }}",
            match self {
                RasterData::U8(_) => "u8",
                RasterData::U16(_) => "u16",
                RasterData::U32(_) => "u32",
                RasterData::U64(_) => "u64",
                RasterData::F32(_) => "f32",
                RasterData::F64(_) => "f64",
                RasterData::I8(_) => "i8",
                RasterData::I16(_) => "i16",
                RasterData::I32(_) => "i32",
                RasterData::I64(_) => "i64",
            },
            self.len()
        ))
    }
}

impl RasterData {
    fn len(&self) -> usize {
        match self {
            RasterData::U8(data) => data.len(),
            RasterData::U16(data) => data.len(),
            RasterData::U32(data) => data.len(),
            RasterData::U64(data) => data.len(),
            RasterData::F32(data) => data.len(),
            RasterData::F64(data) => data.len(),
            RasterData::I8(data) => data.len(),
            RasterData::I16(data) => data.len(),
            RasterData::I32(data) => data.len(),
            RasterData::I64(data) => data.len(),
        }
    }
}