Whether or not to also display members marked as Unserialisable; usually transitive information that doesn't carry between program runs. Also those annotated Hidden.
Whether to display in colours or not.
Whether or not to format for a bright terminal background.
Variadic list of structs to enumerate and format.
String with the object formatted, as per the passed arguments.
struct Foo { int foo = 42; string bar = "arr matey"; float f = 3.14f; double d = 9.99; } Foo foo, bar; writeln(prettyformat!(No.all, Yes.coloured)(foo)); writeln(prettyformat!(Yes.all, No.coloured)(bar));
1 import kameloso.common : assertMultilineOpEquals; 2 3 // Rely on the main unit tests of the output range version of prettyformat 4 { 5 struct Struct 6 { 7 string members; 8 int asdf; 9 } 10 11 Struct s; 12 s.members = "foo"; 13 s.asdf = 42; 14 15 enum expected = 16 `-- Struct 17 string members "foo"(3) 18 int asdf 42 19 `; 20 21 immutable actual = prettyformat!(No.all, No.coloured)(brightTerminal: false, s); 22 actual.assertMultilineOpEquals(expected); 23 } 24 { 25 class Nested 26 { 27 int harbl; 28 string snarbl; 29 } 30 31 class ClassSettings 32 { 33 string s = "arb"; 34 int i; 35 string someLongConfiguration = "acdc adcadcad acacdadc"; 36 int[] arrMatey = [ 1, 2, 3, 42 ]; 37 Nested nest; 38 } 39 40 auto c = new ClassSettings; 41 c.i = 2; 42 43 enum expected = 44 `-- Class 45 string s "arb"(3) 46 int i 2 47 string someLongConfiguration "acdc adcadcad acacdadc"(22) 48 int[] arrMatey [1, 2, 3, 42](4) 49 Nested nest <class> (null) 50 `; 51 52 immutable actual = prettyformat!(No.all, No.coloured)(brightTerminal: false, c); 53 actual.assertMultilineOpEquals(expected); 54 55 c.nest = new Nested; 56 enum expected2 = 57 `-- Class 58 string s "arb"(3) 59 int i 2 60 string someLongConfiguration "acdc adcadcad acacdadc"(22) 61 int[] arrMatey [1, 2, 3, 42](4) 62 Nested nest <class> 63 `; 64 65 immutable actual2 = prettyformat!(No.all, No.coloured)(brightTerminal: false, c); 66 actual2.assertMultilineOpEquals(expected2); 67 } 68 { 69 struct Reparse {} 70 struct Client {} 71 struct Server {} 72 73 struct State 74 { 75 Client client; 76 Server server; 77 Reparse[] reparses; 78 bool hasReplays; 79 } 80 81 State state; 82 83 enum expected = 84 `-- State 85 Client client <struct> (init) 86 Server server <struct> (init) 87 Reparse[] reparses [](0) 88 bool hasReplays false 89 `; 90 91 immutable actual = prettyformat!(No.all, No.coloured)(brightTerminal: false, state); 92 actual.assertMultilineOpEquals(expected); 93 }
Formats a struct object, with all its printable members with all their printable values. A string-returning overload that doesn't take an input range.
This is useful when you just want the object(s) formatted without having to pass it a sink.