diff options
author | Robert Hensing <robert@roberthensing.nl> | 2022-03-21 23:06:01 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2022-03-21 23:14:10 +0100 |
commit | 84274cbc95b370bf8e38430453b48b7017671a8a (patch) | |
tree | 75ded95befa762cf6733c8895b50e490035ec488 /lib/trivial.nix | |
parent | 6a0b24b27675d03a7f24c124e6c145076104e869 (diff) |
lib: Add toFunction
Diffstat (limited to 'lib/trivial.nix')
-rw-r--r-- | lib/trivial.nix | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/trivial.nix b/lib/trivial.nix index c68bac902e913..52648125059d0 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -403,6 +403,25 @@ rec { isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f)); + /* + Turns any non-callable values into constant functions. + Returns callable values as is. + + Example: + + nix-repl> lib.toFunction 1 2 + 1 + + nix-repl> lib.toFunction (x: x + 1) 2 + 3 + */ + toFunction = + # Any value + v: + if isFunction v + then v + else k: v; + /* Convert the given positive integer to a string of its hexadecimal representation. For example: |