remove enfIsAttrsUnsafe

This commit is contained in:
Emile Clark-Boman 2026-01-28 13:03:09 +10:00
parent ccd07cc07a
commit d6ab2fdf72
2 changed files with 4 additions and 9 deletions

View file

@ -8,7 +8,6 @@
inherit inherit
(this.std) (this.std)
enfHasAttr enfHasAttr
enfHasAttrUnsafe
; ;
inherit inherit
@ -23,7 +22,7 @@ in rec {
mkTrapdoorFn = decl: mkTrapdoorFn = decl:
assert enfHasAttr "default" decl "mkTrapdoorFn"; assert enfHasAttr "default" decl "mkTrapdoorFn";
assert enfHasAttrUnsafe "unlock" decl "mkTrapdoorFn"; assert enfHasAttr "unlock" decl "mkTrapdoorFn";
# return trapdoor function # return trapdoor function
(x: (x:
if x == masterkey if x == masterkey
@ -32,7 +31,7 @@ in rec {
mkTrapdoorSet = decl: mkTrapdoorSet = decl:
assert enfHasAttr "default" decl "mkTrapdoorSet"; assert enfHasAttr "default" decl "mkTrapdoorSet";
assert enfHasAttrUnsafe "unlock" decl "mkTrapdoorSet"; assert enfHasAttr "unlock" decl "mkTrapdoorSet";
# return trapdoor set # return trapdoor set
decl.default decl.default
// { // {

View file

@ -27,13 +27,9 @@ in rec {
in in
got == "set" || throw "${msg}: expected primitive nix type \"set\" but got \"${got}\""; got == "set" || throw "${msg}: expected primitive nix type \"set\" but got \"${got}\"";
# NOTE: doesn't check if xs is type set, use enfHasAttr instead
enfHasAttrUnsafe = name: xs: msg:
hasAttr name xs || throw "${msg}: missing required attribute \"${name}\"";
# NOTE: use enfHasAttr' if you can guarantee xs is type set
enfHasAttr = name: xs: msg: enfHasAttr = name: xs: msg:
enfIsAttrs xs msg && enfHasAttrUnsafe name xs msg; assert enfIsAttrs xs msg;
hasAttr name xs || throw "${msg}: missing required attribute \"${name}\"";
getAttrOr = name: f: xs: getAttrOr = name: f: xs:
if xs ? ${name} if xs ? ${name}