# GenServerVirtualTime v0.6.0 - Table of Contents

> Virtual time extension to GenServer and GenStateMachine allowing testing time-based
actor systems orders of magnitude faster than in wallclock-time.
Includes actor simulation DSL with statistics, tracing, and code generation into other
Actor Model implementations in C++, Pony, Go, Rust, Java.

## Pages

- Project
  - [Overview](readme.md)
  - [Changelog](changelog.md)
  - [Contributing](contributing.md)
  - [License](license.md)

- Virtual Time
  - [VirtualClock Design](virtual_clock_design.md)
  - [Local Clock Injection](local_clock_injection_feature.md)
  - [Flowchart Reports](flowchart_reports.md)

- Code Generators
  - [Code Generators Overview](generators.md)
  - [OMNeT++ Generator](omnetpp_generator.md)
  - [CAF Generator](caf_generator.md)
  - [Pony Generator](pony_generator.md)
  - [Phony (Go) Generator](phony_generator.md)
  - [Ractor (Rust) Generator](ractor_generator.md)
  - [VLINGO XOOM Generator](vlingo_generator.md)

## Modules

- [ActorSimulation.GeneratorMetadata](ActorSimulation.GeneratorMetadata.md): Utilities for tracking which test file/function generated an HTML report.
- [ActorSimulation.RactorGenerator](ActorSimulation.RactorGenerator.md): Generates Rust code using the Ractor actor library from ActorSimulation DSL.
- [GenServerVirtualTime](GenServerVirtualTime.md): A library for testing time-dependent GenServers and simulating actor systems using virtual time.

- Core
  - [RealTimeBackend](RealTimeBackend.md): Real time backend using Process.send_after/3.

  - [TimeBackend](TimeBackend.md): Behaviour for time backends (real or virtual).

  - [VirtualClock](VirtualClock.md): A GenServer that manages virtual time for testing time-dependent behaviors.
  - [VirtualTimeBackend](VirtualTimeBackend.md): Virtual time backend using VirtualClock.

  - [VirtualTimeGenServer](VirtualTimeGenServer.md): A behavior module for GenServers with virtual time support.
  - [VirtualTimeGenStateMachine](VirtualTimeGenStateMachine.md): A behavior module for GenStateMachine with virtual time support.

- Actor Simulation
  - [ActorSimulation](ActorSimulation.md): A DSL for simulating actor systems with message rates and statistics.
  - [ActorSimulation.Actor](ActorSimulation.Actor.md): A simulated actor that can send and receive messages.

  - [ActorSimulation.Definition](ActorSimulation.Definition.md): Defines an actor's behavior in the simulation.
  - [ActorSimulation.MermaidReportGenerator](ActorSimulation.MermaidReportGenerator.md): Generates Mermaid-based flowchart simulation reports with statistics.
  - [ActorSimulation.Stats](ActorSimulation.Stats.md): Collects and aggregates statistics from actor simulations.

- Code Generators
  - [ActorSimulation.CAFGenerator](ActorSimulation.CAFGenerator.md): Generates C++ Actor Framework (CAF) code from ActorSimulation DSL.
  - [ActorSimulation.GeneratorUtils](ActorSimulation.GeneratorUtils.md): Shared utilities for code generators.
  - [ActorSimulation.OMNeTPPGenerator](ActorSimulation.OMNeTPPGenerator.md): Generates OMNeT++ C++ simulation code from ActorSimulation DSL.
  - [ActorSimulation.PhonyGenerator](ActorSimulation.PhonyGenerator.md): Generates Go code using the Phony actor library from ActorSimulation DSL.
  - [ActorSimulation.PonyGenerator](ActorSimulation.PonyGenerator.md): Generates Pony actor code from ActorSimulation DSL.
  - [ActorSimulation.VlingoGenerator](ActorSimulation.VlingoGenerator.md): Generates VLINGO XOOM Actors code from ActorSimulation DSL.

## Mix Tasks

- [mix cover.show](Mix.Tasks.Cover.Show.md): Runs comprehensive test coverage analysis including all tests.
- [mix precommit](Mix.Tasks.Precommit.md): Runs all CI checks locally before committing.

