Rustに値型と参照型という区別はないぞ
参照という概念はあるけど、これは &i32 なども作れるもので、「整数なら値型」といったものではない
どちらかというとC++に近い

let a = b でbが所有権を失うかどうかは、その型が「コピー可能かどうか」で決まる