The compiled form of a visibility rule set.
Lotus.Visibility.compile/2 turns the schema, table and column rules a
resolver returns into one of these, once. Exact names go into sets, regex
rules into short ordered lists, and the built-in denies of the source's
adapter are merged into the deny sets. Every check in Lotus.Visibility
then runs against the compiled form instead of walking the raw rules.
The struct is opaque to callers. Build it with Lotus.Visibility.compile/2
and pass it to the Lotus.Visibility check functions. Precedence and
matching are exactly those documented in Lotus.Visibility.
Summary
Types
@type t() :: %Lotus.Visibility.Matcher{ column: column_rules(), schema_allow: :all | name_set(), schema_deny: name_set(), table_allow: table_allow(), table_deny: table_set() }