about summary refs log tree commit diff
path: root/users/aspen/system/home/modules/development/rust.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/aspen/system/home/modules/development/rust.nix')
-rw-r--r--users/aspen/system/home/modules/development/rust.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/users/aspen/system/home/modules/development/rust.nix b/users/aspen/system/home/modules/development/rust.nix
new file mode 100644
index 000000000000..c4b20f231546
--- /dev/null
+++ b/users/aspen/system/home/modules/development/rust.nix
@@ -0,0 +1,49 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (config.lib) depot;
+in
+
+with lib;
+
+{
+
+  home.packages = with pkgs; [
+    rustup
+    cargo-edit
+    cargo-expand
+    cargo-udeps
+    cargo-bloat
+    sccache
+    evcxr
+
+    depot.users.aspen.pkgs.cargo-hakari
+    depot.users.aspen.pkgs.cargo-nextest
+
+    # benchmarking+profiling
+    cargo-criterion
+    cargo-flamegraph
+    coz
+    inferno
+    hotspot
+  ] ++ optionals (stdenv.isLinux) [
+    cargo-rr
+  ];
+
+  programs.zsh.shellAliases = {
+    "cg" = "cargo";
+    "cb" = "cargo build";
+    "ct" = "cargo test";
+    "ctw" = "fd -e rs | entr cargo test";
+    "cch" = "cargo check";
+  };
+
+  home.file.".cargo/config".text = ''
+    [build]
+    rustc-wrapper = "${pkgs.sccache}/bin/sccache"
+
+    [target.x86_64-unknown-linux-gnu]
+    linker = "clang"
+    rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"]
+  '';
+}