ダックタイピングでも継承でもいいけど、単純化できることが重要。ソースコードが最強のドキュメントなら、そのドキュメントを理解しやすいように単純に記述できることは重要。
2010-07-04 11:59:08streamは、ファイルとかメモリとかソケットとかそう言う、バイナリデータで入出力するデバイスを統一的に扱うためのインターフェースで、実際使うのはbyLineとかで提供されるRangeになるのかな。
2010-07-04 13:50:51streamからrangeが取れると便利な場面は多いだろうけど,stream.read/writeは呼びたいよね.だから,streamと言う抽象レイヤー作りたい.と言う話だと思う.なので,Rangeで困る部分を具体例バンバンあげていくのがいいかなぁと.
2010-07-04 13:55:45rangeで十分ならファイルとかメモリとかソケットとかがrange返せばそれでいいと思うんだ.それか,streamをはさめばrangeを提供する手間が減るよーってのもありかな。range実装のコスト>stream実装のコストとして.
2010-07-04 13:57:16そーいや,SHOOさんのRange対応OutBufferってどんなだろう.僕もasOutputRange(Stream)(Stream)作ったけどそんなもんだろうか.
2010-07-04 17:50:32RT @rsinfu: Improvement of streamに返事あり http://www.mail-archive.com/phobos@puremagic.com/msg01119.html
2010-07-04 18:16:19ここで言う明日の朝ってのは、シアトル時間でSun, 04 Jul 2010の6:00AM以降とかそういう意味か? それともMon, 05 Jul 2010の6:00AM以降とかそういう意味か?
2010-07-04 18:23:03InputStreamはsize_t read(void[])だけ用意しておいて,read(ubyte),read(int)とかはread(void[])に変換するような何かがあればいいと思うのだけれど,OutputStreamはどうだろう.
2010-07-04 18:41:31ですかね.それならmainのサンプルはもっとシンプルにできるわけですね.wrapとか使わなくても RT @satoru_h: StreamWrapperは動的ダックタイピングの為.と言う事だったっけ?
2010-07-04 19:17:32した方がいいという話ではなくて.RT @Rayerd: ですかね.それならmainのサンプルはもっとシンプルにできるわけですね.wrapとか使わなくても RT @satoru_h: StreamWrapperは動的ダックタイピングの為.と言う事だったっけ?
2010-07-04 19:20:10言えない…今更例の main 関数の中身は適当に動作チェックするために作っただけのサンプルでも何でもないテストコードだったなんて…言えない…
2010-07-04 19:20:41@satoru_h Fileを読み込んでconsole出力するのはもっとシンプルに書きたいなあと思ったのでauto fs=FileStream(""); foreach(line; byLine(fs))writeln(line);と書いてもいい(ここで中断
2010-07-04 19:23:05あぁ.なる.InputInterface[] interfaces; interfases ~= wrap(FileStream(""));とか書かないと,wrapの意味が見えにくいんですねー
2010-07-04 19:24:34@mono_shoo read(dst)とwrite(src)はread(src)とwrite(dst)じゃないですか?あとread(ubyte[])/write(in ubyte[])はread(in ubyte[])/write(ubyte[])では?
2010-07-04 19:48:23