{ 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; }; inherit (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 ]); }