# `Diffo.Provider.Assigner`
[🔗](https://github.com/diffo-dev/diffo/blob/v0.9.0/lib/diffo/provider/assigner/assigner.ex#L5)

Helper to perform Assignment using `Diffo.Provider.AssignmentRelationship`.

Each assignment is stored as an `AssignmentRelationship` with top-level `pool`,
`thing`, and `value` attributes. This makes them filterable at the Cypher level
and usable in aggregate expressions.

# `assign`

Assign a thing using the pool declared via `pools do` on the instance module.
The thing name is looked up from the pool declaration.

# `assign`

Assign a thing using the instance changeset assignment.

# `assignable_resource_states`

The resource lifecycle states from which an instance may make assignments.

# `assignable_service_states`

The service lifecycle states from which an instance may make assignments.

# `assignable_state?`

Returns `:ok` if the instance is in a lifecycle state that permits assignment,
otherwise `{:error, reason}`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
