feature request, refactor std.stream.Stream

BCS BCS at pathilink.com
Wed Dec 27 18:10:39 PST 2006


The InputStream and OutputStream interfaces are all but unusable because 
they have such a huge number of methods to implements, however most of 
them are implemented by the Stream class in a vary abstract way (all 
build on 4 or 5 low level methods). This is all well and good until you 
want to implement Input/OutputStream with some other class (Thread in my 
case)

Why not put all of those function in a pair of mixins? Then anyone who 
needs to make a stream like object could just implement the half dozen 
low level things and mix in a big chunk of code.


class ThreadStream : InputStream OutputStream Thread
{
	mixin InputMixin!();
	mixin OutputMixin!();

	size_t readBlock(void* buffer, size_t size){...}
	size_t writeBlock(void* buffer, size_t size){...}
	ulong seek(long offset, SeekPos whence){...}
}



More information about the Digitalmars-d mailing list