compile time configurations
Marco Leise via Digitalmars-d
digitalmars-d at puremagic.com
Fri Oct 10 00:02:24 PDT 2014
Am Wed, 08 Oct 2014 22:34:36 +0000
schrieb "Freddy" <Hexagonalstar64 at gmail.com>:
> 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
More information about the Digitalmars-d
mailing list