Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module test;
- import std.traits;
- struct MyType
- {
- }
- struct RangeCounter {
- }
- void serializeToJson(R, T)(R destination, T value)
- {
- serialize!(JsonStringSerializer!R)(value, destination);
- }
- struct JsonStringSerializer(R)
- {
- void getSerializedResult() {}
- }
- auto serialize(Serializer, T, ARGS)(T value, ARGS )
- {
- auto serializer = Serializer();
- serialize(serializer, value);
- return serializer.getSerializedResult;
- }
- void serialize(Serializer, T)(Serializer serializer, T value)
- {
- serializeImpl!(Serializer, DefaultPolicy, T)(serializer, value);
- }
- void serializeImpl(Serializer, alias Policy, T, ATTRIBUTES...)(Serializer , T value)
- {
- alias TU = T;
- static if (isArray!TU) { foreach (i; value) {} }
- }
- template DefaultPolicy()
- {
- }
- int main()
- {
- auto counter = RangeCounter();
- serializeToJson(counter, [MyType()]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement