CPSolver.ConstraintStore behaviour (Fixpoint v0.1.3)

Constraint store is a key-value store, where key is a variable id, and value is a implementation-dependent structure that allows to update and keep track of variables' domains.

Summary

Types

Link to this type

get_operation()

@type get_operation() :: CPSolver.Common.domain_get_operation() | nil
Link to this type

update_operation()

@type update_operation() :: CPSolver.Common.domain_update_operation()

Callbacks

Link to this callback

create(variables, opts)

@callback create(variables :: Enum.t(), opts :: Keyword.t()) ::
  {:ok, Enum.t(), any()} | {:error, any()}
Link to this callback

dispose(store, variable)

@callback dispose(store :: any(), variable :: CPSolver.Variable.t()) :: :ok | :not_found
Link to this callback

domain(store, variable)

@callback domain(store :: any(), variable :: CPSolver.Variable.t()) ::
  {:ok, any()} | {:error, any()}
Link to this callback

get(store, variable, get_operation, list)

@callback get(store :: any(), variable :: CPSolver.Variable.t(), get_operation(), [any()]) ::
  {:ok, any()} | {:error, any()}
Link to this callback

get_variables(store)

@callback get_variables(store :: any()) :: [any()]
Link to this callback

update(store, variable, update_operation, list)

@callback update(store :: any(), variable :: CPSolver.Variable.t(), update_operation(), [
  any()
]) :: any()

Functions

Link to this function

default_store()