3个不稳定版本
0.3.1 | 2024年4月27日 |
---|---|
0.2.1 | 2023年5月11日 |
0.2.0 | 2023年5月11日 |
#449 in 编码
29KB
791 行
Serde-teamspeak-querystring
基于serde的rust的teamspeak查询字符串解析器。
用法
// In your main function
let x: MyStruct = serde_teamspeak_querystring::from_str("YOUR QUERY STRING");
要查看支持和不支持的内容,请阅读文档。
还有serde-querystring-actix
crate,它支持在actix-web中使用此crate。它提供了一个QueryString
提取器,其工作方式与actix-web的own::Query相同,但使用serde-querystring
进行反序列化。
为什么
现有的替代方案没有涵盖一些情况,例如枚举(枚举在序列中的使用,对于rest apis中的过滤器很有用)在类似crate中不是一个一等值。这个crate试图涵盖更多的实际用例,并且它使用不同的策略来解析查询字符串,这使得它可以有一定的自由度来决定如何解析,这取决于结果的数据结构。请注意,在某些情况下,它可能与某些现有标准不完全兼容,但它试图支持它们定义的情况。
警告
此项目仍处于早期开发阶段,事物可能会在未经通知的情况下发生变化,因此请自行承担风险使用。
替代方案
如果您正在寻找更成熟的替代方案,请考虑查看以下crate
serde_urlencoded
:一个性能良好的查询解析器,不支持子键(即字典)
serde_qs:这是一个更好的替代方案,它更成熟,对于大多数情况来说功能足够丰富
已知问题
- 尚未正确报告错误
- 不支持单元类型
- 在访问子键时不会检查是否访问了所有输入
- 不支持将序列键值反序列化为映射(更多是功能)
在某些情况下,测试只覆盖有效的查询字符串,因此可能存在一些错误。如果您遇到错误,请打开一个问题并让我知道。
致谢
它使用了大量从serde_json
crate移植或复制过来的代码,以及一些来自form_urlencoded
crate的代码,例如用于解析数字或字符串。
许可
本项目许可采用以下任一许可
- Apache许可证,版本2.0,(LICENSE-APACHE)
- MIT许可证(LICENSE-MIT)
任由您选择。
依赖项
约230–520KB
约10K SLoC