X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=src%2Fhope_result.erl;h=5d0ea7e42c40521a8a24f65b0fa0ce7f4701153c;hb=ed9905af6fa1dba6f89759d6dbfc970426122bde;hp=405f2e04eb9f9589731039d867f921b2a75189e1;hpb=6731749baadb46eda33393abbff36daae302cac8;p=hope.git diff --git a/src/hope_result.erl b/src/hope_result.erl index 405f2e0..5d0ea7e 100644 --- a/src/hope_result.erl +++ b/src/hope_result.erl @@ -1,15 +1,28 @@ -module(hope_result). --export_type([ t/2 - ]). --export([ pipe/2 - ]). +-export_type( + [ t/2 + ]). +-export( + [ pipe/2 + ]). --type t(A, B) :: {ok, A} | {error, B}. +-type t(A, B) :: + {ok, A} + | {error, B} + . + +-spec pipe([F], X) -> + t(Ok, Error) + when X :: any() + , Ok :: any() + , Error :: any() + , F :: fun((X) -> t(Ok, Error)) + . pipe([] , X) -> X; pipe([F|Fs], X) -> case F(X)