Rust part27 (405レス)
1-

221
(1): 01/26(日)20:54 ID:aE8oqgD4(1) AAS
>>220
後半の話は全然関係ないじゃん
222
(1): 01/26(日)21:10 ID:o76t42ts(2/2) AAS
>>221
後半ためにはOsStringがStringを含む拡張になっていなければならない
そうなっていれば型の読み替えだけでas_refできる
223
(1): 01/26(日)22:23 ID:b7sQng67(1) AAS
>>222
それは>>213が書いてるようにどうなってるかの話で
なぜそうなってるかの理由ではないよね

File::openはAsRef<Path>を受け取るけど
windowsならすぐにVec<u16>に変換されてる

仮にwindows向けOsStrの内部がu16ベースで
File::openがInto<Path>を受け取る実装だったとしても
処理内容は変わらない
224
(1): 01/27(月)20:17 ID:cd9tX+Hd(1) AAS
>>223
それは違うな
str.as_ref()と参照を読み替えるだけでOsStrになることが重要
そのためOsStrとstrのPartialEqも用意されていてコストなく比較可能
UTF-8のみであればOsStrとstrは一致することが本質
225
(1): 01/27(月)23:21 ID:4GlaXCk5(1) AAS
>>224
どれも結果であって原因ではないね

>str.as_ref()と参照を読み替えるだけでOsStrになることが重要
なんで重要なの?

>そのためOsStrとstrのPartialEqも用意されていてコストなく比較可能
OsStrとstrをコストなく比較可能にするために
System Native StringをOsStrにするタイミングでコストがかかってる
コストをかけるタイミングだけの違い
OsStrとstrがコストなく比較可能でなければならない必然性は全くない
226: 01/28(火)15:31 ID:Wlj2eClg(1) AAS
ファイル操作なんてI/O負荷の方が高いんだからファイルパスの変換コスト気にする必要あるか?
文字コードが違う環境はwindows以外にも色々あるだろうし。
227: 01/28(火)16:58 ID:bBapgORx(1) AAS
直交する話を持ち出しても元の議論には一切影響しませんが
228: 01/28(火)20:40 ID:BsfM3c6P(1) AAS
一般的な話として
アスキー非互換かつサロゲートペア問題を抱えるUTF-16は欠陥品なので使用は好ましくない
UTF-16や16bitで扱うシステムはユニコードが16bit時代に決めた古いシステムがほとんどで稀に後に無知者が導入したものがある程度

Rustで文字charは正しく32bitとなっており
文字列strはネット上やファイル内でも推奨されアスキー上位互換のUTF-8になっている
さらにOsStrはそのUTF-8の上位互換となり集合的にはOsStr⊃str⊃アスキーとなっている
それさえ満たせば細かい内部実装は各OS毎に異なってよい
欠陥品のUTF-16は何も満たせずそこでも排除で正しい
229: 01/28(火)22:01 ID:GfuGIG8x(1) AAS
また意味のない話を始める
さすが複オジ
230: 01/29(水)00:32 ID:g0VOlyym(1) AAS
OsStringの用途はファイルパスに限られたものではないけど主たる用途で性能が問題にならないというのは今の実装方法が選ばれた理由の一部ではある
231: 01/29(水)00:58 ID:0dekUNSK(1) AAS
UTF16はメモリとパフォーマンスのバランスが良い
オンメモリの内部形式としては悪くないチョイス
232
(1): 01/29(水)02:25 ID:j23j/EVS(1/3) AAS
別に理由が無いなら無いと言えばいいのに、変にこじつけようとするから
233: 01/29(水)07:54 ID:hKDzv5Fb(1) AAS
スレを荒し続けているUTF16信者は何がしたいの?
本気でUTF16がいいと信じているならそういうcrateを作って布教すればいい
そんな需要はないと思うが
234
(1): 01/29(水)08:41 ID:UbIZehjy(1) AAS
>>225
それは >>219 が述べるように「変換は境界で」という基本思想による。
このやり方が複雑さを避ける良い方法だというのは歴史の積み重ねで皆が実感してきたことなので今さらどうこう言っても「その話はもう終わった。蒸し返すな」という気持ちなんだよ。
235: 01/29(水)10:10 ID:j23j/EVS(2/3) AAS
じゃあせめて「その話」がどのissueでされたかでも貼ってくれないかな
236: 01/29(水)10:45 ID:kksSyPk2(1) AAS
甘え過ぎw
237: 01/29(水)11:52 ID:j23j/EVS(3/3) AAS
ソース無しの妄想だからそう返すしかないか
238: 01/29(水)11:54 ID:LdIOcSwO(1) AAS
複オジはともかく質問者もまだ分かってなかったのか
239: 01/29(水)21:48 ID:1MMCze3E(1/3) AAS
わかった
少なくともこうして容易に使えることが最低必要条件
fn OsStr::to_str(&self) -> Option<&str>
したがってOsStrはstrを含む拡張集合
それ以外に制約はなく各OS毎に内部実装は自由
240: 01/29(水)22:07 ID:mZdkrOxi(1) AAS
それがお前の妄想でないという根拠は?
1-
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.007s