2021-07-04 08:24:49 +00:00
|
|
|
{-
|
2021-09-21 20:32:47 +00:00
|
|
|
Copyright 2020 Eike K. & Contributors
|
2021-07-04 08:24:49 +00:00
|
|
|
|
2021-09-21 20:32:47 +00:00
|
|
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
2021-07-04 08:24:49 +00:00
|
|
|
-}
|
|
|
|
|
2021-07-25 12:00:11 +00:00
|
|
|
|
2022-01-26 20:23:48 +00:00
|
|
|
module Util.Result exposing (combine, fold)
|
|
|
|
|
|
|
|
import Api.Model.BasicResult exposing (BasicResult)
|
|
|
|
import Set
|
2021-04-17 09:14:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
fold : (a -> x) -> (b -> x) -> Result b a -> x
|
|
|
|
fold fa fb rba =
|
|
|
|
case rba of
|
|
|
|
Ok a ->
|
|
|
|
fa a
|
|
|
|
|
|
|
|
Err b ->
|
|
|
|
fb b
|
2022-01-26 20:23:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
combine : BasicResult -> BasicResult -> BasicResult
|
|
|
|
combine r1 r2 =
|
|
|
|
BasicResult (r1.success && r2.success)
|
|
|
|
(Set.fromList [ r1.message, r2.message ]
|
|
|
|
|> Set.toList
|
|
|
|
|> String.join ", "
|
|
|
|
)
|