mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
lib.types: chore use consistent payload form (#363565)
This commit is contained in:
commit
062945b725
3 changed files with 23 additions and 4 deletions
|
@ -475,9 +475,10 @@ rec {
|
|||
check = isString;
|
||||
merge = loc: defs: concatStringsSep sep (getValues defs);
|
||||
functor = (defaultFunctor name) // {
|
||||
payload = sep;
|
||||
binOp = sepLhs: sepRhs:
|
||||
if sepLhs == sepRhs then sepLhs
|
||||
payload = { inherit sep; };
|
||||
type = payload: types.separatedString payload.sep;
|
||||
binOp = lhs: rhs:
|
||||
if lhs.sep == rhs.sep then { inherit (lhs) sep; }
|
||||
else null;
|
||||
};
|
||||
};
|
||||
|
@ -1024,7 +1025,11 @@ rec {
|
|||
else "conjunction";
|
||||
check = flip elem values;
|
||||
merge = mergeEqualOption;
|
||||
functor = (defaultFunctor name) // { payload = values; binOp = a: b: unique (a ++ b); };
|
||||
functor = (defaultFunctor name) // {
|
||||
payload = { inherit values; };
|
||||
type = payload: types.enum payload.values;
|
||||
binOp = a: b: { values = unique (a.values ++ b.values); };
|
||||
};
|
||||
};
|
||||
|
||||
# Either value of type `t1` or `t2`.
|
||||
|
|
|
@ -1844,6 +1844,12 @@
|
|||
"sec-release-25.05-notable-changes": [
|
||||
"release-notes.html#sec-release-25.05-notable-changes"
|
||||
],
|
||||
"sec-release-25.05-lib": [
|
||||
"release-notes.html#sec-release-25.05-lib"
|
||||
],
|
||||
"sec-release-25.05-lib-breaking": [
|
||||
"release-notes.html#sec-release-25.05-lib-breaking"
|
||||
],
|
||||
"sec-release-24.11": [
|
||||
"release-notes.html#sec-release-24.11"
|
||||
],
|
||||
|
|
|
@ -118,3 +118,11 @@
|
|||
- `bind.cacheNetworks` now only controls access for recursive queries, where it previously controlled access for all queries.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Nixpkgs Library {#sec-release-25.05-lib}
|
||||
|
||||
### Breaking changes {#sec-release-25.05-lib-breaking}
|
||||
|
||||
- Structure of the `functor` of some types has changed. `functor` is an implementation detail and should not be relied upon. If you did rely on it let us know in this [PR](https://github.com/NixOS/nixpkgs/pull/363565).
|
||||
- [`lib.types.enum`](https://nixos.org/manual/nixos/unstable/#sec-option-types-basic): Previously the `functor.payload` was the list of enum values directly. Now it is an attribute set containing the values in the `values` attribute.
|
||||
- [`lib.types.separatedString`](https://nixos.org/manual/nixos/unstable/#sec-option-types-string): Previously the `functor.payload` was the seperator directly. Now it is an attribute set containing the seperator in the `sep` attribute.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue