float_sort/lib.rs
1//! # float_sort
2//!
3//! A tiny crate to safely sort `Vec<f32>` and `Vec<f64>` using `total_cmp`.
4//!
5//! ## Example
6//!
7//! ```
8//! use float_sort::FloatSort;
9//!
10//! let mut nums = vec![3.2, 1.5, 2.8];
11//! nums.float_sort();
12//! assert_eq!(nums, vec![1.5, 2.8, 3.2]);
13//! ```
14
15
16pub trait FloatSort {
17 fn float_sort(&mut self);
18 fn float_sort_desc(&mut self);
19}
20
21impl FloatSort for Vec<f64> {
22 fn float_sort(&mut self) {
23 self.sort_by(|a, b| a.total_cmp(b));
24 }
25
26 fn float_sort_desc(&mut self) {
27 self.sort_by(|a, b| b.total_cmp(a));
28 }
29}
30
31impl FloatSort for Vec<f32> {
32 fn float_sort(&mut self) {
33 self.sort_by(|a, b| a.total_cmp(b));
34 }
35
36 fn float_sort_desc(&mut self) {
37 self.sort_by(|a, b| b.total_cmp(a));
38 }
39}