1 Star 13 Fork 4

JanKinCai/jppe-rs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
http_example_2.rs 976 Bytes
一键复制 编辑 原始数据 按行查看 历史
use jppe_derive::{BorrowByteEncode, BorrowByteDecode};
#[derive(Debug, Default, PartialEq, Eq, BorrowByteEncode, BorrowByteDecode)]
pub struct Http<'a> {
#[jppe(linend=b"\x20")]
pub method: &'a str,
#[jppe(linend=b"\x20")]
pub uri: &'a str,
#[jppe(linend=b"\r\n")]
pub version: &'a str,
#[jppe(try_count=20)]
pub headers: Vec<HttpHeader<'a>>,
}
#[derive(Debug, Default, PartialEq, Eq, BorrowByteEncode, BorrowByteDecode)]
pub struct HttpHeader<'a> {
#[jppe(linend=b": ")]
pub key: &'a str,
#[jppe(linend=b"\r\n")]
pub value: &'a str,
}
fn main() {
// decode
let input = b"GET http://www.jankincai.com/ HTTP/1.1\r\nHost: www.jankincai.com\r\nAccept-Encoding: gzip, deflate\r\n";
let (input_remain, value) = jppe::decode_borrow::<Http>(input).unwrap();
println!("{value:?} {input_remain:?}");
assert_eq!(input_remain.is_empty(), true);
// encode
assert_eq!(jppe::encode_borrow(value), input);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Rust
1
https://gitee.com/JanKinCai/jppe-rs.git
git@gitee.com:JanKinCai/jppe-rs.git
JanKinCai
jppe-rs
jppe-rs
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891