digitalmars.D - stream prototype
- Sean Kelly (23/23) Aug 05 2004 So at some point my std.stream modifications turned into the prototype f...
So at some point my std.stream modifications turned into the prototype for a similar but incompatible design. As such, I haven't bothered with converting everything, just enough for a proof of concept. The code does include some marginal awareness of UTF8 and UTF16 encoding but the file stream doesn't check for a BOM or anything when a file is opened (if you want to operate on a wchar file you need to set the encoding format manually on the stream object). Also notably missing are seek/scan functions and some other bells and whistles. For the moment I decided to leave the unformatted routines pretty minimal as byte order issues demanded a bit more discussion. And there's no provision for the C++ style shift operator method (which is arguably a useful extension). The file includes a unit test at the bottom that's really just a simple demo. If you actually want to compile the code you'll need to pull down my modified utf.d as well as unformat.d, and add std.format to the list of files to be compiled (to resolve some buggy name mangling issues). The files are here: http://home.f4.ca/sean/d/stream.d http://home.f4.ca/sean/d/utf.d http://home.f4.ca/sean/d/unformat.d This is basically a conceptual port of the C++ stream design. It allows for configuration of when an exception is thrown and some other nice features, though it may not have quite the flexibility of a Java-style design like Mango. I figured it would serve as a useful reference for another concept even if it isn't quite production ready. Sean
Aug 05 2004