nixfiles/libs/core/lib/bool/default.nix
Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

48 lines
1.2 KiB
Nix

{ intrinsics, type, ... }:
let
bool
= type "bool"
{
inherit(intrinsics) false true;
and#: bool -> bool -> bool
= a: b: ( bool.expect a ) && ( bool.expect b );
equivalent#: bool -> bool -> bool
= a: b: ( bool.expect a ) == ( bool.expect b );
format
= condition:
bool.select condition "true" "false";
formatLegacy
= condition:
bool.select condition "1" "";
implies#: bool -> bool -> bool
= a: b: ( bool.expect a ) -> ( bool.expect b );
isInstanceOf = intrinsics.isBool or (value: value == true || value == false);
isPrimitive = true;
not#: bool -> bool
= a: !( bool.expect a );
or#: bool -> bool -> bool
= a: b: ( bool.expect a ) || ( bool.expect b );
orNull
= value:
bool.isInstanceOf value || value == null;
select#: bool -> T -> T -> T
# where T: Any
= condition:
ifTrue:
ifFalse:
if condition then ifTrue
else ifFalse;
};
in
bool