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://john.doe@www.example.com: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