org.sigilaris.core.application.module.provider

Members list

Type members

Classlikes

trait TablesProjection[F[_], Subset <: Tuple, Source <: Tuple]

Typeclass proving that Subset can be extracted from Source schema.

Typeclass proving that Subset can be extracted from Source schema.

TablesProjection[F, Subset, Source] proves that every entry in Subset exists in Source with matching name, key, and value types. It provides a project method that extracts the subset tables from a full tables tuple.

This is the key abstraction for provider narrowing in Phase 5.6.

Type parameters

F

the effect type

Source

the source schema to extract from

Subset

the subset schema to extract

Attributes

Companion
object
Source
TablesProvider.scala
Supertypes
class Object
trait Matchable
class Any

Companion for TablesProjection, providing identity, prefix, and suffix projections.

Companion for TablesProjection, providing identity, prefix, and suffix projections.

Attributes

Companion
trait
Source
TablesProvider.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait TablesProvider[F[_], Provides <: Tuple]

Provider for external table dependencies.

Provider for external table dependencies.

TablesProvider is the canonical handle for supplying tables that a module needs but does not own. The name "Provider" highlights what it supplies, while blueprints declare what they need via the Needs type parameter.

This is the core abstraction introduced in Phase 5.5 to replace nested dependency tuples with a clean dependency injection model.

Key design principles:

  • Provides is a tuple of Entry types (Entry[Name, K, V] *: ...)
  • At runtime, provides a Tables[F, Provides] instance
  • Blueprints declare Needs (also an Entry tuple) and receive a matching TablesProvider[F, Needs]
  • Compile-time evidence ensures type safety between Needs and Provides

Type parameters

F

the effect type

Provides

the tuple of Entry types this provider supplies

Attributes

Companion
object
Source
TablesProvider.scala
Supertypes
class Object
trait Matchable
class Any

Companion for TablesProvider, providing factory methods and provider composition.

Companion for TablesProvider, providing factory methods and provider composition.

Attributes

Companion
trait
Source
TablesProvider.scala
Supertypes
class Object
trait Matchable
class Any
Self type