From 84274cbc95b370bf8e38430453b48b7017671a8a Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 21 Mar 2022 23:06:01 +0100 Subject: lib: Add toFunction --- lib/trivial.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/trivial.nix') 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: -- cgit 1.4.1