From ce75ed03b8856864c51cada0afc52dd25a8ce8d0 Mon Sep 17 00:00:00 2001 From: Emile Clark-Boman Date: Tue, 27 Jan 2026 08:52:32 +1000 Subject: [PATCH] add getAttrOr & getAttrDefault --- nt/primitives/bootstrap/std/attrs.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nt/primitives/bootstrap/std/attrs.nix b/nt/primitives/bootstrap/std/attrs.nix index 939d682..a33d590 100644 --- a/nt/primitives/bootstrap/std/attrs.nix +++ b/nt/primitives/bootstrap/std/attrs.nix @@ -34,6 +34,13 @@ in rec { enfHasAttr = name: xs: msg: enfIsAttrs xs msg && enfHasAttrUnsafe name xs msg; + getAttrOr = name: f: xs: + if xs ? ${name} + then xs.${name} + else f xs; + + getAttrDefault = name: default: getAttrOr name (_: default); + mergeAttrsList = list: let # `binaryMerge start end` merges the elements at indices `index` of `list` such that `start <= index < end` # Type: Int -> Int -> Attrs