On Tuesday, 21 February 2017 at 22:26:01 UTC, Chad Joan wrote:
On Tuesday, 21 February 2017 at 21:58:07 UTC, Stefan Koch wrote:
On Tuesday, 21 February 2017 at 21:53:23 UTC, Chad Joan wrote:
Hello all,

I'm trying to make this work:

[...]

You cannot create AA's at ctfe and carry them over to runtime use.
You'd have to use a costum dictionary-type.
I think the vibe.d project has one you could use.

I wondered if this might be the case.

Well, I won't worry about it then. I'll have to find another way around.

Thanks a bunch!

For the sake of the rest of the internet, here is what I'm probably going to stick with:

---
pure string[string] parseTwoColumnCsv(string inputCsv)
{
        import std.csv;
        import std.typecons;
        
        string[string] result;
        
        foreach ( record; csvReader!(Tuple!(string,string))(inputCsv) )
                result[record[0]] = record[1];
        
        return result;
}

immutable string[string] dataLookup;

static this()
{
        dataLookup = parseTwoColumnCsv(import("some_data.csv"));
}

void main()
{
        import std.stdio;
        writefln("dataLookup = %s", dataLookup);
}
---

In this case the AA isn't actually coded into the executable; but at least the configuration from some_data.csv will be in the executable as a string. The program will construct the AA at startup. It's not as "cool", but it should get the job done.

HTH.

Reply via email to