Validixir.Failure (validixir v0.1.1)
Module containing data definition and functionality concering a Failure. An Failure is a struct representing a failed validation.
An Failure consists of the following:
- A list of Errors, displaying multiple causes for the validation to fail.
Link to this section Summary
Functions
Combines two errors. That is, appending their error list.
Returns true if a value is a failure.
Smart constructor of a failure.
Applies a function to each error in a failure's errors.
Overrides the context of all errors of a failure.
Overrides the message of all errors of a failure.
Link to this section Types
@type t() :: %Validixir.Failure{errors: [Validixir.Error.t()]}
Link to this section Functions
combine(f1, failure)
Combines two errors. That is, appending their error list.
examples
Examples
iex> error_1 = Validixir.Error.make(1, :not_allowed, SomeContext)
iex> error_2 = Validixir.Error.make(2, :also_not_allowed, SomeContext)
iex> failure_1 = Validixir.Failure.make([error_1])
iex> failure_2 = Validixir.Failure.make([error_2])
iex> Validixir.Failure.combine(failure_1, failure_2)
%Validixir.Failure{errors: [
%Validixir.Error{candidate: 1, message: :not_allowed, context: SomeContext},
%Validixir.Error{candidate: 2, message: :also_not_allowed, context: SomeContext}
]
}
failure?(arg1)
Returns true if a value is a failure.
examples
Examples
iex> f = Validixir.Failure.make([])
iex> Validixir.Failure.failure?(f)
true
iex> s = Validixir.Success.make(1)
iex> Validixir.Failure.failure?(s)
false
make(errors)
Smart constructor of a failure.
map(failure, f)
@spec map(t(), (Validixir.Error.t() -> Validixir.Error.t())) :: t()
Applies a function to each error in a failure's errors.
examples
Examples
iex> f = Validixir.Failure.make([1, 2, 3])
iex> Validixir.Failure.map(f, fn a -> a + 1 end)
%Validixir.Failure{errors: [2,3,4]}
override_error_contexts(failure, new_context)
Overrides the context of all errors of a failure.
examples
Examples
iex> error_1 = Validixir.Error.make(1, :not_allowed, SomeContext)
iex> error_2 = Validixir.Error.make(2, :not_allowed, SomeOtherContext)
iex> f = Validixir.Failure.make([error_1, error_2])
iex> Validixir.Failure.override_error_contexts(f, NewFailureContext)
%Validixir.Failure{errors: [
%Validixir.Error{candidate: 1, message: :not_allowed, context: NewFailureContext},
%Validixir.Error{candidate: 2, message: :not_allowed, context: NewFailureContext}
]
}
override_error_messages(failure, new_message)
Overrides the message of all errors of a failure.
examples
Examples
iex> error_1 = Validixir.Error.make(1, :not_allowed, SomeContext)
iex> error_2 = Validixir.Error.make(2, :also_not_allowed, SomeContext)
iex> f = Validixir.Failure.make([error_1, error_2])
iex> Validixir.Failure.override_error_messages(f, :nonono)
%Validixir.Failure{errors: [
%Validixir.Error{candidate: 1, message: :nonono, context: SomeContext},
%Validixir.Error{candidate: 2, message: :nonono, context: SomeContext}
]
}