nt_network/
lib.rs

1pub mod codec;
2mod ext;
3mod packets;
4
5use anyhow::anyhow;
6
7pub type Result<T> = std::result::Result<T, anyhow::Error>;
8
9pub use self::codec::ReceivedPacket;
10pub use self::packets::*;
11
12#[repr(u16)]
13#[derive(Copy, Clone, Debug, PartialEq, Eq)]
14pub enum NTVersion {
15    V2 = 0x0200,
16    V3 = 0x0300,
17}
18
19impl NTVersion {
20    pub fn from_u16(v: u16) -> Result<NTVersion> {
21        match v {
22            0x0200 => Ok(NTVersion::V2),
23            0x0300 => Ok(NTVersion::V3),
24            _ => Err(anyhow!("Invalid version passed in packet. {:#x}", v)),
25        }
26    }
27}