use crate::Result;
use crate::dns::Message;
pub fn parse_dns_request(data: &[u8]) -> Result<Message> {
crate::dns::wire::parse_message(data)
}
pub fn serialize_dns_response(message: &Message) -> Result<Vec<u8>> {
crate::dns::wire::serialize_message(message)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_parse_dns_request_minimal_header() {
let data = vec![0u8; 12];
let result = parse_dns_request(&data);
assert!(result.is_ok());
}
#[test]
fn test_parse_dns_request_empty_fails() {
let data: Vec<u8> = vec![];
let result = parse_dns_request(&data);
assert!(result.is_err());
}
#[test]
fn test_serialize_dns_response() {
let message = Message::new();
let result = serialize_dns_response(&message);
assert!(result.is_ok());
assert_eq!(result.unwrap().len(), 12); }
}