/** * Skadi.d Web Framework * * util/dynamic - Dynamic class. * * Authors: Faianca * Copyright: Copyright (c) 2015 Faianca * License: MIT License, see LICENSE */ module skadi.utils.dynamic; import std.range : isInputRange, iota; import std.array : empty, front, popFront; template TypeTupleOf(TL...) if (TL.length == 1 && isInputRange!(typeof(TL[0]))) { import std.typetuple : TT = TypeTuple; enum r = TL[0]; static if (r.empty) alias TypeTupleOf = TT!(); else { enum f = r.front; alias TypeTupleOf = TT!( f, TypeTupleOf!( { auto tmp = r; tmp.popFront(); return tmp; }() ) ); } } void dynamicClass() { // TODO }