Note that @andir’s approach also works with stable versions. For example, to get 1.40.0:
(rustChannelOf { channel = "1.40.0"; }).rust
You can also use nixpkgs-mozilla as a package set, rather than an overlay. This is useful when you want to use it in e.g. a derivation:
{ callPackage, fetchFromGitHub }:
let
mozillaOverlay = fetchFromGitHub {
owner = "mozilla";
repo = "nixpkgs-mozilla";
rev = "9f35c4b09fd44a77227e79ff0c1b4b6a69dff533";
sha256 = "18h0nvh55b5an4gmlgfbvwbyqj91bklf1zymis6lbdh75571qaz0";
};
mozilla = callPackage "${mozillaOverlay.out}/package-set.nix" {};
rustNightly = (mozilla.rustChannelOf { date = "2019-07-30"; channel = "nightly"; }).rust;
rustPlatform = makeRustPlatform { cargo = rustNightly; rustc = rustNightly; };
in rustPlatform.buildRustPackage rec {
# ...
}