ModuleBlueprint
Single-module blueprint (path-independent).
A module blueprint is a specification for a single, self-contained module. It uses StateReducer0, which can process any transaction type (T <: Tx) that satisfies the schema requirements.
Module blueprints are designed with the assumption that they don't know where they will be deployed. The mounting process (Phase 2) binds a blueprint to a specific Path, computing prefixes and using Entry instances to create concrete StateTable instances.
IMPORTANT: Blueprint contains Entry instances (runtime values), not StateTable instances. Each Entry can create a StateTable when given a prefix.
Phase 5.5 update: Now explicitly models Owns and Needs:
- owns: Entry tuple for tables this module will create
- provider: TablesProvider for external tables this module needs
- reducer0: operates on Owns ++ Needs combined schema
Type parameters
- F
-
the effect type
- MName
-
the module name (literal String type)
- Needs
-
the needed schema tuple (tuple of Entry types)
- Owns
-
the owned schema tuple (tuple of Entry types)
- Txs
-
the transaction types tuple
Value parameters
- owns
-
the Entry instances for owned tables (runtime values)
- provider
-
the tables provider for needed external tables
- reducer0
-
the path-agnostic reducer (accepts any Tx)
- txs
-
the transaction registry
- uniqueNames
-
evidence that table names are unique within Owns
Attributes
- Source
- Blueprint.scala
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any