1 个不稳定版本
0.1.9 | 2022年8月23日 |
---|
#2156 在 网页编程
75 每月下载量
在 7 个软件包中使用 (6 直接)
140KB
2K SLoC
RDFtk: IRI
本软件包提供了 IRI
和 URI
规范的实现。
与RDFtk项目的其余部分一样,这个crate的目标是在可用性和优化之间寻求平衡,因此它可能比必要的克隆更多,并且解析速度可能比预期慢。对于大多数情况,客户端应使用IRIRef
类型,它是一个Arc
引用,因此可以在不克隆整个IRI
值的情况下重复使用。
示例
最常见的用法是从字符串解析IRI
值。
use field33_rdftk_iri_temporary_fork::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 field33_rdftk_iri_temporary_fork::{IRI, Scheme};
use field33_rdftk_iri_temporary_fork::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
中分隔符缺失的错误。 - 修复了解析错误
IpvFuture::from_str
。 - 向
IriBuilder
添加了host
、path_root
和path
方法。 - 在
IRI
上更改了with_new_query
和with_new_fragment
,不再接受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
~129K SLoC