byte_prefix/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3#![deny(rustdoc::missing_doc_code_examples)]
4#![doc = include_str!("../README.md")]
5
6mod byte_sizes;
7pub use byte_sizes::*;
8mod parser;
9pub use parser::*;
10mod supported_format;
11pub use supported_format::*;
12
13#[cfg(test)]
14mod sanity_checks {
15    use crate::calc_bytes;
16
17    #[test]
18    fn bytes() {
19        let size = 1023usize as f32;
20        let formatted = calc_bytes(size);
21
22        assert_eq!("1023.00B", formatted.as_str());
23    }
24
25    #[test]
26    fn kib() {
27        let size = 1024usize as f32;
28        let formatted = calc_bytes(size);
29
30        assert_eq!("1.00KiB", formatted.as_str());
31
32        let size = (1024 * 1023usize) as f32;
33        let formatted = calc_bytes(size);
34
35        assert_eq!("1023.00KiB", formatted.as_str());
36
37        let size = (1024 * 16usize) as f32;
38        let formatted = calc_bytes(size);
39
40        assert_eq!("16.00KiB", formatted.as_str());
41    }
42
43    #[test]
44    fn mib() {
45        let size = (1024 * 1024usize) as f32;
46        let formatted = calc_bytes(size);
47
48        assert_eq!("1.00MiB", formatted.as_str());
49
50        let size = (1024 * 1024 * 1023usize) as f32;
51        let formatted = calc_bytes(size);
52
53        assert_eq!("1023.00MiB", formatted.as_str());
54
55        let size = (1024 * 1024 * 16usize) as f32;
56        let formatted = calc_bytes(size);
57
58        assert_eq!("16.00MiB", formatted.as_str());
59    }
60
61    #[test]
62    fn gib() {
63        let size = (1024 * 1024 * 1024usize) as f32;
64        let formatted = calc_bytes(size);
65
66        assert_eq!("1.00GiB", formatted.as_str());
67
68        let size = (1024 * 1024 * 1024 * 1023usize) as f32;
69        let formatted = calc_bytes(size);
70
71        assert_eq!("1023.00GiB", formatted.as_str());
72
73        let size = (1024 * 1024 * 1024 * 16usize) as f32;
74        let formatted = calc_bytes(size);
75
76        assert_eq!("16.00GiB", formatted.as_str());
77    }
78
79    #[test]
80    fn tib() {
81        let size = (1024 * 1024 * 1024 * 1024usize) as f32;
82        let formatted = calc_bytes(size);
83
84        assert_eq!("1.00TiB", formatted.as_str());
85
86        let size = (1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
87        let formatted = calc_bytes(size);
88
89        assert_eq!("1023.00TiB", formatted.as_str());
90
91        let size = (1024 * 1024 * 1024 * 1024 * 16usize) as f32;
92        let formatted = calc_bytes(size);
93
94        assert_eq!("16.00TiB", formatted.as_str());
95    }
96
97    #[test]
98    fn pib() {
99        let size = (1024 * 1024 * 1024 * 1024 * 1024usize) as f32;
100        let formatted = calc_bytes(size);
101
102        assert_eq!("1.00PiB", formatted.as_str());
103
104        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
105        let formatted = calc_bytes(size);
106
107        assert_eq!("1023.00PiB", formatted.as_str());
108
109        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 16usize) as f32;
110        let formatted = calc_bytes(size);
111
112        assert_eq!("16.00PiB", formatted.as_str());
113    }
114
115    #[test]
116    fn eib() {
117        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024u128) as f32;
118        let formatted = calc_bytes(size);
119
120        assert_eq!("1.00EiB", formatted.as_str());
121
122        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1023u128) as f32;
123        let formatted = calc_bytes(size);
124
125        assert_eq!("1023.00EiB", formatted.as_str());
126
127        let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 16u128) as f32;
128        let formatted = calc_bytes(size);
129
130        assert_eq!("16.00EiB", formatted.as_str());
131    }
132}