refactor(registry): add per-host uniqueness predicate

This commit is contained in:
2026-10-10 15:31:19 -04:00
parent 48007d0a3b
commit 268b7cc5ce
2 changed files with 12 additions and 6 deletions

View File

@@ -2,10 +2,7 @@
{
checks = [
{
assertion = util.registry.predicates.uniqueValue (entry: {
inherit (entry) host;
inherit (entry.value) keys;
});
assertion = util.registry.predicates.uniquePerHost (entry: entry.value.keys);
message = "Desktop keybinds must use unique key chords per host.";
}
];

View File

@@ -16,14 +16,23 @@ let
[ ]
) (builtins.readDir dir)
);
uniqueValue =
value: entries: builtins.length (lib.unique (map value entries)) == builtins.length entries;
in
{
inherit collectNixFiles;
removeNixSuffix = path: lib.removeSuffix ".nix" (builtins.baseNameOf path);
registry.predicates.uniqueValue =
value: entries: builtins.length (lib.unique (map value entries)) == builtins.length entries;
registry.predicates.uniqueValue = uniqueValue;
registry.predicates.uniquePerHost =
value:
uniqueValue (entry: {
inherit (entry) host;
value = value entry;
});
bridgeName = id: "br-vlan${toString id}";