{ pkgs, lib, config, ... }: let tomlGenerate = (pkgs.formats.toml { }).generate; in { home.packages = (builtins.attrValues { inherit (pkgs) bacon cargo cargo-audit cargo-criterion cargo-deadlinks cargo-expand cargo-flamegraph cargo-fuzz cargo-hack cargo-hakari cargo-inspect cargo-modules cargo-outdated cargo-profiler cargo-release cargo-show-asm cargo-spellcheck cargo-tarpaulin cargo-udeps cargo-watch cargo-workspaces clippy rustc rustfmt; # cargo-about # cargo-auditable # cargo-deny # cargo-deps # cargo-feature }) ++ lib.optionals config.programs.helix.enable (builtins.attrValues { inherit (pkgs) lldb rust-analyzer; }) ++ lib.optionals config.programs.kakoune.enable (builtins.attrValues { inherit (pkgs) rust-analyzer; }); home.file.".cargo/config".source = tomlGenerate "cargo-config" { build.rustc-wrapper = "${pkgs.sccache}/bin/sccache"; }; xdg.configFile."cargo-release/release.toml".source = tomlGenerate "release.toml" { sign-commit = true; sign-tag = true; publish = false; }; }