This whole thread summarizes what's wrong with
Pin: it's so confusing everyone in here got something wrong. (Just to address your mistake in particular
Unpin is almost the opposite of
!Move: it's the trait that represents things that can be un-pinned, that is: moved despite having been pinned. See
https://doc.rust-lang.org/std/pin/index.html#unpin).