diff --git a/flake.nix b/flake.nix index 8f94b12..7f8073a 100644 --- a/flake.nix +++ b/flake.nix @@ -23,20 +23,6 @@ ... }: let packageToml = (builtins.fromTOML (builtins.readFile ./Cargo.toml)).package; - msrv = packageToml.rust-version; - - mkDevShell = rust: - pkgs.mkShell { - inputsFrom = [ - (config.packages.default.override { - rust = rust.override { - extensions = ["rust-src"]; - }; - }) - ]; - - env.RUST_BACKTRACE = 1; - }; in { _module.args = { pkgs = import inputs.nixpkgs { @@ -47,10 +33,7 @@ formatter = pkgs.alejandra; - devShells = { - default = mkDevShell pkgs.rust-bin.stable.latest.default; - msrv = mkDevShell pkgs.rust-bin.stable.${msrv}.default; - }; + devShells = pkgs.callPackages ./shell.nix {inherit packageToml self';}; packages.default = pkgs.callPackage ./default.nix {inherit packageToml;}; }; diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..15a23d7 --- /dev/null +++ b/shell.nix @@ -0,0 +1,24 @@ +{ + self', + packageToml, + rust-bin, + mkShell, +}: let + msrv = packageToml.rust-version; + + mkDevShell = rust: + mkShell { + inputsFrom = [ + (self'.packages.default.override { + rust = rust.override { + extensions = ["rust-src"]; + }; + }) + ]; + + env.RUST_BACKTRACE = 1; + }; +in { + default = mkDevShell rust-bin.stable.latest.default; + msrv = mkDevShell rust-bin.stable.${msrv}.default; +}