lib/pipe_operators.ex
defmodule PipeOperators.SkipOnErrorPipe do
defmacro previous_value ~> function do
quote do
unquote(previous_value)
|> case do
{:error, error} -> {:error, error}
result -> result |> unquote(function)
end
end
end
end