Unixのフィルタプログラムのような用途では標準入出力を流れるバイト列のエンコーディングを気にしなくても良い場合も多いと思うけど、Rustで文字列処理をしようとするとUTF-8としてのバリデーションが必要になりがちでアレみたいなところはありそう。`bstr`クレートみたいなものもあるけど、例えば`core::fmt`周りのコンパイラマジックをの恩恵を受けるにはやはり`str`が必要だし
Unixのフィルタプログラムのような用途では標準入出力を流れるバイト列のエンコーディングを気にしなくても良い場合も多いと思うけど、Rustで文字列処理をしようとするとUTF-8としてのバリデーションが必要になりがちでアレみたいなところはありそう。`bstr`クレートみたいなものもあるけど、例えば`core::fmt`周りのコンパイラマジックをの恩恵を受けるにはやはり`str`が必要だし
では標準の文字列型を`BStr`相当のものにしておけば良かったのかというと、それはそれで例えばJSONの書き出しのような本当にUTF-8が必要な処理で文字列リテラルを書き込むだけでバリデーションが発生するなどのつらみがありそうなので、はい。何なら必要なバリデーションを忘れるコードが氾濫するまでありそうだし
Gopher Support in Pleroma
https://pleroma.social/blog/2018/04/01/gopher/
これ好き