#version #http #request-response #response #request

nightly uhttp_version

HTTP 版本字段解析器/格式化器

2 个不稳定版本

使用旧 Rust 2015

0.6.0 2017 年 2 月 4 日
0.5.0 2017 年 1 月 22 日

#request-response 中排名第 186


用于 uhttp_json_api

MIT 许可证

8KB
97

uhttp_version -- HTTP 版本字段解析器/格式化器

文档

本包提供对请求/响应起始行中出现的HTTP 版本字段的解析器/格式化器。

示例

use uhttp_version::HttpVersion;
use std::io::Write;

assert_eq!(HttpVersion::from_bytes(b"HTTP/1.0"), Ok(HttpVersion::from_parts(1, 0)));
assert_eq!(HttpVersion::from_bytes(b"HTTP/1.1"), Ok(HttpVersion::from_parts(1, 1)));
assert_eq!(HttpVersion::from_bytes(b"HTTP/4.2"), Ok(HttpVersion::from_parts(4, 2)));

assert_eq!("HTTP/1.0".parse(), Ok(HttpVersion::from_parts(1, 0)));
assert_eq!("HTTP/1.1".parse(), Ok(HttpVersion::from_parts(1, 1)));
assert_eq!("HTTP/4.2".parse(), Ok(HttpVersion::from_parts(4, 2)));

assert!(HttpVersion::from_bytes(b"http/1.1").is_err());
assert!(HttpVersion::from_bytes(b"HTTP/1.42").is_err());
assert!(HttpVersion::from_bytes(b"HTTP/1-1").is_err());

let ver = HttpVersion::from_bytes(b"HTTP/1.1").unwrap();
assert_eq!(ver.major, 1);
assert_eq!(ver.minor, 1);

let ver = HttpVersion::from_parts(4, 2);
let mut buf = [b'#'; 8];
write!(&mut buf[..], "{}", ver).unwrap();
assert_eq!(&buf[..], b"HTTP/4.2");

用法

crate 可以通过将 Cargo 添加为依赖项到 Cargo.toml 中来使用

[dependencies]
uhttp_version = "0.6.0"

并在 crate 根目录中导入它

extern crate uhttp_version;

无运行时依赖