On Tuesday, 4 June 2013 at 17:50:47 UTC, Walter Bright wrote:
On 6/4/2013 9:33 AM, John Colvin wrote:
On Tuesday, 4 June 2013 at 16:09:09 UTC, Walter Bright wrote:
On 6/4/2013 6:34 AM, Jacob Carlborg wrote:
I'm wondering if (un)compress can take the compressing algorithm as a template
parameter. Does that make sense?

Something like:

auto result = data.compress!(LZW);

Then we could pass different compressing algorithms to the compress function.

I don't see the point. Furthermore, it requires that the compress template know about all the compression algorithms available, which limits future
expansion.

Not necessarily. If the compression algorithms were free functions in the module you could just be passing an alias to one, which compress would then call.
(which would also allow people to specify their own algorithms)

What value does a function which just passes an alias to another one add?

A unified interface called "compress" that takes a compression function as an alias (with e.g. lzwCompress as a default) seems like a nicer way of working, seeing as people don't necessarily care/know about which algorithm they're using, they just want to compress something a bit.

Also, it would be cool if a range could remember which algorithm it was compressed with (as it's type? I.e. LzwRange), so a generic function "expand" could call the appropriate ***Expand

Reply via email to