Action

object Action
Companion
class
class Object
trait Matchable
class Any

Type members

Types

Value members

Concrete methods

def action[S, I, O](command: Command[S, I, O], context: Context[S]): StateT[[A] =>> GenT[A], Context[S], Option[Action[S]]]
def action[S](commands: List[CommandIO[S]]): StateT[[A] =>> GenT[A], Context[S], Action[S]]
def dropInvalid[S](actions: List[Action[S]]): State[Context[S], List[Action[S]]]

Drops invalid actions from the sequence.

Drops invalid actions from the sequence.

def execute[S](action: Action[S]): StateT[[_] =>> Either[ExecutionError, _$5], Environment, ActionCheck[S]]
def executeParallel[S](initial: S, parallel: Parallel[S])(E: ExecutionContext): Future[Result]

Executes the prefix actions sequentially, then executes the two branches in parallel, verifying that no exceptions are thrown and that there is at least one sequential interleaving where all the post-conditions are met.

Executes the prefix actions sequentially, then executes the two branches in parallel, verifying that no exceptions are thrown and that there is at least one sequential interleaving where all the post-conditions are met.

To generate parallel actions to execute, see the 'Hedgehog.Gen.parallel' combinator in the "Hedgehog.Gen" module.

def executeSequential[S](initial: S, actions: List[Action[S]]): Result
def executeUpdateEnsure[S](action: Action[S]): State[(S, Environment), Result]
def fromCommand[S, I, O](c: Command[S, I, O], i: I, o: Var[O]): Action[S]
def genActions[S](range: Range[Int], commands: List[CommandIO[S]], ctx: Context[S]): GenT[(Context[S], List[Action[S]])]
def genParallel[S](prefixN: Range[Int], parallelN: Range[Int], initial: S, commands: List[CommandIO[S]]): GenT[Parallel[S]]

Given the initial model state and set of commands, generates prefix actions to be run sequentially, followed by two branches to be run in parallel.

Given the initial model state and set of commands, generates prefix actions to be run sequentially, followed by two branches to be run in parallel.

def interleave[A](xs00: List[A], ys00: List[A]): List[List[A]]
def linearize[S](initial: S, env: Environment, branch1: List[ActionCheck[S]], branch2: List[ActionCheck[S]]): Result