#media-type #media #http #type #mime #mimetype

nightly uhttp_media_type

无分配HTTP MIME/media类型解析器

1 个不稳定版本

使用旧的Rust 2015

0.5.0 2017年1月29日

#20#media-type


uhttp_json_api 中使用

MIT 许可证

22KB
179

uhttp_media_type -- HTTP MIME/media类型解析器

文档

该crate提供了一种零分配、基于切片的解析器,用于解析HTTP媒体类型,如它们出现在 Content-TypeAccept 头中。

示例

use uhttp_media_type::{MediaType, MediaParams, ParamValue};

let mt = MediaType::new("application/json; charset=utf-8; param=\"a value\"").unwrap();
assert_eq!(mt.mimetype, "application/json");
assert_eq!(mt.parts().unwrap(), ("application", "json"));
assert_eq!(mt.params, " charset=utf-8; param=\"a value\"");

let mut params = MediaParams::new(mt.params);

let (key, val) = params.next().unwrap().unwrap();
assert_eq!(key, "charset");
assert_eq!(val, ParamValue::Unquoted("utf-8"));
assert_eq!(val.inner(), "utf-8");

let (key, val) = params.next().unwrap().unwrap();
assert_eq!(key, "param");
assert_eq!(val, ParamValue::Quoted("a value"));
assert_eq!(val.inner(), "a value");

assert!(params.next().is_none());

使用方法

可以通过在 Cargo.toml 中添加依赖项来使用此 crate,并在crate根目录中导入它

[dependencies]
uhttp_media_type = "0.5.0"

extern crate uhttp_media_type;

依赖

~620KB