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://[email protected]: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