{ pkgs, config, lib, ... }: with lib; let cfg = config.eboskma.programs.cargo; tomlFormat = pkgs.formats.toml { }; cargoConfig = types.submodule { freeformType = tomlFormat.type; }; in { options.eboskma.programs.cargo = { enable = mkEnableOption "cargo"; settings = mkOption { description = "Cargo configuration according to https://doc.rust-lang.org/cargo/reference/config.html"; default = { }; type = cargoConfig; }; }; config = mkIf cfg.enable { home.file.".cargo/config.toml" = { source = tomlFormat.generate "cargo-config.toml" cfg.settings; }; }; }