作った自作ライブラリを紹介する(try-partialord)


せっかく作ったので使ってもらって、批評してほしいから紹介する。

try-partialord


f32, f64をソートするのが面倒であるという問題を安全に解決するために作った。
いままでは、

vec_f32.sort_by(|x,y|x.partial_cmp(y).unwrap());

のようにNANがないことを前提にするか、

vec_f32.sort_by_key(|x|ordered_float::OrderedFloat(x));

のようにラップする必要があった。

これを

let result = vec_f32.try_sort();

とすることで、NANのような比較できないものがなく正しくソートできたかを把握することができるようにするものである。

思ったこと

stdにおいてf32,f64PartialOrdのみにして比較できない場合のエラーハンドリングを強制しながら、ソートや最大最小のような比較が必要なところでそのエラーを直接ハンドリングできないのは整合性がとれてないのではと思った。