{ config, ... }: let mozRust = with builtins; (map (p: import ((fetchTarball { url = "https://github.com/mozilla/nixpkgs-mozilla/archive/e912ed4.tar.gz"; sha256 = "08fvzb8w80bkkabc1iyhzd15f4sm7ra10jn32kfch5klgl0gj3j3"; }) + p))) [ (toPath "/lib-overlay.nix") (toPath "/rust-overlay.nix") ]; stablepkgs = import { overlays = mozRust;}; # https://rust-lang.github.io/rustup-components-history nightly = stablepkgs.rustChannelOf { date = "2020-06-10"; channel = "nightly"; }; rustNightly = { rustc = nightly.rust.override { extensions = [ "clippy-preview" "rls-preview" "rust-analysis" "rust-src" "rustfmt-preview" ]; } // { src = nightly.rust-src; }; cargo = nightly.cargo; }; rustPNightly = stablepkgs.recurseIntoAttrs (stablepkgs.makeRustPlatform { inherit (rustNightly) rustc cargo; }); in { config.machine.pkgsets.rustpkgs.pkgs = (with stablepkgs; [ diesel-cli carnix rustracer ]) ++ (with rustNightly; [ rustc cargo]); }