Coverage Report

Created: 2025-10-10 07:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/lebe-0.5.3/src/lib.rs
Line
Count
Source
1
#![warn(
2
    missing_docs, unused,
3
    trivial_numeric_casts,
4
    future_incompatible,
5
    rust_2018_compatibility,
6
    rust_2018_idioms,
7
    clippy::all
8
)]
9
10
#![doc(html_root_url = "https://docs.rs/lebe/0.5.0")]
11
12
//! Dead simple endianness conversions.
13
//! The following operations are implemented on
14
//! `u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u64`, `i64`, `u128`, `i128`, `f32`, `f64`:
15
//!
16
//!
17
//! ### Read Numbers
18
//! ```rust
19
//! use lebe::prelude::*;
20
//! let mut reader: &[u8] = &[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
21
//!
22
//! let number : u64 = reader.read_from_little_endian()?;
23
//! let number = u64::read_from_big_endian(&mut reader)?;
24
//! # Ok::<(), std::io::Error>(())
25
//! ```
26
//!
27
//! ### Read Slices
28
//! ```rust
29
//! use std::io::Read;
30
//! use lebe::prelude::*;
31
//! let mut reader: &[u8] = &[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
32
//!
33
//! let mut numbers: &mut [u64] = &mut [0, 0];
34
//! reader.read_from_little_endian_into(numbers)?;
35
//! # Ok::<(), std::io::Error>(())
36
//! ```
37
//!
38
//! ### Write Numbers
39
//! ```rust
40
//! use std::io::Read;
41
//! use lebe::prelude::*;
42
//! let mut writer: Vec<u8> = Vec::new();
43
//!
44
//! let number: u64 = 1237691;
45
//! writer.write_as_big_endian(&number)?;
46
//! # Ok::<(), std::io::Error>(())
47
//! ```
48
//!
49
//! ### Write Slices
50
//! ```rust
51
//! use std::io::Write;
52
//! use lebe::prelude::*;
53
//! let mut writer: Vec<u8> = Vec::new();
54
//!
55
//! let numbers: &[u64] = &[1_u64, 234545_u64];
56
//! writer.write_as_little_endian(numbers)?;
57
//! # Ok::<(), std::io::Error>(())
58
//! ```
59
//!
60
61
62
/// Exports some of the most common types.
63
pub mod prelude {
64
    pub use super::Endian;
65
    pub use super::io::{ WriteEndian, ReadEndian, ReadPrimitive };
66
}
67
68
/// Represents values that can swap their bytes to reverse their endianness.
69
///
70
/// Supports converting values in-place using [`swap_bytes`] or [`convert_current_to_little_endian`]:
71
/// Supports converting while transferring ownership using
72
/// [`from_little_endian_into_current`] or [`from_current_into_little_endian`].
73
///
74
///
75
/// For the types `u8`, `i8`, `&[u8]` and `&[i8]`, this trait will never transform any data,
76
/// as they are just implemented for completeness.
77
pub trait Endian {
78
79
    /// Swaps all bytes in this value, inverting its endianness.
80
    fn swap_bytes(&mut self);
81
82
    /// On a little endian machine, this does nothing.
83
    /// On a big endian machine, the bytes of this value are reversed.
84
0
    #[inline] fn convert_current_to_little_endian(&mut self) {
85
        #[cfg(target_endian = "big")] {
86
            self.swap_bytes();
87
        }
88
0
    }
Unexecuted instantiation: <i32 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u32 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u16 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <_ as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <f64 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <f32 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u8 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u64 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <f64 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <f32 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u8 as lebe::Endian>::convert_current_to_little_endian
Unexecuted instantiation: <u64 as lebe::Endian>::convert_current_to_little_endian
89
90
    /// On a big endian machine, this does nothing.
91
    /// On a little endian machine, the bytes of this value are reversed.
92
0
    #[inline] fn convert_current_to_big_endian(&mut self) {
93
0
        #[cfg(target_endian = "little")] {
94
0
            self.swap_bytes();
95
0
        }
96
0
    }
97
98
    /// On a little endian machine, this does nothing.
99
    /// On a big endian machine, the bytes of this value are reversed.
100
0
    #[inline] fn convert_little_endian_to_current(&mut self) {
101
        #[cfg(target_endian = "big")] {
102
            self.swap_bytes();
103
        }
104
0
    }
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[f32] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u32] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u16] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f32 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u8 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <i32 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u32 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u16 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <_ as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[i8] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <[u64] as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <f64 as lebe::Endian>::convert_little_endian_to_current
Unexecuted instantiation: <u64 as lebe::Endian>::convert_little_endian_to_current
105
106
    /// On a big endian machine, this does nothing.
107
    /// On a little endian machine, the bytes of this value are reversed.
108
0
    #[inline] fn convert_big_endian_to_current(&mut self) {
109
0
        #[cfg(target_endian = "little")] {
110
0
            self.swap_bytes();
111
0
        }
112
0
    }
113
114
    /// On a little endian machine, this does nothing.
115
    /// On a big endian machine, the bytes of this value are reversed.
116
0
    #[inline] fn from_current_into_little_endian(mut self) -> Self where Self: Sized {
117
0
        self.convert_current_to_little_endian();
118
0
        self
119
0
    }
Unexecuted instantiation: <i32 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u32 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u16 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <_ as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <f64 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <f32 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u8 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u64 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <f64 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <f32 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u8 as lebe::Endian>::from_current_into_little_endian
Unexecuted instantiation: <u64 as lebe::Endian>::from_current_into_little_endian
120
121
    /// On a big endian machine, this does nothing.
122
    /// On a little endian machine, the bytes of this value are reversed.
123
0
    #[inline] fn from_current_into_big_endian(mut self) -> Self where Self: Sized {
124
0
        self.convert_current_to_big_endian();
125
0
        self
126
0
    }
127
128
    /// On a little endian machine, this does nothing.
129
    /// On a big endian machine, the bytes of this value are reversed.
130
0
    #[inline] fn from_little_endian_into_current(mut self) -> Self where Self: Sized {
131
0
        self.convert_little_endian_to_current();
132
0
        self
133
0
    }
134
135
    /// On a big endian machine, this does nothing.
136
    /// On a little endian machine, the bytes of this value are reversed.
137
0
    #[inline] fn from_big_endian_into_current(mut self) -> Self where Self: Sized {
138
0
        self.convert_big_endian_to_current();
139
0
        self
140
0
    }
141
}
142
143
144
// call a macro for each argument
145
macro_rules! call_single_arg_macro_for_each {
146
    ($macro: ident, $( $arguments: ident ),* ) => {
147
        $( $macro! { $arguments }  )*
148
    };
149
}
150
151
// implement this interface for primitive signed and unsigned integers
152
macro_rules! implement_simple_primitive_endian {
153
    ($type: ident) => {
154
        impl Endian for $type {
155
0
            fn swap_bytes(&mut self) {
156
0
                *self = $type::swap_bytes(*self);
157
0
            }
Unexecuted instantiation: <u16 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <u32 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <u64 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <u128 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <i16 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <i32 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <i64 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <i128 as lebe::Endian>::swap_bytes
158
        }
159
    };
160
}
161
162
163
call_single_arg_macro_for_each! {
164
    implement_simple_primitive_endian,
165
    u16, u32, u64, u128, i16, i32, i64, i128
166
}
167
168
// no-op implementations
169
0
impl Endian for u8 { fn swap_bytes(&mut self) {} }
170
0
impl Endian for i8 { fn swap_bytes(&mut self) {} }
171
0
impl Endian for [u8] { fn swap_bytes(&mut self) {} }
172
0
impl Endian for [i8] { fn swap_bytes(&mut self) {} }
173
174
// implement this interface for primitive floats, because they do not have a `swap_bytes()` in `std`
175
macro_rules! implement_float_primitive_by_bits {
176
    ($type: ident) => {
177
        impl Endian for $type {
178
0
            fn swap_bytes(&mut self) {
179
0
                *self = Self::from_bits(self.to_bits().swap_bytes());
180
0
            }
Unexecuted instantiation: <f32 as lebe::Endian>::swap_bytes
Unexecuted instantiation: <f64 as lebe::Endian>::swap_bytes
181
        }
182
    };
183
}
184
185
186
implement_float_primitive_by_bits!(f32);
187
implement_float_primitive_by_bits!(f64);
188
189
macro_rules! implement_slice_by_element {
190
    ($type: ident) => {
191
        impl Endian for [$type] {
192
0
            fn swap_bytes(&mut self) {
193
0
                for number in self.iter_mut() { // TODO SIMD?
194
0
                    number.swap_bytes();
195
0
                }
196
0
            }
Unexecuted instantiation: <[u16] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[u32] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[u64] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[u128] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[i16] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[i32] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[i64] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[i128] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[f64] as lebe::Endian>::swap_bytes
Unexecuted instantiation: <[f32] as lebe::Endian>::swap_bytes
197
        }
198
    };
199
}
200
201
call_single_arg_macro_for_each! {
202
    implement_slice_by_element,
203
    u16, u32, u64, u128,
204
    i16, i32, i64, i128,
205
    f64, f32
206
}
207
208
/// Easily write primitives and slices of primitives to
209
/// binary `std::io::Write` streams and easily read from binary `std::io::Read` streams.
210
///
211
/// Also contains the unsafe `bytes` module for reinterpreting values as byte slices and vice versa.
212
pub mod io {
213
    use super::Endian;
214
    use std::io::{Read, Write, Result};
215
216
    /// Reinterpret values as byte slices and byte slices as values unsafely.
217
    pub mod bytes {
218
        use std::io::{Read, Write, Result};
219
220
        /// View this slice of values as a slice of bytes.
221
        #[inline]
222
0
        pub unsafe fn slice_as_bytes<T>(value: &[T]) -> &[u8] {
223
0
            std::slice::from_raw_parts(
224
0
                value.as_ptr() as *const u8,
225
0
                value.len() * std::mem::size_of::<T>()
226
0
            )
227
0
        }
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<f32>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<u8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<u32>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<u16>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<_>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes::<u64>
228
229
        /// View this slice of values as a mutable slice of bytes.
230
        #[inline]
231
0
        pub unsafe fn slice_as_bytes_mut<T>(value: &mut [T]) -> &mut [u8] {
232
0
            std::slice::from_raw_parts_mut(
233
0
                value.as_mut_ptr() as *mut u8,
234
0
                value.len() * std::mem::size_of::<T>()
235
0
            )
236
0
        }
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<f32>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u32>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u16>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<_>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<i8>
Unexecuted instantiation: lebe::io::bytes::slice_as_bytes_mut::<u64>
237
238
        /// View this reference as a slice of bytes.
239
        #[inline]
240
0
        pub unsafe fn value_as_bytes<T: Sized>(value: &T) -> &[u8] {
241
0
            std::slice::from_raw_parts(
242
0
                value as *const T as *const u8,
243
0
                std::mem::size_of::<T>()
244
0
            )
245
0
        }
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<i32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u16>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<_>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<f32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u8>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<f32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u8>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes::<u64>
246
247
        /// View this reference as a mutable slice of bytes.
248
        #[inline]
249
0
        pub unsafe fn value_as_bytes_mut<T: Sized>(value: &mut T) ->&mut [u8] {
250
0
            std::slice::from_raw_parts_mut(
251
0
                value as *mut T as *mut u8,
252
0
                std::mem::size_of::<T>()
253
0
            )
254
0
        }
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u8>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<i32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u32>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u16>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<_>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<f64>
Unexecuted instantiation: lebe::io::bytes::value_as_bytes_mut::<u64>
255
256
        /// View this slice as a mutable slice of bytes and write it.
257
        #[inline]
258
0
        pub unsafe fn write_slice<T>(write: &mut impl Write, value: &[T]) -> Result<()> {
259
0
            write.write_all(slice_as_bytes(value))
260
0
        }
Unexecuted instantiation: lebe::io::bytes::write_slice::<f32, std::io::cursor::Cursor<&mut [u8]>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u8, alloc::vec::Vec<u8>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u32, std::io::cursor::Cursor<alloc::vec::Vec<u8>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u32, std::io::cursor::Cursor<&mut [u8]>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u16, alloc::vec::Vec<u8>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u16, std::io::cursor::Cursor<&mut [u8]>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u16, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_slice::<_, _>
Unexecuted instantiation: lebe::io::bytes::write_slice::<i8, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<f32, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u8, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u64, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<i8, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<f32, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u8, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_slice::<u64, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
261
262
        /// Read a slice of bytes into the specified slice.
263
        #[inline]
264
0
        pub unsafe fn read_slice<T>(read: &mut impl Read, value: &mut [T]) -> Result<()> {
265
0
            read.read_exact(slice_as_bytes_mut(value))
266
0
        }
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, std::io::cursor::Cursor<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, std::io::cursor::Cursor<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, std::io::cursor::Cursor<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<_, _>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<i8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u32, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u16, &mut &mut &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_slice::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
267
268
        /// View this reference as a mutable slice of bytes and write it.
269
        #[inline]
270
0
        pub unsafe fn write_value<T: Sized>(write: &mut impl Write, value: &T) -> Result<()> {
271
0
            write.write_all(value_as_bytes(value))
272
0
        }
Unexecuted instantiation: lebe::io::bytes::write_value::<i32, alloc::vec::Vec<u8>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u32, std::io::cursor::Cursor<alloc::vec::Vec<u8>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u16, alloc::vec::Vec<u8>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u16, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_value::<_, _>
Unexecuted instantiation: lebe::io::bytes::write_value::<f64, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<f32, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<f32, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_value::<u8, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<i32, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u32, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u32, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_value::<u64, exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<f64, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<f32, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<f32, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_value::<u8, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<i32, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u32, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::write_value::<u32, &mut [u8]>
Unexecuted instantiation: lebe::io::bytes::write_value::<u64, exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>>>
273
274
        /// Read a slice of bytes into the specified reference.
275
        #[inline]
276
0
        pub unsafe fn read_value<T: Sized>(read: &mut impl Read, value: &mut T) -> Result<()> {
277
0
            read.read_exact(value_as_bytes_mut(value))
278
0
        }
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u16, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<_, _>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<f64, &[u8]>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u8, exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<i32, exr::io::PeekRead<&[u8]>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u32, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>
Unexecuted instantiation: lebe::io::bytes::read_value::<u64, exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>
279
    }
280
281
    /// A `std::io::Write` output stream which supports writing any primitive values as bytes.
282
    /// Will encode the values to be either little endian or big endian, as desired.
283
    ///
284
    /// This extension trait is implemented for all `Write` types.
285
    /// Add `use lebe::io::WriteEndian;` to your code
286
    /// to automatically unlock this functionality for all types that implement `Write`.
287
    pub trait WriteEndian<T: ?Sized> {
288
289
        /// Write the byte value of the specified reference, converting it to little endianness
290
        fn write_as_little_endian(&mut self, value: &T) -> Result<()>;
291
292
        /// Write the byte value of the specified reference, converting it to big endianness
293
        fn write_as_big_endian(&mut self, value: &T) -> Result<()>;
294
295
        /// Write the byte value of the specified reference, not converting it
296
0
        fn write_as_native_endian(&mut self, value: &T) -> Result<()> {
297
0
            #[cfg(target_endian = "little")] { self.write_as_little_endian(value) }
298
            #[cfg(target_endian = "big")] { self.write_as_big_endian(value) }
299
0
        }
Unexecuted instantiation: <alloc::vec::Vec<u8> as lebe::io::WriteEndian<u16>>::write_as_native_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<[u16]>>::write_as_native_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<_>>::write_as_native_endian
300
    }
301
302
    /// A `std::io::Read` input stream which supports reading any primitive values from bytes.
303
    /// Will decode the values from either little endian or big endian, as desired.
304
    ///
305
    /// This extension trait is implemented for all `Read` types.
306
    /// Add `use lebe::io::ReadEndian;` to your code
307
    /// to automatically unlock this functionality for all types that implement `Read`.
308
    pub trait ReadEndian<T: ?Sized> {
309
310
        /// Read into the supplied reference. Acts the same as `std::io::Read::read_exact`.
311
        fn read_from_little_endian_into(&mut self, value: &mut T) -> Result<()>;
312
313
        /// Read into the supplied reference. Acts the same as `std::io::Read::read_exact`.
314
        fn read_from_big_endian_into(&mut self, value: &mut T) -> Result<()>;
315
316
        /// Read into the supplied reference. Acts the same as `std::io::Read::read_exact`.
317
0
        fn read_from_native_endian_into(&mut self, value: &mut T) -> Result<()> {
318
0
            #[cfg(target_endian = "little")] { self.read_from_little_endian_into(value) }
319
            #[cfg(target_endian = "big")] { self.read_from_big_endian_into(value) }
320
0
        }
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[u16]>>::read_from_native_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<_>>::read_from_native_endian_into
321
322
        /// Read the byte value of the inferred type
323
        #[inline]
324
0
        fn read_from_little_endian(&mut self) -> Result<T> where T: Sized + Default {
325
0
            let mut value = T::default();
326
0
            self.read_from_little_endian_into(&mut value)?;
327
0
            Ok(value)
328
0
        }
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f32>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u16>>::read_from_little_endian
Unexecuted instantiation: <_ as lebe::io::ReadEndian<_>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian
329
330
        /// Read the byte value of the inferred type
331
        #[inline]
332
0
        fn read_from_big_endian(&mut self) -> Result<T> where T: Sized + Default {
333
0
            let mut value = T::default();
334
0
            self.read_from_big_endian_into(&mut value)?;
335
0
            Ok(value)
336
0
        }
337
338
        /// Read the byte value of the inferred type
339
        #[inline]
340
0
        fn read_from_native_endian(&mut self) -> Result<T> where T: Sized + Default {
341
0
            #[cfg(target_endian = "little")] { self.read_from_little_endian() }
342
            #[cfg(target_endian = "big")] { self.read_from_big_endian() }
343
0
        }
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f32>>::read_from_native_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u32>>::read_from_native_endian
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u16>>::read_from_native_endian
Unexecuted instantiation: <_ as lebe::io::ReadEndian<_>>::read_from_native_endian
344
    }
345
346
    // implement primitive for all types that are implemented by `Read`
347
    impl<R: Read + ReadEndian<P>, P: Default> ReadPrimitive<R> for P {}
348
349
350
    /// Offers a prettier versions of reading a primitive number.
351
    ///
352
    /// The default way of reading a value is:
353
    /// ```rust
354
    /// # use std::io::Read;
355
    /// # use lebe::prelude::*;
356
    /// # let mut reader : &[u8] = &[2, 1];
357
    ///
358
    /// let number: u16 = reader.read_from_little_endian()?;
359
    /// println!("{}", number);
360
    /// # Ok::<(), std::io::Error>(())
361
    ///
362
    /// ```
363
    ///
364
    /// This trait enables you to use expressions:
365
    /// ```rust
366
    /// # use std::io::Read;
367
    /// # use lebe::prelude::*;
368
    /// # let mut reader : &[u8] = &[2, 1];
369
    ///
370
    /// println!("{}", u16::read_from_little_endian(&mut reader)?);
371
    /// # Ok::<(), std::io::Error>(())
372
    /// ```
373
    /// .
374
    ///
375
    pub trait ReadPrimitive<R: Read + ReadEndian<Self>> : Sized + Default {
376
        /// Read this value from the supplied reader. Same as `ReadEndian::read_from_little_endian()`.
377
0
        fn read_from_little_endian(read: &mut R) -> Result<Self> {
378
0
            read.read_from_little_endian()
379
0
        }
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u16 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <_ as lebe::io::ReadPrimitive<_>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>>>::read_from_little_endian
Unexecuted instantiation: <u8 as lebe::io::ReadPrimitive<&[u8]>>::read_from_little_endian
380
381
        /// Read this value from the supplied reader. Same as `ReadEndian::read_from_big_endian()`.
382
0
        fn read_from_big_endian(read: &mut R) -> Result<Self> {
383
0
            read.read_from_big_endian()
384
0
        }
385
386
        /// Read this value from the supplied reader. Same as `ReadEndian::read_from_native_endian()`.
387
0
        fn read_from_native_endian(read: &mut R) -> Result<Self> {
388
0
            read.read_from_native_endian()
389
0
        }
Unexecuted instantiation: <f32 as lebe::io::ReadPrimitive<&[u8]>>::read_from_native_endian
Unexecuted instantiation: <u32 as lebe::io::ReadPrimitive<&[u8]>>::read_from_native_endian
Unexecuted instantiation: <u16 as lebe::io::ReadPrimitive<&[u8]>>::read_from_native_endian
Unexecuted instantiation: <_ as lebe::io::ReadPrimitive<_>>::read_from_native_endian
390
    }
391
392
    macro_rules! implement_simple_primitive_write {
393
        ($type: ident) => {
394
            impl<W: Write> WriteEndian<$type> for W {
395
0
                fn write_as_little_endian(&mut self, value: &$type) -> Result<()> {
396
0
                    unsafe { bytes::write_value(self, &value.from_current_into_little_endian()) }
397
0
                }
Unexecuted instantiation: <alloc::vec::Vec<u8> as lebe::io::WriteEndian<u16>>::write_as_little_endian
Unexecuted instantiation: <alloc::vec::Vec<u8> as lebe::io::WriteEndian<i32>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<u16>>::write_as_little_endian
Unexecuted instantiation: <std::io::cursor::Cursor<alloc::vec::Vec<u8>> as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u16>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u64>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u128>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i8>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u8>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i16>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i32>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i64>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i128>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<f32>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<f64>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<f32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u64>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u8>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<i32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<f32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<f64>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u64>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<u8>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<i32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<f32>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<f64>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<u32>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<f32>>::write_as_little_endian
398
399
0
                fn write_as_big_endian(&mut self, value: &$type) -> Result<()> {
400
0
                    unsafe { bytes::write_value(self, &value.from_current_into_big_endian()) }
401
0
                }
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u16>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u32>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u64>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u128>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i8>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<u8>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i16>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i32>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i64>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<i128>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<f32>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<f64>>::write_as_big_endian
402
            }
403
404
            impl<R: Read> ReadEndian<$type> for R {
405
                #[inline]
406
0
                fn read_from_little_endian_into(&mut self, value: &mut $type) -> Result<()> {
407
0
                    unsafe { bytes::read_value(self, value)?; }
408
0
                    value.convert_little_endian_to_current();
409
0
                    Ok(())
410
0
                }
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u16>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f32>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u16>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u128>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i8>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i16>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i64>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i128>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<f32>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::Tracking<std::io::cursor::Cursor<&[u8]>> as lebe::io::ReadEndian<u8>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<u64>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<i32>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<f64>>::read_from_little_endian_into
411
412
                #[inline]
413
0
                fn read_from_big_endian_into(&mut self, value: &mut $type) -> Result<()> {
414
0
                    unsafe { bytes::read_value(self, value)?; }
415
0
                    value.convert_big_endian_to_current();
416
0
                    Ok(())
417
0
                }
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u8>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u16>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u32>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u64>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<u128>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i8>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i16>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i32>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i64>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<i128>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<f32>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<f64>>::read_from_big_endian_into
418
            }
419
        };
420
    }
421
422
    call_single_arg_macro_for_each! {
423
        implement_simple_primitive_write,
424
        u8, u16, u32, u64, u128,
425
        i8, i16, i32, i64, i128,
426
        f32, f64
427
    }
428
429
430
    macro_rules! implement_slice_io {
431
        ($type: ident) => {
432
            impl<W: Write> WriteEndian<[$type]> for W {
433
0
                fn write_as_little_endian(&mut self, value: &[$type]) -> Result<()> {
434
                    #[cfg(target_endian = "big")] {
435
                        for number in value { // TODO SIMD!
436
                            self.write_as_little_endian(number)?;
437
                        }
438
                    }
439
440
                    // else write whole slice
441
                    #[cfg(target_endian = "little")]
442
0
                    unsafe { bytes::write_slice(self, value)?; }
443
444
0
                    Ok(())
445
0
                }
Unexecuted instantiation: <alloc::vec::Vec<u8> as lebe::io::WriteEndian<[u8]>>::write_as_little_endian
Unexecuted instantiation: <alloc::vec::Vec<u8> as lebe::io::WriteEndian<[u16]>>::write_as_little_endian
Unexecuted instantiation: <&mut [u8] as lebe::io::WriteEndian<[u16]>>::write_as_little_endian
Unexecuted instantiation: <std::io::cursor::Cursor<&mut [u8]> as lebe::io::WriteEndian<[f32]>>::write_as_little_endian
Unexecuted instantiation: <std::io::cursor::Cursor<&mut [u8]> as lebe::io::WriteEndian<[u16]>>::write_as_little_endian
Unexecuted instantiation: <std::io::cursor::Cursor<alloc::vec::Vec<u8>> as lebe::io::WriteEndian<[u32]>>::write_as_little_endian
Unexecuted instantiation: <std::io::cursor::Cursor<&mut [u8]> as lebe::io::WriteEndian<[u32]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i32]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i64]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i128]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[f64]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[f32]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u8]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u16]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u32]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u64]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u128]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i8]>>::write_as_little_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i16]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[f32]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[u8]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[u64]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut &mut std::io::cursor::Cursor<alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[i8]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[f32]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[u8]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[u64]>>::write_as_little_endian
Unexecuted instantiation: <exr::io::Tracking<&mut std::io::cursor::Cursor<&mut alloc::vec::Vec<u8>>> as lebe::io::WriteEndian<[i8]>>::write_as_little_endian
446
447
0
                fn write_as_big_endian(&mut self, value: &[$type]) -> Result<()> {
448
                    #[cfg(target_endian = "little")] {
449
0
                        for number in value { // TODO SIMD!
450
0
                            self.write_as_big_endian(number)?;
451
                        }
452
                    }
453
454
                    // else write whole slice
455
                    #[cfg(target_endian = "big")]
456
                    unsafe { bytes::write_slice(self, value)?; }
457
458
0
                    Ok(())
459
0
                }
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i32]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i64]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i128]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[f64]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[f32]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u8]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u16]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u32]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u64]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[u128]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i8]>>::write_as_big_endian
Unexecuted instantiation: <_ as lebe::io::WriteEndian<[i16]>>::write_as_big_endian
460
            }
461
462
            impl<R: Read> ReadEndian<[$type]> for R {
463
0
                fn read_from_little_endian_into(&mut self, value: &mut [$type]) -> Result<()> {
464
0
                    unsafe { bytes::read_slice(self, value)? };
465
0
                    value.convert_little_endian_to_current();
466
0
                    Ok(())
467
0
                }
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <std::io::cursor::Cursor<&[u8]> as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <std::io::cursor::Cursor<&[u8]> as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <std::io::cursor::Cursor<&[u8]> as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i16]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i32]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i64]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i128]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[f64]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u128]>>::read_from_little_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[u8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[u64]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<alloc::vec::Vec<u8>>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<exr::io::Tracking<std::io::cursor::Cursor<&[u8]>>> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <exr::io::PeekRead<&[u8]> as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[f32]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u16]>>::read_from_little_endian_into
Unexecuted instantiation: <&mut &mut &[u8] as lebe::io::ReadEndian<[u32]>>::read_from_little_endian_into
Unexecuted instantiation: <&[u8] as lebe::io::ReadEndian<[i8]>>::read_from_little_endian_into
468
469
0
                fn read_from_big_endian_into(&mut self, value: &mut [$type]) -> Result<()> {
470
0
                    unsafe { bytes::read_slice(self, value)? };
471
0
                    value.convert_big_endian_to_current();
472
0
                    Ok(())
473
0
                }
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i16]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i32]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i64]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i128]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[f64]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[f32]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u8]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u16]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u32]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u64]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[u128]>>::read_from_big_endian_into
Unexecuted instantiation: <_ as lebe::io::ReadEndian<[i8]>>::read_from_big_endian_into
474
            }
475
        };
476
    }
477
478
    call_single_arg_macro_for_each! {
479
        implement_slice_io,
480
        u8, u16, u32, u64, u128,
481
        i8, i16, i32, i64, i128,
482
        f64, f32
483
    }
484
485
486
487
    // TODO: SIMD
488
    /*impl<R: Read> ReadEndian<[f32]> for R {
489
        fn read_from_little_endian_into(&mut self, value: &mut [f32]) -> Result<()> {
490
            unsafe { bytes::read_slice(self, value)? };
491
            value.convert_little_endian_to_current();
492
            Ok(())
493
        }
494
495
        fn read_from_big_endian_into(&mut self, value: &mut [f32]) -> Result<()> {
496
            unsafe { bytes::read_slice(self, value)? };
497
            value.convert_big_endian_to_current();
498
            Ok(())
499
        }
500
    }
501
502
    impl<W: Write> WriteEndian<[f32]> for W {
503
        fn write_as_big_endian(&mut self, value: &[f32]) -> Result<()> {
504
            if cfg!(target_endian = "little") {
505
506
                // FIX ME this SIMD optimization makes no difference ... why? like, ZERO difference, not even worse
507
//                #[cfg(feature = "simd")]
508
                #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
509
                unsafe {
510
                    if is_x86_feature_detected!("avx2") {
511
                        write_bytes_avx(self, value);
512
                        return Ok(());
513
                    }
514
                }
515
516
                // otherwise (no avx2 available)
517
//                for number in value {
518
//                    self.write_as_little_endian(number);
519
//                }
520
//
521
//                return Ok(());
522
                unimplemented!();
523
524
                #[target_feature(enable = "avx2")]
525
                #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
526
                unsafe fn write_bytes_avx(write: &mut impl Write, slice: &[f32]) -> Result<()> {
527
                    #[cfg(target_arch = "x86")] use std::arch::x86 as mm;
528
                    #[cfg(target_arch = "x86_64")] use std::arch::x86_64 as mm;
529
530
                    let bytes: &[u8] = crate::io::bytes::slice_as_bytes(slice);
531
                    let mut chunks = bytes.chunks_exact(32);
532
533
                    let indices = mm::_mm256_set_epi8(
534
                        0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
535
                        0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
536
//                        3,2,1,0, 7,6,5,4, 11,10,9,8, 15,14,13,12,
537
//                        3,2,1,0, 7,6,5,4, 11,10,9,8, 15,14,13,12
538
                    );
539
540
                    for chunk in &mut chunks {
541
                        let data = mm::_mm256_loadu_si256(chunk.as_ptr() as _);
542
                        let result = mm::_mm256_shuffle_epi8(data, indices);
543
                        let mut out = [0_u8; 32];
544
                        mm::_mm256_storeu_si256(out.as_mut_ptr() as _, result);
545
                        write.write_all(&out)?;
546
                    }
547
548
                    let remainder = chunks.remainder();
549
550
                    { // copy remainder into larger slice, with zeroes at the end
551
                        let mut last_chunk = [0_u8; 32];
552
                        last_chunk[0..remainder.len()].copy_from_slice(remainder);
553
                        let data = mm::_mm256_loadu_si256(last_chunk.as_ptr() as _);
554
                        let result = mm::_mm256_shuffle_epi8(data, indices);
555
                        mm::_mm256_storeu_si256(last_chunk.as_mut_ptr() as _, result);
556
                        write.write_all(&last_chunk[0..remainder.len()])?;
557
                    }
558
559
                    Ok(())
560
                }
561
            }
562
563
            else {
564
                unsafe { bytes::write_slice(self, value)?; }
565
                Ok(())
566
            }
567
        }
568
569
        fn write_as_little_endian(&mut self, value: &[f32]) -> Result<()> {
570
            for number in value {
571
                self.write_as_little_endian(number)?;
572
            }
573
574
            Ok(())
575
        }
576
    }*/
577
}
578