refined 0.0.0

Simple refinement types; parse, don't validate!
{
  description = "Simple refinement types for Rust with Serde support";

  inputs = {
    fenix = {
      url = "github:nix-community/fenix/monthly";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nixpkgs.url = "nixpkgs/nixos-24.05";
    devenv.url = "github:jkaye2012/devenv";
    naersk.url = "github:nix-community/naersk";
  };

  outputs =
    {
      self,
      fenix,
      nixpkgs,
      devenv,
      naersk,
    }:
    devenv.lib.forAllSystems nixpkgs (
      system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
        fenix' = fenix.packages.${system};
        naersk' = pkgs.callPackage naersk {
          cargo = fenix'.complete.toolchain;
          rustc = fenix'.complete.toolchain;
        };
        manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
      in
      {
        devShells.${system}.default = pkgs.mkShell {
          inherit (manifest) name;

          inputsFrom = [ devenv.devShells.${system}.default ];

          packages = with pkgs; [
            fenix'.complete.toolchain
            linuxPackages_latest.perf
            lldb
          ];
        };

        packages.${system}.default = naersk'.buildPackage {
          src = pkgs.nix-gitignore.gitignoreSource [ ] ./.;
        };
      }
    );
}