From 81cdffc792791022190158d232bd4d08fdadeae5 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Wed, 26 Apr 2023 14:56:07 -0400 Subject: [PATCH] add unwrap to result (#78) feat: add unwrap to onepiece result --- apps/one_piece_result/CHANGELOG.md | 4 ++++ apps/one_piece_result/lib/one_piece/result.ex | 17 +++++++++++++++++ apps/one_piece_result/mix.exs | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/one_piece_result/CHANGELOG.md b/apps/one_piece_result/CHANGELOG.md index a5b7aaf..8247cac 100644 --- a/apps/one_piece_result/CHANGELOG.md +++ b/apps/one_piece_result/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +## v0.4.0 - 2023-04-26 + +- Added `OnePiece.Result.unwrap/1`. + ## v0.3.1 - 2022-09-25 - Fix typespec of `OnePiece.Result.when_err/2`. diff --git a/apps/one_piece_result/lib/one_piece/result.ex b/apps/one_piece_result/lib/one_piece/result.ex index 8e485b7..272edbc 100644 --- a/apps/one_piece_result/lib/one_piece/result.ex +++ b/apps/one_piece_result/lib/one_piece/result.ex @@ -667,4 +667,21 @@ defmodule OnePiece.Result do err in OkUnwrapError -> err(err.reason) end + + @doc """ + Returns the contained `t:ok/0` value or `t:error/0` value from a `t:t/0`. + + iex> 42 + ...> |> OnePiece.Result.ok() + ...> |> OnePiece.Result.unwrap() + 42 + + iex> "oops" + ...> |> OnePiece.Result.err() + ...> |> OnePiece.Result.unwrap() + "oops" + """ + @spec unwrap(result :: t) :: any + def unwrap({:ok, v}), do: v + def unwrap({:error, v}), do: v end diff --git a/apps/one_piece_result/mix.exs b/apps/one_piece_result/mix.exs index 92a3b94..84f797d 100644 --- a/apps/one_piece_result/mix.exs +++ b/apps/one_piece_result/mix.exs @@ -2,7 +2,7 @@ defmodule OnePiece.Result.MixProject do use Mix.Project @app :one_piece_result - @version "0.3.2" + @version "0.4.0" @elixir_version "~> 1.13" @source_url "https://github.com/straw-hat-team/beam-monorepo"