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}