On Monday, 15 February 2016 at 12:03:44 UTC, ciechowoj wrote:
It there a way to change how writeln converts structs to
strings? I read in the documentation it uses to!string to
convert the struct. Is there a way to overload to!string for my
own type?
Let say I have:
struct Point {
int x, y;
}
and I want writeln(Point(3, 4)); to print "[3, 4]" instead of
"Point(3, 4)".
Just define a toString method, it will be used by .to!string
struct Point {
int x;
int y;
string toString() {
import std.format: format;
return format("[%d, %d]", x, y);
}
}
void main(string[] args) {
import std.stdio: writeln;
auto p = Point(3, 4);
p.writeln; // [3, 4]
}