<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Basics on m58 | DevSecOps &amp; Pentest</title><link>https://0xm58.xyz/tags/basics/</link><description>Recent content in Basics on m58 | DevSecOps &amp; Pentest</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 19 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://0xm58.xyz/tags/basics/index.xml" rel="self" type="application/rss+xml"/><item><title>Rust basics: Option and Result</title><link>https://0xm58.xyz/posts/rust-option-and-result/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-option-and-result/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Rust does not use &lt;code&gt;null&lt;/code&gt; for ordinary absence, and it does not rely on exceptions for recoverable errors. Instead, it uses enums: &lt;code&gt;Option&amp;lt;T&amp;gt;&lt;/code&gt; and &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;/code&gt;.
&lt;/div&gt;

&lt;p&gt;These two types show up everywhere. If you understand them early, a lot of Rust APIs stop looking strange.&lt;/p&gt;</description></item><item><title>Rust basics: ownership and borrowing</title><link>https://0xm58.xyz/posts/rust-ownership-and-borrowing/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-ownership-and-borrowing/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Ownership is the idea that makes Rust feel different from most mainstream languages. If this part stays fuzzy, the rest of the language keeps feeling arbitrary.
&lt;/div&gt;

&lt;p&gt;The short version is simple:&lt;/p&gt;</description></item><item><title>Rust basics: strings, vectors, and slices</title><link>https://0xm58.xyz/posts/rust-strings-vectors-and-slices/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-strings-vectors-and-slices/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Many beginner Rust questions are really collection questions in disguise. Most of them come down to four types: &lt;code&gt;String&lt;/code&gt;, &lt;code&gt;&amp;amp;str&lt;/code&gt;, &lt;code&gt;Vec&amp;lt;T&amp;gt;&lt;/code&gt;, and slices like &lt;code&gt;&amp;amp;[T]&lt;/code&gt;.
&lt;/div&gt;

&lt;p&gt;These types are connected. If you learn them together, Rust&amp;rsquo;s API style becomes much easier to read.&lt;/p&gt;</description></item><item><title>Rust basics: control flow</title><link>https://0xm58.xyz/posts/rust-control-flow/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-control-flow/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Rust control flow is more than branching and loops. The important part is that many control-flow forms are expressions, which means they produce values.
&lt;/div&gt;

&lt;p&gt;That design shows up everywhere in day-to-day Rust. It makes code concise, but it also forces you to be explicit about the shapes of the values you return.&lt;/p&gt;</description></item><item><title>Rust basics: functions and types</title><link>https://0xm58.xyz/posts/rust-functions-and-types/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-functions-and-types/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Rust functions are explicit at the boundary and flexible inside the body. You spell out parameter and return types, then let inference do most of the local work.
&lt;/div&gt;

&lt;p&gt;That balance is one of Rust&amp;rsquo;s better design choices. Signatures stay readable, but the code inside them does not turn into annotation noise.&lt;/p&gt;</description></item><item><title>Rust basics: let, mut, and shadowing</title><link>https://0xm58.xyz/posts/rust-let-mut-shadowing/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-let-mut-shadowing/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Rust variables are really bindings. Once that clicks, &lt;code&gt;let&lt;/code&gt;, &lt;code&gt;mut&lt;/code&gt;, and shadowing stop feeling like syntax trivia and start feeling like design choices.
&lt;/div&gt;

&lt;p&gt;Rust pushes you toward immutability by default. That is not just style. It reduces accidental state changes and makes data flow easier to follow.&lt;/p&gt;</description></item><item><title>Rust basics: structs and enums</title><link>https://0xm58.xyz/posts/rust-structs-and-enums/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>https://0xm58.xyz/posts/rust-structs-and-enums/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
 Structs and enums are the core of Rust data modeling. Structs group fields together. Enums describe a value that can be one of several well-defined variants.
&lt;/div&gt;

&lt;p&gt;If you are coming from languages where data modeling is mostly &amp;ldquo;objects everywhere&amp;rdquo;, Rust feels different at first. It prefers explicit data shapes plus separate behavior.&lt;/p&gt;</description></item></channel></rss>