What's the difference between `usize` and `u32`?
As the documentation states
usize is pointer-sized, thus its actual size depends on the architecture your are compiling your program for.
As an example, on a 32 bit x86 computer,
usize = u32, while on x86_64 computers,
usize = u64.
usize gives you the guarantee to be always big enough to hold any pointer or any offset in a data structure, while
u32 can be too small on some architectures.
Adding to @Levans' answer,
The size of
usize is depended on how much size it takes to reference any location in memory.
on a 32 bit target
usize is 4 bytes and on a 64 bit target
usize is 8 bytes