{ inputs = { nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.zst"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem ( system: let pkgs = import inputs.nixpkgs { inherit system; }; src = ./.; cargoToml = fromTOML (builtins.readFile "${src}/Cargo.toml"); name = cargoToml.package.name; crate = pkgs.rustPlatform.buildRustPackage { inherit name src; cargoLock.lockFile = "${src}/Cargo.lock"; nativeBuildInputs = with pkgs; [ m4 ]; }; in { packages.default = crate; devShells.default = pkgs.mkShell { inputsFrom = [ crate ]; packages = with pkgs; [ rustc cargo clippy rustfmt rust-analyzer ]; }; } ); }