Am Wed, 08 Oct 2014 22:34:36 +0000
schrieb "Freddy" <[email protected]>:

> I recently thought of the idea of using string imports for
> compile time configuration.
> Something like this
> ---
> import std.stdio;
> import std.conv;
> import std.range;
> import std.algorithm;
> 
> string getVar(string fname,string var)(){
>       foreach(property;import(fname).splitter('\n')){
>               auto varname=property[0..property.countUntil("=")];
>               if(var==varname){
>                       return property[property.countUntil("=")+1..$];
>               }
>       }
>       assert(0, "unable to find property");
> }
> 
> enum dimisions=getVar!("shapes","dimisions").to!uint;
> 
> void main()
> {
>       writeln("There are ",dimisions," dimisions");
> }
> ---
> Where you add your config dir(that contains "shapes") file to
> dub's  stringImportPaths".
> How do you guys feel about this? Should we use something like
> json for config files?

I did something similar a while back. It parsed a .ini that
contained default values and created a statically typed runtime
parser for the actual .ini file from it. It was fun, to see
that you can do that with D.

-- 
Marco

Reply via email to