|
@@ -502,37 +502,6 @@ impl fmt::Debug for BootInformation {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-pub(crate) struct Reader {
|
|
|
- pub(crate) ptr: *const u8,
|
|
|
- pub(crate) off: usize,
|
|
|
-}
|
|
|
-
|
|
|
-impl Reader {
|
|
|
- pub(crate) fn new<T>(ptr: *const T) -> Reader {
|
|
|
- Reader {
|
|
|
- ptr: ptr as *const u8,
|
|
|
- off: 0,
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- pub(crate) fn read_u8(&mut self) -> u8 {
|
|
|
- self.off += 1;
|
|
|
- unsafe { *self.ptr.add(self.off - 1) }
|
|
|
- }
|
|
|
-
|
|
|
- pub(crate) fn read_u16(&mut self) -> u16 {
|
|
|
- self.read_u8() as u16 | (self.read_u8() as u16) << 8
|
|
|
- }
|
|
|
-
|
|
|
- pub(crate) fn read_u32(&mut self) -> u32 {
|
|
|
- self.read_u16() as u32 | (self.read_u16() as u32) << 16
|
|
|
- }
|
|
|
-
|
|
|
- pub(crate) fn current_address(&self) -> usize {
|
|
|
- unsafe { self.ptr.add(self.off) as usize }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/// A trait to abstract over all sized and unsized tags (DSTs). For sized tags,
|
|
|
/// this trait does not much. For DSTs, a `TagTrait::dst_size` implementation
|
|
|
/// must me provided, which returns the right size hint for the dynamically
|