There are still a number of 32-bit CPUs in the wild, and the Linux x32 ABI uses 32-bit pointers on 64-bit architectures in order to save some memory bandwidth on programs with small working sets. On such platforms, Rust's usize will map to u32, and thus ByteSize will use an u32 counter of bytes internally. But that leads to a maximum representable size of 4 GiB, which is too small to adequately represent modern storage.
For this reason, and taking into account that u64 support can be efficiently emulated on 32-bit platforms, I would propose that ByteSize use u64 as a byte counter rather than usize.