sneeuwvlok/modules/develop/rust.nix
2024-07-23 22:34:30 +02:00

36 lines
863 B
Nix

{ inputs, config, options, lib, pkgs, ... }:
let
inherit (lib.attrsets) attrValues;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
in
{
options.modules.develop.rust = let
inherit (lib.options) mkEnableOption;
in {
enable = mkEnableOption "Rust developmnt";
};
config = mkMerge [
(mkIf config.modules.develop.rust.enable {
nixpkgs.overlays = [inputs.rust.overlays.default];
user.packages = attrValues {
rust-package = pkgs.rust-bin.stable.latest.default;
inherit (pkgs) rust-analyzer rust-script;
};
environment.shellAliases = {
rs = "rustc";
ca = "cargo";
};
})
(mkIf config.modules.develop.xdg.enable {
home = {
sessionVariables.CARGO_HOME = "$XDG_DATA_HOME/cargo";
sessionPath = ["$CARGO_HOME/bin"];
};
})
];
}