显示crate…
6个版本
0.1.9 | 2024年7月22日 |
---|---|
0.1.8 | 2024年7月20日 |
0.1.5 | 2023年12月12日 |
0.0.0 | 2023年12月13日 |
#100 在 #uri
528 每月下载量
在 flake-edit 中使用
100KB
1.5K SLoC
nix-uri
nix-uri 是一个Rust crate,它将 nix-uri方案 解析到 FlakeRef
结构体。
还允许通过 FlakeRef
结构体构建 nix-uri
。
用于处理nix flake.nix
引用(flakerefs)的便利功能。提供通用属性集表示的类型,但不解析它
{
type = "github";
owner = "NixOS";
repo = "nixpkgs";
}
安装
要使用 nix-uri
,请将其添加到您的 Cargo.toml
文件中的依赖项
[dependencies]
nix-uri = "0.1.9"
或使用 cargo add
cargo add nix-uri
示例
查看示例目录,获取更多信息或运行示例
cargo run --example simple
cargo run --example cli github:nixpkgs/nixos
此库解析uri语法表示
示例:从 github:nixos/nixpkgs
解析
let uri = "github:nixos/nixpkgs";
let expected = FlakeRef::new(
FlakeRefType::GitHub {
owner: "nixos".into(),
repo: "nixpkgs".into(),
ref_or_rev: None,
});
let parsed: FlakeRef = uri.try_into().unwrap();
assert_eq!(expected, parsed);
它还可以从 FlakeRef
生成。
示例:构建以下uri github:nixos/nixpkgs
let expected = "github:nixos/nixpkgs";
let uri = FlakeRef::new(
FlakeRefType::GitHub {
owner: "nixos".into(),
repo: "nixpkgs".into(),
ref_or_rev: None,
}).to_string();
assert_eq!(expected, uri);
注意
此库仍然是早期的工作进度(WIP),并且尚未涵盖所有情况。特别是目前尚未正确实现错误处理。
依赖
~2.2–3.5MB
~90K SLoC