Expand description
nix-uri is a rust crate that parses
the nix-uri-scheme
into a FlakeRef
struct.
Also allows for building a nix-uri
through the FlakeRef
struct.
Convenience functionality for working with nix flake.nix
references (flakerefs).
Provides types for the generic attribute set representation, but does not parse it:
{
type = "github";
owner = "NixOS";
repo = "nixpkgs";
}
Installation
To use nix-uri
, add it as a dependency in your Cargo.toml
file:
[dependencies]
nix-uri = "0.1.4"
or use cargo add
:
cargo add nix-uri
Examples
Check out the examples directory, for more information, or run an example:
cargo run --example simple
cargo run --example cli github:nixos/nixpkgs
The uri syntax representation is parsed by this library:
Example: Parsing from 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.parse().unwrap();
assert_eq!(expected, parsed);
It can also be generated from FlakeRef
.
Example: Constructing the following 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);
Modules
Structs
- The General Flake Ref Schema