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