module cucumber.ctutils;

string modulesString(Modules...)() {
    import std.array;
    string[] modules;
    foreach(mod; Modules) {
        modules ~= mod;
    }
    return modules.join(",");
}

string importModulesString(Modules...)() {
    return "import " ~ modulesString!Modules ~ ";";
}

private template HasAttribute(alias mod, string T, alias A) {
    mixin("import " ~ fullyQualifiedName!mod ~ ";"); //so it's visible
    enum index = staticIndexOf!(A, __traits(getAttributes, mixin(T)));
    static if(index >= 0) {
        enum HasAttribute = true;
    } else {
        enum HasAttribute = false;
    }
}