BlueprintDsl

org.sigilaris.core.assembly.BlueprintDsl
object BlueprintDsl

High-level DSL for mounting blueprints at specific paths.

Provides convenient methods for mounting module blueprints and composed blueprints at paths, with automatic evidence requirements:

Single-name mounting:

Multi-segment path mounting:

All methods require evidence that:

Attributes

See also
Example
 import org.sigilaris.core.assembly.BlueprintDsl.*
val module = mount("accounts" -> accountsBlueprint) val composed =
mountComposed("app" -> composedBlueprint) 
Source
BlueprintDsl.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def mount[F[_], Name <: String & Singleton, MName <: String, Owns <: Tuple, Needs <: Tuple, Txs <: Tuple](binding: (Name, ModuleBlueprint[F, MName, Owns, Needs, Txs]))(using Monad[F], PrefixFreePath[Name *: EmptyTuple, Owns], NodeStore[F], SchemaMapper[F, Name *: EmptyTuple, Owns]): PlainModule[F, Name *: EmptyTuple, Owns, Needs, Txs]

Mount a module blueprint at a single-segment path.

Mount a module blueprint at a single-segment path.

Type parameters

F

the effect type

MName

the module name

Name

the mount path (singleton string literal)

Needs

the needed schema tuple

Owns

the owned schema tuple

Txs

the transaction types tuple

Value parameters

binding

tuple of (path name, blueprint)

Attributes

Returns

a mounted StateModule with StateReducer

Source
BlueprintDsl.scala
def mountAtPath[F[_], Path <: Tuple, MName <: String, Owns <: Tuple, Needs <: Tuple, Txs <: Tuple](binding: (Path, ModuleBlueprint[F, MName, Owns, Needs, Txs]))(using StringTuple[Path], Monad[F], PrefixFreePath[Path, Owns], NodeStore[F], SchemaMapper[F, Path, Owns]): PlainModule[F, Path, Owns, Needs, Txs]

Mount a module blueprint at a multi-segment path.

Mount a module blueprint at a multi-segment path.

Type parameters

F

the effect type

MName

the module name

Needs

the needed schema tuple

Owns

the owned schema tuple

Path

the mount path tuple (e.g., ("app", "v1"))

Txs

the transaction types tuple

Value parameters

binding

tuple of (path tuple, blueprint)

Attributes

Returns

a mounted StateModule with StateReducer

Source
BlueprintDsl.scala
def mountComposed[F[_], Name <: String & Singleton, MName <: String, Owns <: Tuple, Needs <: Tuple, Txs <: Tuple](binding: (Name, ComposedBlueprint[F, MName, Owns, Needs, Txs]))(using Monad[F], PrefixFreePath[Name *: EmptyTuple, Owns], NodeStore[F], SchemaMapper[F, Name *: EmptyTuple, Owns]): RoutedModule[F, Name *: EmptyTuple, Owns, Needs, Txs]

Mount a composed blueprint at a single-segment path.

Mount a composed blueprint at a single-segment path.

Composed blueprints require transactions with ModuleRoutedTx for routing.

Type parameters

F

the effect type

MName

the module name

Name

the mount path (singleton string literal)

Needs

the needed schema tuple

Owns

the owned schema tuple

Txs

the transaction types tuple

Value parameters

binding

tuple of (path name, composed blueprint)

Attributes

Returns

a mounted StateModule with RoutedStateReducer

Source
BlueprintDsl.scala
def mountComposedAtPath[F[_], Path <: Tuple, MName <: String, Owns <: Tuple, Needs <: Tuple, Txs <: Tuple](binding: (Path, ComposedBlueprint[F, MName, Owns, Needs, Txs]))(using StringTuple[Path], Monad[F], PrefixFreePath[Path, Owns], NodeStore[F], SchemaMapper[F, Path, Owns]): RoutedModule[F, Path, Owns, Needs, Txs]

Mount a composed blueprint at a multi-segment path.

Mount a composed blueprint at a multi-segment path.

Composed blueprints require transactions with ModuleRoutedTx for routing.

Type parameters

F

the effect type

MName

the module name

Needs

the needed schema tuple

Owns

the owned schema tuple

Path

the mount path tuple (e.g., ("app", "v1"))

Txs

the transaction types tuple

Value parameters

binding

tuple of (path tuple, composed blueprint)

Attributes

Returns

a mounted StateModule with RoutedStateReducer

Source
BlueprintDsl.scala