about summary refs log tree commit diff
path: root/users/aspen/system/home/modules/development/rust.nix
blob: 3c81e23980106e96256f6eab69a9223b24a031b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{ config, lib, pkgs, ... }:

let
  inherit (config.lib) depot;
in

with lib;

{

  home.packages = with pkgs; [
    rustup

    cargo-bloat
    cargo-edit
    cargo-expand
    cargo-hakari
    cargo-nextest
    cargo-udeps
    sccache
    evcxr

    # 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"]
  '';
}