module mage.gen;

// Built-in generators
public import mage.gen.vs2013;

import mage.target;
import mage.config;

interface IGenerator
{
  abstract void generate(MagicContext context, Target[] target);
}

IGenerator[string] generatorRegistry;

void registerGenerator(in string name, IGenerator generator) {
  generatorRegistry[name] = generator;
}

mixin template RegisterGenerator(G, Name...)
{
  shared static this()
  {
    auto g = new G();
    foreach(name; Name) {
      registerGenerator(name, g);
    }
  }
}