lib/solver/constraints/or.ex
defmodule CPSolver.Constraint.Or do
@moduledoc """
ElementVar constrains list of variables `array`, variables `x` and `y` such that:
array[x] = y
array is a list of variables
"""
use CPSolver.Constraint
alias CPSolver.Propagator.Or, as: OrPropagator
alias CPSolver.IntVariable, as: Variable
@impl true
def propagators(args) do
[OrPropagator.new(args)]
end
@impl true
def arguments(array) when is_list(array) do
Enum.map(array, &Variable.to_variable/1)
end
end