同じことだけどメモ。auto range=isUtf8Source(binary_src)?Lined!string(binary_src):Lined!wstring(binary_src);
2011-02-27 02:36:19@9rnsr いや、エンコードを見てからの分岐みたいなのはライブラリでどうこうするものではないみたいだなーと思ったくらいです(>.<)
2011-02-27 02:39:33これよさげだなぁ。私が考えてるのと結構マッチしてる。私のやつの場合、これらをinterface/class化できるのが入る程度かな。考え方的に。 RT @9rnsr: ローカルで作業中のI/Oモジュール http://bit.ly/hezLGb …
2011-02-27 02:40:22@Rayerd 自分としてはstd.encoding.EncodingSchemeのリストを与えてAutoEncodedを構築するとか妄想していました。Gaucheにエンコーディング認識ポートとかあるので似たものは作れるかなと。
2011-02-27 02:43:10@mono_shoo Dなのでテンプレートありきで作ってましたが、Source/Pool/SinkのI/Fがまとまってくるとinferfaceでもいいかなと思えてます。
2011-02-27 02:44:21私の考えてるI/Oモジュールの究極的な要求はただ2点に絞られる。一つ目は入出力デバイスを定義しやすいこと。もう一つは、テキスト/バイナリ処理、エンコード、バッファ、その他もろもろはライブラリが用意しているヘルパを使って、いろんなデバイスを統一的に扱えること。 #d_lang
2011-02-27 02:44:42I/O要求に対する自分の考え:読み出しのバッファリングは基本コンセプトに組み込む(自分はPoolと呼んでいる)。テキスト処理はバイナリストリームにかぶせるFilterが担当する(改行とか行分割とか)。
2011-02-27 02:47:10エンコーディングはある程度のバイナリチャンクが参照できるなら自動判別も可能と考える。予め判っているなら型付けするFilterを適用すればいい。ネットワークはコネクション確立後のみを想定している。
2011-02-27 02:49:14レンジベースアルゴリズムに対してはRange化するFilterを書ける、ただしBlockingI/O前提だと思っている(NonBlockingはpollingでBlock化する?)
2011-02-27 02:50:54ヘルパはストリーム専用でも構わないし、Rangeで対応するのでも構わない。バッファリングとかぶっちゃけどうでもいい。A先生、どうでもいいから基本コンセプトさっさと作ってくれってのが本音。
2011-02-27 02:50:21レンジベースアルゴリズムに対してはRange化するFilterを書ける、ただしBlockingI/O前提だと思っている(NonBlockingはpollingでBlock化する?)
2011-02-27 02:50:54@9rnsr ヘルパは限定的なものでもいいと思うんです。プリミティブな部分で、環境に依存せず低レイヤーに触ることが出来るのであれば。
2011-02-27 02:53:31@mono_shoo はい。そこは私も思います。最終的にRangeで提供できれば中間フィルタまでRangeにする必要はないかと。
2011-02-27 02:59:37