diff options
Diffstat (limited to 'lib/types.nix')
-rw-r--r-- | lib/types.nix | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/types.nix b/lib/types.nix index 59577856f4e1f..5286ce76862e2 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -623,7 +623,11 @@ rec { mkOptionType { name = "attrTag"; description = "attribute-tagged union of ${choicesStr}"; - getSubModules = null; + getSubOptions = prefix: + mapAttrs + (tagName: tagType: + tagType.getSubOptions (prefix ++ [ tagName ])) + tags; substSubModules = m: attrTagWith { tags = mapAttrs (n: v: v.substSubModules m) tags; }; check = v: isAttrs v && length (attrNames v) == 1 && tags?${head (attrNames v)}; merge = loc: defs: |