<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: xavier2code</title>
    <description>The latest articles on DEV Community by xavier2code (@xavier2code).</description>
    <link>https://dev.to/xavier2code</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2289866%2F15d42a21-e4db-4022-a8a3-31ca5feed172.png</url>
      <title>DEV Community: xavier2code</title>
      <link>https://dev.to/xavier2code</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xavier2code"/>
    <language>en</language>
    <item>
      <title>Daliy.rust day 3</title>
      <dc:creator>xavier2code</dc:creator>
      <pubDate>Tue, 05 Nov 2024 02:36:22 +0000</pubDate>
      <link>https://dev.to/xavier2code/daliyrust-day-3-2bc6</link>
      <guid>https://dev.to/xavier2code/daliyrust-day-3-2bc6</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// In general, the `{}` will be automatically replaced with any&lt;/span&gt;
    &lt;span class="c1"&gt;// arguments. These will be stringified.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{} days"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Positional arguments can be used. Specifying an integer inside `{}`&lt;/span&gt;
    &lt;span class="c1"&gt;// determines which additional argument will be replaced. Arguments start&lt;/span&gt;
    &lt;span class="c1"&gt;// at 0 immediately after the format string.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{0}, this is {1}. {1}, this is {0}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Bob"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// As can named arguments.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{subject} {verb} {object}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"the lazy dog"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"the quick brown fox"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="n"&gt;verb&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"jumps over"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Different formatting can be invoked by specifying the format character&lt;/span&gt;
    &lt;span class="c1"&gt;// after a `:`.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Base 10:               {}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="mi"&gt;69420&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 69420&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Base 2 (binary):       {:b}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;69420&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10000111100101100&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Base 8 (octal):        {:o}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;69420&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 207454&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Base 16 (hexadecimal): {:x}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;69420&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10f2c&lt;/span&gt;

    &lt;span class="c1"&gt;// You can right-justify text with a specified width. This will&lt;/span&gt;
    &lt;span class="c1"&gt;// output "    1". (Four white spaces and a "1", for a total width of 5.)&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{number:&amp;gt;5}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// You can pad numbers with extra zeroes,&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{number:0&amp;gt;5}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 00001&lt;/span&gt;
    &lt;span class="c1"&gt;// and left-adjust by flipping the sign. This will output "10000".&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{number:0&amp;lt;5}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10000&lt;/span&gt;

    &lt;span class="c1"&gt;// You can use named arguments in the format specifier by appending a `$`.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{number:0&amp;gt;width$}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Rust even checks to make sure the correct number of arguments are used.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"My name is {0}, {1} {0}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Bond"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// FIXME ^ Add the missing argument: "James"&lt;/span&gt;

    &lt;span class="c1"&gt;// Only types that implement fmt::Display can be formatted with `{}`. User-&lt;/span&gt;
    &lt;span class="c1"&gt;// defined types do not implement fmt::Display by default.&lt;/span&gt;

    &lt;span class="nd"&gt;#[allow(dead_code)]&lt;/span&gt; &lt;span class="c1"&gt;// disable `dead_code` which warn against unused module&lt;/span&gt;
    &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nf"&gt;Structure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;i32&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// This will not compile because `Structure` does not implement&lt;/span&gt;
    &lt;span class="c1"&gt;// fmt::Display.&lt;/span&gt;
    &lt;span class="c1"&gt;// println!("This struct `{}` won't print...", Structure(3));&lt;/span&gt;
    &lt;span class="c1"&gt;// TODO ^ Try uncommenting this line&lt;/span&gt;

    &lt;span class="c1"&gt;// For Rust 1.58 and above, you can directly capture the argument from a&lt;/span&gt;
    &lt;span class="c1"&gt;// surrounding variable. Just like the above, this will output&lt;/span&gt;
    &lt;span class="c1"&gt;// "    1", 4 white spaces and a "1".&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;f64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;usize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{number:&amp;gt;width$}"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rust</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Daily.rust day 2</title>
      <dc:creator>xavier2code</dc:creator>
      <pubDate>Tue, 05 Nov 2024 02:34:54 +0000</pubDate>
      <link>https://dev.to/xavier2code/dailyrust-day-2-48gm</link>
      <guid>https://dev.to/xavier2code/dailyrust-day-2-48gm</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// This is an example of a line comment.&lt;/span&gt;
    &lt;span class="c1"&gt;// There are two slashes at the beginning of the line.&lt;/span&gt;
    &lt;span class="c1"&gt;// And nothing written after these will be read by the compiler.&lt;/span&gt;

    &lt;span class="c1"&gt;// println!("Hello, world!");&lt;/span&gt;

    &lt;span class="c1"&gt;// Run it. See? Now try deleting the two slashes, and run it again.&lt;/span&gt;

    &lt;span class="cm"&gt;/*
     * This is another type of comment, a block comment. In general,
     * line comments are the recommended comment style. But block comments
     * are extremely useful for temporarily disabling chunks of code.
     * /* Block comments can be /* nested, */ */ so it takes only a few
     * keystrokes to comment out everything in this main() function.
     * /*/*/* Try it yourself! */*/*/
     */&lt;/span&gt;

    &lt;span class="cm"&gt;/*
    Note: The previous column of `*` was entirely for style. There's
    no actual need for it.
    */&lt;/span&gt;

    &lt;span class="c1"&gt;// You can manipulate expressions more easily with block comments&lt;/span&gt;
    &lt;span class="c1"&gt;// than with line comments. Try deleting the comment delimiters&lt;/span&gt;
    &lt;span class="c1"&gt;// to change the result:&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="cm"&gt;/* 90 + */&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Is `x` 10 or 100? x = {}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rust</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Daily.rust day 1</title>
      <dc:creator>xavier2code</dc:creator>
      <pubDate>Tue, 05 Nov 2024 02:33:12 +0000</pubDate>
      <link>https://dev.to/xavier2code/dailyrust-day-1-445c</link>
      <guid>https://dev.to/xavier2code/dailyrust-day-1-445c</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This is a comment, and is ignored by the compiler.&lt;/span&gt;
&lt;span class="c1"&gt;// You can test this code by clicking the "Run" button over there -&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;// or if you prefer to use your keyboard, you can use the "Ctrl + Enter"&lt;/span&gt;
&lt;span class="c1"&gt;// shortcut.&lt;/span&gt;

&lt;span class="c1"&gt;// This code is editable, feel free to hack it!&lt;/span&gt;
&lt;span class="c1"&gt;// You can always return to the original code by clicking the "Reset" button -&amp;gt;&lt;/span&gt;

&lt;span class="c1"&gt;// This is the main function.&lt;/span&gt;
&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Statements here are executed when the compiled binary is called.&lt;/span&gt;

    &lt;span class="c1"&gt;// Print text to the console.&lt;/span&gt;
    &lt;span class="nd"&gt;println!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rust</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Ownership</title>
      <dc:creator>xavier2code</dc:creator>
      <pubDate>Mon, 28 Oct 2024 02:54:09 +0000</pubDate>
      <link>https://dev.to/xavier2code/ownership-3o31</link>
      <guid>https://dev.to/xavier2code/ownership-3o31</guid>
      <description>&lt;p&gt;Ownership is Rust's most unique feature and has deep implications for the rest of the language. it enables Rust to make memory safety guarantees without needing a garbage collector.&lt;/p&gt;

&lt;p&gt;Ownership is a set of rules that govern how a Rust program manages memory. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each value in Rust has an owner.&lt;/li&gt;
&lt;li&gt;There can only be one owner at a time.&lt;/li&gt;
&lt;li&gt;When the owner goes out of scope, the value will be dropped.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>rust</category>
    </item>
  </channel>
</rss>
