|
|
|
@ -390,7 +390,7 @@ rec { |
|
|
|
|
).optionalValue |
|
|
|
|
) def.value |
|
|
|
|
) defs))); |
|
|
|
|
emptyValue = { value = {}; }; |
|
|
|
|
emptyValue = { value = []; }; |
|
|
|
|
getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]); |
|
|
|
|
getSubModules = elemType.getSubModules; |
|
|
|
|
substSubModules = m: listOf (elemType.substSubModules m); |
|
|
|
@ -402,7 +402,7 @@ rec { |
|
|
|
|
let list = addCheck (types.listOf elemType) (l: l != []); |
|
|
|
|
in list // { |
|
|
|
|
description = "non-empty " + list.description; |
|
|
|
|
# Note: emptyValue is left as is, because another module may define an element. |
|
|
|
|
emptyValue = { }; # no .value attr, meaning unset |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
attrsOf = elemType: mkOptionType rec { |
|
|
|
|