error[E0382]: use of moved value: `id1` --> tests/fail/not_take_twice.rs:13:16 | 10 | let id1: Id = "oops".into(); | --- move occurs because `id1` has type `Id`, which does not implement the `Copy` trait 11 | let id2 = id1.take(); | ------ `id1` moved due to this method call 12 | 13 | assert_eq!(id1.take(), id2); | ^^^ value used here after move | note: `Id::::take` takes ownership of the receiver `self`, which moves `id1` --> src/lib.rs | | pub fn take(self) -> T::InnerId { | ^^^^ help: you can `clone` the value and consume it, but this might not be your desired behavior | 11 | let id2 = id1.clone().take(); | ++++++++