Skip to main content

AccessFactContributionState

What a fact layer said, named rather than encoded in a boolean and a nil.

nil used to carry two of these at once, which is the root of a whole family of bugs: a Lua table cannot hold nil, so an unresolved fact simply vanished from any map it was put in, and Rx.combineLatest dropped it on the floor. Every layer now says which of four things it means.

  • ALLOW -- yes.
  • DENY -- no.
  • UNRESOLVED -- I tried and cannot say yet. An answer, not a silence.
  • ABSTAIN -- not my question. Skip me entirely and ask the next layer.

Helpers live in AccessFactContributionStateUtils.

Show raw api
{
    "functions": [],
    "properties": [],
    "types": [],
    "name": "AccessFactContributionState",
    "desc": "What a fact layer said, named rather than encoded in a boolean and a nil.\n\n`nil` used to carry two of these at once, which is the root of a whole family of bugs: a Lua table\ncannot hold nil, so an unresolved fact simply vanished from any map it was put in, and\n[Rx.combineLatest] dropped it on the floor. Every layer now says which of four things it means.\n\n* **ALLOW** -- yes.\n* **DENY** -- no.\n* **UNRESOLVED** -- I tried and cannot say yet. An answer, not a silence.\n* **ABSTAIN** -- not my question. Skip me entirely and ask the next layer.\n\nHelpers live in [AccessFactContributionStateUtils].",
    "source": {
        "line": 18,
        "path": "src/access/src/Shared/AccessFactContributionState.lua"
    }
}