dns-message-parser 0.9.0

Libary to encode and decode DNS packets
Documentation
use bytes::Bytes;
use dns_message_parser::question::{QClass, QType};

#[test]
fn decode_q_type_type() {
    let bytes = Bytes::copy_from_slice(&b"\x00\x01"[..]);
    let q_type = QType::decode(bytes).unwrap();
    assert_eq!(q_type, QType::A);
}

#[test]
fn decode_q_type_q_type() {
    let bytes = Bytes::copy_from_slice(&b"\x00\xff"[..]);
    let q_type = QType::decode(bytes).unwrap();
    assert_eq!(q_type, QType::ALL);
}

#[test]
fn decode_q_type_error() {
    let bytes = Bytes::copy_from_slice(&b"\xff\xff"[..]);
    let result = QType::decode(bytes);
    assert!(result.is_err());
}

#[test]
fn decode_q_class_class() {
    let bytes = Bytes::copy_from_slice(&b"\x00\x03"[..]);
    let q_class = QClass::decode(bytes).unwrap();
    assert_eq!(q_class, QClass::CH);
}

#[test]
fn decode_q_class_q_class() {
    let bytes = Bytes::copy_from_slice(&b"\x00\xff"[..]);
    let q_class = QClass::decode(bytes).unwrap();
    assert_eq!(q_class, QClass::ANY);
}

#[test]
fn decode_q_class_none() {
    let bytes = Bytes::copy_from_slice(&b"\x00\xfe"[..]);
    let q_class = QClass::decode(bytes).unwrap();
    assert_eq!(q_class, QClass::NONE);
}

#[test]
fn decode_q_class_error() {
    let bytes = Bytes::copy_from_slice(&b"\xff\xff"[..]);
    let result = QClass::decode(bytes);
    assert!(result.is_err());
}

#[test]
fn decode_q_type_svcb() {
    let bytes = Bytes::copy_from_slice(&b"\x00\x40"[..]);
    let q_type = QType::decode(bytes).unwrap();
    assert_eq!(q_type, QType::SVCB);
}

#[test]
fn decode_q_type_https() {
    let bytes = Bytes::copy_from_slice(&b"\x00\x41"[..]);
    let q_type = QType::decode(bytes).unwrap();
    assert_eq!(q_type, QType::HTTPS);
}