Skip to main content

ad_core_rs/
codec.rs

1/// Codec names for compressed NDArray data.
2#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3pub enum CodecName {
4    None,
5    JPEG,
6    LZ4,
7    Blosc,
8    BSLZ4,
9}
10
11/// Codec information attached to an NDArray (matching C++ Codec_t).
12#[derive(Debug, Clone)]
13pub struct Codec {
14    pub name: CodecName,
15    pub compressed_size: usize,
16    pub level: i32,
17    pub shuffle: i32,
18    pub compressor: i32,
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn test_codec_clone() {
27        let c = Codec {
28            name: CodecName::LZ4,
29            compressed_size: 1024,
30            level: 0,
31            shuffle: 0,
32            compressor: 0,
33        };
34        let c2 = c.clone();
35        assert_eq!(c2.name, CodecName::LZ4);
36        assert_eq!(c2.compressed_size, 1024);
37    }
38
39    #[test]
40    fn test_codec_name_none() {
41        assert_eq!(CodecName::None, CodecName::None);
42        assert_ne!(CodecName::None, CodecName::JPEG);
43    }
44}