9 个版本
| 0.1.9 | 2021 年 6 月 8 日 |
|---|---|
| 0.1.8 | 2021 年 5 月 27 日 |
| 0.1.5 | 2021 年 4 月 29 日 |
| 0.1.4 | 2020 年 11 月 2 日 |
| 0.1.0 | 2020 年 7 月 28 日 |
#5 in #iri
148 个月下载量
用于 15 个包 (11 直接)
140KB
2K SLoC
RDFtk: IRI
此包提供了
IRI 和 URI 规范的实现。
与RDFtk项目的其余部分一样,这个crate的目标是实用性而非优化,因此它可能需要执行比必要的更多克隆,并且解析速度可能比预期的要慢。大部分情况下,客户端应使用IRIRef类型,这是一个Arc引用,因此可以在不克隆整个IRI值的情况下重用。
示例
最常见的用法是从字符串中解析IRI值。
use rdftk_iri::IRI;
use std::convert::from_str;
let result = IRI::from_str(
"https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top",
);
builder模块允许以更程序化的方式构建IRI。
use rdftk_iri::{IRI, Scheme};
use rdftk_iri::builder::IriBuilder;
let mut builder = IriBuilder::default();
let result: IriResult<IRI> = builder
.scheme(&Scheme::https())
.user_name("john.doe")
.host("www.example.com")?
.port(123.into())
.path_str("/forum/questions/")?
.query_str("tag=networking&order=newest")?
.fragment_str("top")?
.try_into();
注意Scheme::https()的使用,Scheme和Port类型都包括用于构建已知值的关联函数。
特性
以下特性包含在这个crate中。
builder[默认] -- 包含builder模块,它反过来包含IriBuilder类型。genid[默认] -- 包含一个构造函数来创建"genid"已知IRI值。path_iri[默认] -- 为IRI提供TryFrom<&PathBuf>和TryFrom<PathBuf>的实现。uuid_iri[默认] -- 为IRI提供TryFrom<&Uuid>和TryFrom<Uuid>的实现。
变更
版本 0.1.9
- 添加了启用genid创建的功能。
- 使IRI成为PartialOrd + Ord,现在可以排序。
- 添加了PercentEncoding trait以对百分编码组件进行编码。
版本 0.1.8
- 对解析器进行了微调以修复一些优先级规则。
- 一些文档修复。
版本 0.1.7
- 在Path和IRI类型中添加了对已知IRI的支持。
版本 0.1.6
- 在lib.rs中应用了很多警告。
- 应用了更多的Clippy建议。
版本 0.1.5
- 应用了所有的Clippy建议。
版本 0.1.4
- 进行了大量的测试和本地覆盖率报告。
- 修复了在
UserInfo::to_string中分隔符缺失的bug。 - 修复了
IpvFuture::from_str的解析bug。 - 向
IriBuilder添加了host、path_root、path方法。 - 更改了
with_new_query和with_new_fragment在IRI上的实现,不再接收Option。 - 向
Scheme添加了blob已知值。
版本 0.1.3
- 主要是测试。
- 将所有只使用公共API的测试移出主代码。
- 添加了一组用于收集整个
IRI示例的文件。 - 为
Scheme添加了proptest,将为更多添加。
- 修复了
IRI::is_absolute中的错误,现在会忽略权限并考虑片段。 - 添加了
IRI::is_relative_reference。
版本 0.1.2
- 主要是文档补充。
- 尽可能添加测试案例。
- 添加了合适的辅助函数和API快捷方式。
- 添加了
path_iri和uuid_iri功能。
版本 0.1.1
- 添加了
IRIRef类型。
版本 0.1.0
- 首次发布。
待办事项
依赖项
约 4.5–7MB
约 128K SLoC