Providing custom formatting without importing half of phobos.

H. S. Teoh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 9 08:07:23 PST 2015


On Mon, Nov 09, 2015 at 03:09:26PM +0000, rumbu via Digitalmars-d-learn wrote:
> Let's say that I'm a library provider and I intend to offer a
> completely new data type suitable for printing with format() or
> writef().
> 
> According to this tutorial
> (http://wiki.dlang.org/Defining_custom_print_format_specifiers), to
> achieve this, one must import at least std.format : FormatSpec.
> 
> The problem is that just importing FormatSpec will create exactly 88
> phobos dependencies.
> 
> Is there any way to provide formatting capabilities for a custom data
> type without importing the FormatSpec thing?

Do you need *custom* format specifiers? If all you need is to be able to
write: format("%s", myData), then the only thing you need to do is to
implement one of the toString methods recognized by format(), such as:

	void toString(scope void delegate(const(char)[]) dg) {
		...
	}

and format() should be able to just pick it up.


T

-- 
You have to expect the unexpected. -- RL


More information about the Digitalmars-d-learn mailing list