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
use std;
use std::io::Result as IoResult;

use bite::BiteReadExt;
use bite::LittleEndian;


pub trait BiteReadLeExt: std::io::Read {
    #[inline] fn read_u8     (&mut self)               -> IoResult<u8>   { BiteReadExt::read_u8                      (self)        }
    #[inline] fn read_i8     (&mut self)               -> IoResult<i8>   { BiteReadExt::read_i8                      (self)        }
    #[inline] fn read_u16    (&mut self)               -> IoResult<u16>  { BiteReadExt::read_u16     ::<LittleEndian>(self)        }
    #[inline] fn read_i16    (&mut self)               -> IoResult<i16>  { BiteReadExt::read_i16     ::<LittleEndian>(self)        }
    #[inline] fn read_u32    (&mut self)               -> IoResult<u32>  { BiteReadExt::read_u32     ::<LittleEndian>(self)        }
    #[inline] fn read_i32    (&mut self)               -> IoResult<i32>  { BiteReadExt::read_i32     ::<LittleEndian>(self)        }
    #[inline] fn read_u64    (&mut self)               -> IoResult<u64>  { BiteReadExt::read_u64     ::<LittleEndian>(self)        }
    #[inline] fn read_i64    (&mut self)               -> IoResult<i64>  { BiteReadExt::read_i64     ::<LittleEndian>(self)        }
    #[inline] fn read_u128   (&mut self)               -> IoResult<u128> { BiteReadExt::read_u128    ::<LittleEndian>(self)        }
    #[inline] fn read_i128   (&mut self)               -> IoResult<i128> { BiteReadExt::read_i128    ::<LittleEndian>(self)        }
    #[inline] fn read_uint   (&mut self, bytes: usize) -> IoResult<u64>  { BiteReadExt::read_uint    ::<LittleEndian>(self, bytes) }
    #[inline] fn read_int    (&mut self, bytes: usize) -> IoResult<i64>  { BiteReadExt::read_int     ::<LittleEndian>(self, bytes) }
    #[inline] fn read_uint128(&mut self, bytes: usize) -> IoResult<u128> { BiteReadExt::read_uint128 ::<LittleEndian>(self, bytes) }
    #[inline] fn read_int128 (&mut self, bytes: usize) -> IoResult<i128> { BiteReadExt::read_int128  ::<LittleEndian>(self, bytes) }
    #[inline] fn read_f32    (&mut self)               -> IoResult<f32>  { BiteReadExt::read_f32     ::<LittleEndian>(self)        }
    #[inline] fn read_f64    (&mut self)               -> IoResult<f64>  { BiteReadExt::read_f64     ::<LittleEndian>(self)        }
}

impl<T> BiteReadLeExt for T where T: std::io::Read + ?Sized { }