On 08/31/2013 10:22 PM, gedaiu wrote:> Hi,
>
> i want to save data from an array of variants into a file. I saw that
> to!string format the array content in a nice way...

I don't think the format is sufficient for recreating the array:

import std.variant;
import std.conv;
import std.stdio;

struct S
{
    int i;
}

void main()
{
    auto a = [ Variant(42), Variant("hello"), Variant(S(5)) ];
    writeln(a);
}

Outputs:

[42, hello, S(5)]

We can only guess that 'hello' is a string but what if it were the string "43"? It would look like an int. Also, any type can overload toString; so, S(5) could output itself as e.g. "world".

> There is a way of
> converting the resulted string back to an array of varianta?

This requires a serialization module. std.serialization is in review right now:

  http://forum.dlang.org/post/hsnmxykmoytfvwroi...@forum.dlang.org

Its author Jacob Carlborg already has a serialization module called Orange:

  https://github.com/jacob-carlborg/orange

>
> thanks,
> Bogdan

Ali

Reply via email to