nt/nib/enforce.nix
2025-12-18 11:26:47 +10:00

14 lines
412 B
Nix

{nib, ...}: rec {
enfType = type: T:
assert (nib.isType type T
|| nib.panic.badType (nib.typeName type)); true;
enfSameType = T1: T2: enfType (nib.typeOf T1) T2;
enfAttrs = enfType (nib.typeOf {});
enfList = enfType (nib.typeOf []);
enfListOf = type: L:
assert (enfList L
&& builtins.all (T: nib.isType type T) L
|| nib.panic.badType "List ${nib.typeName type}" L); true;
}