/// Reads a signed 16 bit integer from `buf`. /// /// # Panics /// /// Panics when `buf.len() < 2`. #[inline] fn read_i16(self, buf: &[u8]) -> i16 { self.read_u16(buf) as i16
}
/// Reads a signed 32 bit integer from `buf`. /// /// # Panics /// /// Panics when `buf.len() < 4`. #[inline] fn read_i32(self, buf: &[u8]) -> i32 { self.read_u32(buf) as i32
}
/// Reads a signed 64 bit integer from `buf`. /// /// # Panics /// /// Panics when `buf.len() < 8`. #[inline] fn read_i64(self, buf: &[u8]) -> i64 { self.read_u64(buf) as i64
}
/// Reads a 32 bit floating point number from `buf`. /// /// # Panics /// /// Panics when `buf.len() < 8`. #[inline] fn read_f32(self, buf: &[u8]) -> f32 {
f32::from_bits(self.read_u32(buf))
}
/// Reads a 32 bit floating point number from `buf`. /// /// # Panics /// /// Panics when `buf.len() < 8`. #[inline] fn read_f64(self, buf: &[u8]) -> f64 {
f64::from_bits(self.read_u64(buf))
}
/// Writes an unsigned 16 bit integer `n` to `buf`. /// /// # Panics /// /// Panics when `buf.len() < 2`. #[inline] fn write_u16(self, buf: &mut [u8], n: u16) { let bytes = ifself.is_big_endian() {
n.to_be_bytes()
} else {
n.to_le_bytes()
};
buf[..2].copy_from_slice(&bytes);
}
/// Writes an unsigned 32 bit integer `n` to `buf`. /// /// # Panics /// /// Panics when `buf.len() < 4`. #[inline] fn write_u32(self, buf: &mut [u8], n: u32) { let bytes = ifself.is_big_endian() {
n.to_be_bytes()
} else {
n.to_le_bytes()
};
buf[..4].copy_from_slice(&bytes);
}
/// Writes an unsigned 64 bit integer `n` to `buf`. /// /// # Panics /// /// Panics when `buf.len() < 8`. #[inline] fn write_u64(self, buf: &mut [u8], n: u64) { let bytes = ifself.is_big_endian() {
n.to_be_bytes()
} else {
n.to_le_bytes()
};
buf[..8].copy_from_slice(&bytes);
}
}
/// Byte order that is selectable at runtime. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pubenum RunTimeEndian { /// Little endian byte order.
Little, /// Big endian byte order.
Big,
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.