Ownership moved. This is perhaps a subtle detail, but it's really the "aha! moment" of move semantics in Rust. Ownership is purely conceptual, it is not something you can see in a disassembler.
The pointer is copied.
I was very careful with the terminology I used, can we try to stick with that? Moves do not necessarily copy anything. You are probably thinking about Copy
vs Clone
; Copy
should never use memcpy
since it's usually reserved for pointer-sized types (e.g. they fit in one or two registers), but Clone
does memcpy
(which may be optimized to a series of SIMD instructions).