module concurrency.executor;

alias VoidFunction = void function() @safe;
alias VoidDelegate = void delegate() shared @safe;

interface Executor {
  void execute(VoidFunction fn) @safe;
  void execute(VoidDelegate fn) @safe;
  bool isInContext() @safe;
}