IniConfigsException

Undocumented in source.

Constructors

this
this(size_t iniLine, string file, size_t line)
Undocumented in source.
this
this(string msg)
Undocumented in source.

Examples

////////////////////////////////////////////////////

1 import std.math  : approxEqual;
2 
3 string ini = `
4     value1 = 1 ;value1 comment  
5     value2 =     hello world        ;value2 comment
6 
7         value3 =     1.1
8 
9     value3 = 3.1415 ; value3 comment
10 
11     ;value4 comment
12     value4 = 3.14159263358979361680130282241663053355296142399311
13 
14     ;dfgg
15 
16         ; this is a comment      
17     value5=value5
18         value6  =   value6
19     ;   dfgdfgdgd   sdfs    s       
20                 value7= Some text with spaces           
21 
22                 value7+  = " Some text with spaces      "     
23 
24     value8_ = 985642
25     value8=9856428642
26 
27 
28 
29     boolval1 = on
30     boolval2 = 1
31     boolval3 = true
32 
33     boolval4 = off
34     boolval5 = 0
35     boolval6 = false
36     boolval7 = any else
37 `;
38 
39 
40 IniConfigs cfg;
41 
42 assert(cfg.empty());
43 assert(!cfg.size());
44 
45 try {
46     cfg = ini;
47 } catch (IniConfigsException e) {
48     assert(0, e.msg);
49 }
50 
51 
52 assert(!cfg.empty());
53 assert(17 == cfg.size());
54 
55 cfg.add(`
56     value9 = 15
57     value10 =  -15        
58 `);
59 
60 assert(19 == cfg.size());
61 
62 assert(15 == cfg.get!ubyte  ("value9"));
63 assert(15 == cfg.get!ushort ("value9"));
64 assert(15 == cfg.get!uint   ("value9"));
65 assert(15 == cfg.get!ulong  ("value9"));
66 
67 assert(-15 == cfg.get!byte   ("value10"));
68 assert(-15 == cfg.get!int    ("value10"));
69 assert(-15 == cfg.get!short  ("value10"));
70 assert(-15 == cfg.get!long   ("value10"));
71 
72 
73 assert( approxEqual(3.1415, cfg.get!float  ("value3")) );
74 assert( approxEqual(3.1415, cfg.get!double ("value3")) );
75 assert( approxEqual(3.1415, cfg.get!real   ("value3")) );
76 
77 assert( approxEqual(3.14159263358979361680130282241663053355296142399311, cfg.get!float  ("value4"), 1e-20) );
78 assert( approxEqual(3.14159263358979361680130282241663053355296142399311, cfg.get!double ("value4"), 1e-40) );
79 assert( approxEqual(3.14159263358979361680130282241663053355296142399311, cfg.get!real   ("value4"), 1e-60) );
80 
81 
82 const string name1  = "value1";
83 const string name1_ = "value1_";
84 int val1  = cfg.get(name1,  5);
85 int val1_ = cfg.get(name1_, 5);
86 
87 assert(1 == val1);
88 assert(5 == val1_);
89 
90 assert("hello world"   == cfg.get!string("value2",  "default value") );
91 assert("default value" == cfg.get!string("value2+", "default value") );
92 
93 
94 assert("3.1415" == cfg.get!string("value3"));
95 assert(""       == cfg.get!string("value3+"));
96 
97 assert(approxEqual(3.1415, cfg.get("value3",  2.718281828459)));
98 assert(approxEqual(2.71828,cfg.get("value3+", 2.718281828459)));
99 assert(approxEqual(3.14159,cfg.get("value4",  2.718281828459)));
100 
101 assert(cfg.has("value3"));
102 assert(!cfg.has("value3+"));
103 
104 assert("Some text with spaces" == cfg.get!string("value7", "value7"));
105 assert(" Some text with spaces      " == cfg.get!string("value7+"));
106 cfg.add(`empty_str = ""`);
107 assert("" == cfg.get!string("empty_str") );
108 
109 
110 assert(985642     == cfg.get("value8_", 0) );
111 assert(9856428642 == cfg.get("value8", size_t(0)) );
112 assert(9856428642 == cfg.get!size_t("value8", 0) );
113 
114 
115 assert(false == cfg.get("boolval0", false) );
116 assert(true  == cfg.get("boolval1", false) );
117 assert(true  == cfg.get("boolval2", false) );
118 assert(true  == cfg.get("boolval3", false) );
119 
120 assert(false == cfg.get("boolval4", true) );
121 assert(false == cfg.get("boolval5", true) );
122 assert(false == cfg.get("boolval6", true) );
123 assert(false == cfg.get("boolval7", true) );
124 
125 assert(true ==  cfg.get!bool("boolval2") );
126 assert(false == cfg.get!bool("boolval0") );

Meta