+2
-1
.github/workflows/test.yml
+2
-1
.github/workflows/test.yml
+10
-6
checkmate/flake.lock
+10
-6
checkmate/flake.lock
···
128
},
129
"target": {
130
"locked": {
131
+
"lastModified": 1763763502,
132
+
"narHash": "sha256-J78S02ZbBclWz7WKF8C+kHUca9/KdHtSeRgO/WF9LjY=",
133
+
"owner": "vic",
134
+
"repo": "flake-aspects",
135
+
"rev": "83c8e44186bc9631509a55cf5a053950ecd3dc30",
136
+
"type": "github"
137
},
138
"original": {
139
+
"owner": "vic",
140
+
"repo": "flake-aspects",
141
+
"type": "github"
142
+
}
143
},
144
"treefmt-nix": {
145
"inputs": {
+1
-1
checkmate/flake.nix
+1
-1
checkmate/flake.nix
+3
-9
nix/types.nix
+3
-9
nix/types.nix
···
5
aspectsType = lib.types.submodule (
6
{ config, ... }:
7
{
8
-
freeformType = lib.types.attrsOf (lib.types.either aspectSubmoduleAttrs providerType);
9
config._module.args.aspects = config;
10
}
11
);
···
30
);
31
32
functionProviderType = lib.types.either functionToAspect (lib.types.functionTo providerType);
33
-
providerType = lib.types.either functionProviderType aspectSubmodule;
34
35
aspectSubmoduleAttrs = lib.types.addCheck aspectSubmodule (
36
m: (!builtins.isFunction m) || (isAspectSubmoduleFn m)
···
78
options.provides = lib.mkOption {
79
description = "Providers of aspect for other aspects";
80
default = { };
81
-
type = lib.types.submodule (
82
-
{ config, ... }:
83
-
{
84
-
freeformType = lib.types.attrsOf providerType;
85
-
config._module.args.provides = config;
86
-
}
87
-
);
88
};
89
options.__functor = lib.mkOption {
90
internal = true;
···
5
aspectsType = lib.types.submodule (
6
{ config, ... }:
7
{
8
+
freeformType = lib.types.attrsOf providerType;
9
config._module.args.aspects = config;
10
}
11
);
···
30
);
31
32
functionProviderType = lib.types.either functionToAspect (lib.types.functionTo providerType);
33
+
providerType = lib.types.either aspectSubmoduleAttrs functionProviderType;
34
35
aspectSubmoduleAttrs = lib.types.addCheck aspectSubmodule (
36
m: (!builtins.isFunction m) || (isAspectSubmoduleFn m)
···
78
options.provides = lib.mkOption {
79
description = "Providers of aspect for other aspects";
80
default = { };
81
+
type = aspectsType;
82
};
83
options.__functor = lib.mkOption {
84
internal = true;
History
1 round
0 comments
oeiuwq.com
submitted
#0
1 commit
expand
collapse
use providerType in aspects
expand 0 comments
closed without merging