core/lib/tests/modules/freeform-submodules.nix
2024-06-30 09:16:52 +01:00

25 lines
531 B
Nix

{ lib, options, ... }:
with lib.types;
{
options.fooDeclarations = lib.mkOption {
default = (options.free.type.getSubOptions [ ])._freeformOptions.foo.declarations;
};
options.free = lib.mkOption {
type = submodule {
config._module.freeformType = lib.mkMerge [
(attrsOf (submodule {
options.foo = lib.mkOption { };
}))
(attrsOf (submodule {
options.bar = lib.mkOption { };
}))
];
};
};
config.free.xxx.foo = 10;
config.free.yyy.bar = 10;
}