{ inputs = { cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0"; flake-utils.follows = "cargo2nix/flake-utils"; nixpkgs.follows = "cargo2nix/nixpkgs"; }; outputs = inputs: with inputs; flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ cargo2nix.overlays.default ]; }; cargoToml = (builtins.fromTOML (builtins.readFile ./Cargo.toml)); rustPkgs = pkgs.rustBuilder.makePackageSet { rustVersion = "1.61.0"; packageFun = import ./Cargo.nix; extraRustComponents = [ "rustfmt" "clippy" ]; packageOverrides = pkgs: pkgs.rustBuilder.overrides.all ++ [ (pkgs.rustBuilder.rustLib.makeOverride { name = cargoToml.package.name; overrideAttrs = drv: { meta.mainProgram = "ipgen"; }; }) ]; }; in rec { packages = { ${cargoToml.package.name} = (rustPkgs.workspace.${cargoToml.package.name} { }).bin; default = packages.${cargoToml.package.name}; }; }); }