1{ config, lib, ... }:
2let
3 inherit (lib) types mkOption attrNames;
4in
5{
6 options = {
7 attrs = mkOption { type = types.attrsOf lib.types.int; };
8 result = mkOption { };
9 resultFoo = mkOption { };
10 resultFooBar = mkOption { };
11 resultFooFoo = mkOption { };
12 };
13 config = {
14 attrs.a = 1;
15 variants.foo.attrs.b = 1;
16 variants.bar.attrs.y = 1;
17 variants.foo.variants.bar.attrs.z = 1;
18 variants.foo.variants.foo.attrs.c = 3;
19 resultFoo = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.attrs);
20 resultFooBar = lib.concatMapStringsSep " " toString (
21 attrNames config.variants.foo.variants.bar.attrs
22 );
23 resultFooFoo = lib.concatMapStringsSep " " toString (
24 attrNames config.variants.foo.variants.foo.attrs
25 );
26 };
27}