Permit.Permissions.DisjunctiveNormalForm (permit v0.3.0)

View Source

Describes conditions written as logical formula in disjunctive normal form.

Example of a compound condition in DNF is:

(condition 1 AND condition 2)
OR (condition 3)
OR (condition 4 AND condition 5 AND condition 6)

Part of the private API, subject to changes and not to be used on the application level.

Summary

Types

t()

@type t() :: %Permit.Permissions.DisjunctiveNormalForm{
  disjunctions: [Permit.Permissions.ParsedConditionList.t()]
}

Functions

add_clauses(dnf, clauses)

@spec add_clauses(t(), [Permit.Permissions.ParsedCondition.t()]) :: t()

any_satisfied?(disjunctive_normal_form, record, subject)

concatenate(disjunctive_normal_form1, disjunctive_normal_form2)

@spec concatenate(t(), t()) :: t()

new(disjunctions \\ [])