mirror of
https://github.com/Tribufu/rust-gamedig
synced 2026-08-07 22:26:22 +00:00
* [Crate] Replace IpAddr with SocketAddr in protocols * [Crate] Remove usage of address.to_string in socket * [Crate] Update CHANGELOG.md
30 lines
794 B
Rust
30 lines
794 B
Rust
use crate::{
|
|
GDError::{PacketOverflow, PacketUnderflow},
|
|
GDResult,
|
|
};
|
|
use std::cmp::Ordering;
|
|
|
|
pub fn error_by_expected_size(expected: usize, size: usize) -> GDResult<()> {
|
|
match size.cmp(&expected) {
|
|
Ordering::Greater => Err(PacketOverflow),
|
|
Ordering::Less => Err(PacketUnderflow),
|
|
Ordering::Equal => Ok(()),
|
|
}
|
|
}
|
|
|
|
pub fn u8_lower_upper(n: u8) -> (u8, u8) { (n & 15, n >> 4) }
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
#[test]
|
|
fn u8_lower_upper() {
|
|
assert_eq!(super::u8_lower_upper(171), (11, 10));
|
|
}
|
|
|
|
#[test]
|
|
fn error_by_expected_size() {
|
|
assert!(super::error_by_expected_size(69, 69).is_ok());
|
|
assert!(super::error_by_expected_size(69, 68).is_err());
|
|
assert!(super::error_by_expected_size(69, 70).is_err());
|
|
}
|
|
}
|