1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Bayer reader without any additional border logic.

use std::io::Read;

use ::BayerResult;
use bayer::*;

pub struct BorderNone8;
pub struct BorderNone16BE;
pub struct BorderNone16LE;

impl BorderNone8 {
    pub fn new() -> Self {
        BorderNone8
    }
}

impl BayerRead8 for BorderNone8 {
    fn read_line(&self, r: &mut Read, dst: &mut [u8])
            -> BayerResult<()> {
        read_exact_u8(r, dst)
    }
}

impl BorderNone16BE {
    pub fn new() -> Self {
        BorderNone16BE
    }
}

impl BayerRead16 for BorderNone16BE {
    fn read_line(&self, r: &mut Read, dst: &mut [u16])
            -> BayerResult<()> {
        read_exact_u16be(r, dst)
    }
}

impl BorderNone16LE {
    pub fn new() -> Self {
        BorderNone16LE
    }
}

impl BayerRead16 for BorderNone16LE {
    fn read_line(&self, r: &mut Read, dst: &mut [u16])
            -> BayerResult<()> {
        read_exact_u16le(r, dst)
    }
}