The review of std.hash package
Christophe Travert
travert at phare.normalesup.org
Thu Aug 9 04:27:54 PDT 2012
If a has is a range, it's an output range, because it's something you
fee data to. Output range have only one method: put. Johannes used this
method. But it's not sufficient, you need something to start and to
finish the hash.
To bring consistency in the library, we should not remove this start and
finish method. We should make all output range of the library use the
same functions.
In the library, we have really few output range. We have writable input
range and we have Appender. Is there more? There should be files,
socket, maybe even signal, but IIRC these don't implement output range
at the moment. What did I miss?
Appender doesn't use a finish method, but we have to 'get the
result' of the appender, and for this we use appender.data. This name is
not appropriate for generically getting a result or terminating an
output range.
So We need a name that fits most output range use. start/finish sounds
not bad. open/close fits files and socket, but many not all output
ranges. Relying solely on constructors, opCall or alias this seems
dangerous to me.
--
Christophe
More information about the Digitalmars-d
mailing list