Recursive Descent Parser 是一种自上而下的解析器实现方式. 本来通过 Rust 来介绍如何实现该种解析器.
use dlhn::{de::Deserializer, ser::Serializer};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Test {
a: bool,
b: u8,
c: String,
}
fn main() {
let body = Test {
a: true,
b: 123,
c: "test".to_string(),
};
// Serialize body
let mut output = Vec::new();
let mut serializer = Serializer::new(&mut output);
body.serialize(&mut serializer).unwrap();
// Deserialize body
let mut reader = output.as_slice();
let mut deserializer = Deserializer::new(&mut reader);
let deserialized_body = Test::deserialize(&mut deserializer).unwrap();
assert_eq!(body, deserialized_body);
}
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。