<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Rust-Programming-Language%2FC2%2FOwnership%2FEnglish</id>
		<title>Rust-Programming-Language/C2/Ownership/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Rust-Programming-Language%2FC2%2FOwnership%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;action=history"/>
		<updated>2026-05-04T00:35:13Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;diff=57151&amp;oldid=prev</id>
		<title>Madhurig at 09:58, 7 October 2025</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;diff=57151&amp;oldid=prev"/>
				<updated>2025-10-07T09:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;amp;diff=57151&amp;amp;oldid=57127&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Madhurig</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;diff=57127&amp;oldid=prev</id>
		<title>Nirmala Venkat: Created page with &quot;{| border=&quot;1&quot; |- || '''Visual Cue''' || '''Narration''' |- || '''Slide 1''' || &lt;span style=&quot;color:#000000;&quot;&gt;Welcome to the Spoken Tutorial on &lt;/span&gt;&lt;span style=&quot;color:#000000...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Rust-Programming-Language/C2/Ownership/English&amp;diff=57127&amp;oldid=prev"/>
				<updated>2025-09-22T12:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| border=&amp;quot;1&amp;quot; |- || &amp;#039;&amp;#039;&amp;#039;Visual Cue&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Narration&amp;#039;&amp;#039;&amp;#039; |- || &amp;#039;&amp;#039;&amp;#039;Slide 1&amp;#039;&amp;#039;&amp;#039; || &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Welcome to the Spoken Tutorial on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|| '''Visual Cue'''&lt;br /&gt;
|| '''Narration'''&lt;br /&gt;
|-&lt;br /&gt;
|| '''Slide 1'''&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Welcome to the Spoken Tutorial on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Ownership&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;in&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Rust.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide 2'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Learning Objectives'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| In this tutorial, we will learn about:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Ownership&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Ownership Rules&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Drop and Copy &amp;lt;/span&amp;gt;traits&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide 3'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''System Requirements'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;To record this tutorial &amp;lt;/span&amp;gt;I am&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; using:&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Ubuntu Linux OS version 22.04&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Rust version 1.80.0 &amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Visual Studio Code v&amp;lt;/span&amp;gt;ersion&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; 1.19.0&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide 4'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Prerequisites'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;To follow this tutorial, you should be familiar with compiling and running a &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Rust'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; program.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''5'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Code Files'''&amp;lt;/div&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The following code file is required to practise this tutorial.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Ownership.rs&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;This file is provided in the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Code Files'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; link of this tutorial page.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide 6'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Ownership'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| Let us now learn about''' Ownership.'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Ownership'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; allows memory safety without a garbage collector.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#171717;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;It is a key feature of the Rust language that allows it to be both safe and fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide&amp;lt;/span&amp;gt; 7'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Ownership Rules'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Each value in Rust has a single owner&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;There can be only one owner at a time&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;When the owner goes out of scope the value will be dropped.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide&amp;lt;/span&amp;gt; 8'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Drop trait'''&amp;lt;/div&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
* &amp;lt;div style=&amp;quot;color:#000000;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;To understand the ownership rules, we need to note two traits: &amp;lt;/div&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''drop '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;and&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' copy'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;The&amp;lt;/span&amp;gt;se traits are &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;fundamental traits related to resource management and memory handling.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.101cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#000000;&amp;quot; | &lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Let us &amp;lt;/span&amp;gt;understand the '''drop'''&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; trait through an example.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Open &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Visual'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''code editor'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Open the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Visual &amp;lt;/span&amp;gt;S&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;tudio code editor.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;In the menu bar, click on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Terminal'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; and select&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' New Terminal'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;In the menu bar, click on &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Terminal'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; and select&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' New Terminal'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''&amp;gt; cd'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Desktop'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;/&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''MyRustProject'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''&amp;gt;'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''cargo new &amp;lt;/span&amp;gt;Ownership'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''In the menu bar, File &amp;gt;&amp;gt; Open folder &amp;gt;&amp;gt; Desktop &amp;gt;&amp;gt; MyRustProject &amp;gt;&amp;gt; Ownership'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Let us go to our working directory &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''MyRustProject'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; as explained earlier.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Type the command &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''cargo new Ownership&amp;lt;/span&amp;gt; '''&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;and press &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Enter.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Open the created project as shown.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Point to the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''main.rs'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; file.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;In the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;'''main.rs '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;file, copy and paste the code from the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;'''Code file'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;struct MyStruct {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;data: String,&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;//highlight impl Drop for MyStruct&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' '''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;impl Drop for MyStruct {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;fn drop(&amp;amp;mut self) {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;println!(&amp;quot;Dropping MyStruct with data: {}&amp;quot;, self.data);&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;fn main() {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;println!(&amp;quot;Start&amp;quot;);&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;{&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;let new_struct = MyStruct {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;data: String::from(&amp;quot;Hello, world!&amp;quot;),&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;};&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;println!(&amp;quot;End&amp;quot;);&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;// my_struct goes out of scope here, and the drop method is called.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
|| This code explains how '''ownership '''and''' Drop trait''' work together in Rust.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#000000;&amp;quot;&amp;gt;Here we &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;created a &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''struct'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''MyStruct'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; which contains data of &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''string'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; type&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;In the implementation block, &amp;lt;/span&amp;gt;the''' drop'''&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; trait for &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Mystruct'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; has been implemented.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;The drop method is automatically called when an object &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;goes out of scope.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;In the main program, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''new_struct'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; is created with &amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Hello, world!&amp;quot;'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; stored in its data.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Here, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''new_struct'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;owns &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;that string.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;At the end of the inner scope, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''new_struct '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;goes out of scope.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Rust &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;automatically calls&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''drop(&amp;amp;mut self)'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; for &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''new_struct.'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this code,''' drop''' happens before &amp;quot;End&amp;quot; is printed.&lt;br /&gt;
&lt;br /&gt;
This is because the '''struct’'''s scope ends earlier.&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Run the code to see the output.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Next, let us see an example of a &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''copy'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; trait.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Clear the code window and copy paste the code from the &amp;lt;/span&amp;gt;'''C&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;ode file'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;fn main() {&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;let x = 10;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;let y = x; // x is copied, not moved&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;println!(&amp;quot;x: {}, y: {}&amp;quot;, x, y); // x is still accessible&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;let s = String::from(&amp;quot;Hello world&amp;quot;);&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;let &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;v&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt; = s; // Move occurs, `s` is no longer valid&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;// println!(&amp;quot;{}&amp;quot;, s); // This would cause an error&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;Here, x is assigned a value 10, and y is assigned to variable x. &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;For simple types like i32, bool, char, etc., Rust &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''copies'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; the value instead of moving it.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;These data types are entirely stored on the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''stack. '''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;It has a fixed size known at compile time.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;After copying, both&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' x'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; and&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;''' y '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;hold the value 10.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;But for the string, the variable &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;''s''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt; is assigned the value “Hello World!”.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Variable '''v '''is assigned to '''s.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;Here, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;copy doesn’t happen because of &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''String'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt; being an owned type. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;This fails because after the move, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''s '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;no longer owns any valid data.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Rust’s compiler prevents you from using &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''s '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;here.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;Hence it would show an error.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#000000;&amp;quot; | &lt;br /&gt;
|| Run the code to see the output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;We can see the copy trait is implemented by default for &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''integer'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;For string type we &amp;lt;/span&amp;gt;get&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt; an error.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;Types like &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''String'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt; or other heap-allocated structures do not implement &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''Copy'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt; by default.&amp;lt;/span&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;let t = s.clone(); // deep copy of the string data&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;println!(&amp;quot;s: {}, &amp;lt;/span&amp;gt;v&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;: {}&amp;quot;, s, &amp;lt;/span&amp;gt;v&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;); // both accessible&amp;lt;/span&amp;gt;&lt;br /&gt;
|| We can use the '''clone''' method to solve this issue.&lt;br /&gt;
&lt;br /&gt;
Let's add the clone method as '''s.clone() '''in the code.&lt;br /&gt;
&lt;br /&gt;
'''.clone() '''makes an '''explicit''' deep copy of the heap data.&lt;br /&gt;
&lt;br /&gt;
Change the print statement to print '''s '''and''' v .'''&lt;br /&gt;
&lt;br /&gt;
Save the program.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#000000;&amp;quot; | &lt;br /&gt;
|| Run the code to see the correct output.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide &amp;lt;/span&amp;gt;9'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Summary'''&amp;lt;/span&amp;gt;&lt;br /&gt;
|| &amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;This brings us to the end of this tutorial.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;Let us summarize. &amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide &amp;lt;/span&amp;gt;10'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Assignment'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| As an assignment. write a program that:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Creates a String variable called '''greeting''' with the value &amp;quot;Hello, Rust!&amp;quot;.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Passes it to a function '''takes_ownership''' that prints the value.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Inside this function, remember that ownership is moved.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| &amp;lt;span style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Slide &amp;lt;/span&amp;gt;11'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#000000;&amp;quot;&amp;gt;'''Thank You'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|| Thank you for joining&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:-1.588cm;margin-right:-1.429cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	</feed>