{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; systems.url = "github:nix-systems/default"; crane.url = "github:ipetkov/crane"; }; outputs = { self, nixpkgs, systems, crane, ... }: let eachSystem = nixpkgs.lib.genAttrs (import systems); in { packages = eachSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { hello = pkgs.callPackage ./package.nix { craneLib = crane.mkLib pkgs; }; default = self.packages.${system}.hello; }); devShells = eachSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = import ./shell.nix { inherit pkgs crane; }; }); checks = eachSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; craneLib = crane.mkLib pkgs; crate = self.packages.${system}.default; in { inherit crate; clippy = craneLib.cargoClippy ( crate.commonArgs // { inherit (crate) cargoArtifacts; cargoClippyExtraArgs = "--all-targets -- --deny warnings"; } ); doc = craneLib.cargoDoc ( crate.commonArgs // { inherit (crate) cargoArtifacts; env.RUSTDOCFLAGS = "--deny warnings"; } ); }); }; }