1 00:00:06,930 --> 00:00:10,320 - Welcome to Module 2: Rust Ownership and Borrowing. 2 00:00:10,320 --> 00:00:12,210 This is an area where Rust differs 3 00:00:12,210 --> 00:00:13,920 from most other languages. 4 00:00:13,920 --> 00:00:16,050 The Rust compiler is very strict 5 00:00:16,050 --> 00:00:19,230 about what happens when you assign one variable to another. 6 00:00:19,230 --> 00:00:21,720 It defines rules about how data is copied 7 00:00:21,720 --> 00:00:23,670 or moved between objects 8 00:00:23,670 --> 00:00:27,480 and how you can reference these objects safely in your code 9 00:00:27,480 --> 00:00:30,330 without having to use low-level pointers. 10 00:00:30,330 --> 00:00:32,490 The motivation is to avoid some of the pitfalls 11 00:00:32,490 --> 00:00:36,360 and errors that are common in C and C++. 12 00:00:36,360 --> 00:00:38,820 This is incredibly important 13 00:00:38,820 --> 00:00:42,213 so we'll discuss the rules carefully and systematically.