Chadtech/elm-bool-extra/2.3.0

NOTE: the latest version is 2.4.2

Bool.Extra

Convenience functions for working with Bools

Basics

all : List Bool -> Bool

All the bools are true.

all [ True, True, True ]
--> True


all [ True, False ]
--> False


all [ False, False ]
--> False
none : List Bool -> Bool

None of the bools are true.

none [ True, True ]
--> False


none [ True, False ]
--> False


none [ False, False ]
--> True
any : List Bool -> Bool

At least one of the bools is true.

any [ True, True ]
--> True


any [ True, False ]
--> True


any [ False, False ]
--> False
notAll : List Bool -> Bool

Not all of them are true

notAll [ True, True ]
--> False


notAll [ True, False ]
--> True


notAll [ False, False ]
--> True

Predicate

allPass : List (a -> Bool) -> a -> Bool

Determine if all predicates are satisfied by the value.

allPass [ (>) 20, (<) 10 ] 11
--> True


allPass [ (>) 20, (<) 10 ] 21
--> False


allPass [ (>) 20, (<) 10 ] 4
--> False


allPass [] 21
--> True
anyPass : List (a -> Bool) -> a -> Bool

Determine if any predicate is satisfied by the value.

anyPass [ (>) 20, (<) 10 ] 100
--> True


anyPass [ (>) 20, (==) 10 ] 21
--> False


anyPass [] 21
--> False

Maybe

toMaybe : a -> Bool -> Maybe a

Take a value, and wrap it with Just from a Bool

toMaybe 4 True
--> Just 4


toMaybe 4 False
--> Nothing

String

toString : Bool -> String

Turn a bool into a string

toString True
--> "True"


toString False
--> "False"
fromString : String -> Maybe Bool

Try and extract a Bool from a String

fromString "true"
--> Just True


fromString "False"
--> Just False


fromString "t"
--> Nothing


fromString "My pal foot foot"
--> Nothing
stringDecoder : Decoder Bool

Sometimes webservers will return the unideal json of a string "true" rather than just the native boolean value true. This decoder decodes a string that looks like a Bool, into a Bool

import Json.Decode as Decode
import Json.Encode as Encode


Decode.decodeString stringDecoder "\"true\""
--> Ok True


Decode.decodeString stringDecoder "true"
--> Err (Decode.Failure "Expecting a STRING" (Encode.bool True))
encodeAsString : Bool -> Value

Sometimes in weird unideal circumstances you need to encode True to "true" instead of just true.

import Json.Encode exposing (encode)


encode 0 (encodeAsString True)
--> "\"true\""


encode 0 (encodeAsString False)
--> "\"false\""