Haxe macro for automatically generating toString
methods.
-
To generate the method, use this build macro (autobuild also works fine):
@:build(tostring.ToString.generate())
-
To exclude a field from being printed out, use meta:
@:tostring.exclude
class Animal {
public var age: Int;
public var name: Null<String>;
@:tostring.exclude public var momName: Null<String>;
}
@:build(tostring.ToString.generate())
class Dog extends Animal {
@:tostring.exclude public var favoriteFood: String;
public var breed: Breed;
public var ageInDogYears(get, never): Int;
public function get_ageInDogYears(): Int {
return this.age * 7;
}
}
Example output:
Dog { age: 6, name: Rex, breed: GoldenRetriever, ageInDogYears: 42 }