1 个不稳定版本

0.1.0 2023 年 5 月 16 日

#4#user-info

MIT/Apache

12KB
309

概述

一个具有更多自定义性的简单 URL 构建器。

如果你使用这个库,请注意它不执行任何错误处理或输入清理。在使用构建器之前(以及尝试输出)请验证输入。

快速入门

Cargo.toml

[dependencies]
url-constructor = "0.1.0"

创建 URL

use url_constructor::UrlConstructor;

let url = UrlConstructor::new()
    .scheme("http")
    .userinfo("alex:password1")
    .subdomain("api")
    .host("google.com")
    .port(8080)
    .subdir("v2")
    .subdir("users")
    .param("salary", ">10000")
    .param("lastName", "Wallace")
    .fragment("id")
    .build()

assert_eq!(
    url,
    "http://alex:[email protected]:8080/v2/users?lastName=Wallace&salary=>10000#id"
)

规格

以下是构建器的当前“怪癖”

  • 默认方案是 https,其他组件没有默认值
  • 如果方案设置为空字符串,则 URL 的 :// 部分不会被返回
  • 子域名按调用顺序从左到右返回(见上面的示例)
  • 控制字符,如 &?/#@ 将自动添加到各自的 URL 组件中(注意:没有检查以防止重复)
  • 使用 subdomain 方法定义主机部分的每个部分应产生与直接使用 host 相同的结果
  • 每个组件的重复性
    • 方案: 0...1
    • 用户信息: 0...1
    • 子域名: 0...*
    • 主机: 0...1
    • 端口: 0...1
    • 子目录: 0...*
    • 参数: 0...*
    • 片段: 0...*

无运行时依赖