1 00:00:05,870 --> 00:00:06,230 All right. 2 00:00:06,230 --> 00:00:12,320 So in this lecture, I want to take a very quick second to go over what a copy is. 3 00:00:12,710 --> 00:00:19,370 So I've already set up our our example and said, let X equal one, let Y equals X, and then we're 4 00:00:19,370 --> 00:00:21,440 going to print out the values of X and Y. 5 00:00:23,190 --> 00:00:29,130 And do you think that this example is going to work based on everything that we have talked about leading 6 00:00:29,130 --> 00:00:29,970 up to this point? 7 00:00:30,890 --> 00:00:32,270 Well, it does. 8 00:00:32,270 --> 00:00:35,990 And you can see here that X equals one and Y equals one. 9 00:00:36,710 --> 00:00:38,180 But why does this work? 10 00:00:38,330 --> 00:00:45,560 Well, earlier on in these lectures, I was very careful to say that most types implement a move. 11 00:00:46,850 --> 00:00:49,370 Some implement what is known as a copy. 12 00:00:50,360 --> 00:00:56,960 And a copy is going to be implemented on types that are already stored on the stack such as an integer, 13 00:00:56,960 --> 00:01:06,610 boolean float or a tuple can also have the copy trait if every value it contains implements copy. 14 00:01:06,620 --> 00:01:11,840 So I just wanted to point this out because we have done this before and I just wanted to make sure it 15 00:01:11,840 --> 00:01:18,230 was clear as to why we're able to do it with some types but not others. 16 00:01:19,410 --> 00:01:26,280 But after this, we're going to get get back into looking into moves a bit more and trying to understand 17 00:01:26,280 --> 00:01:28,200 this ownership concept. 18 00:01:29,200 --> 00:01:30,520 To the best of our ability.