Fading Coder

One Final Commit for the Last Sprint

Implementing Binary Trees, Tries, and Union-Find in Rust

Binary Tree Implemented with Option<Box<T>>. Box is a smart pointer that allocates on the heap, ideal for recursive types that would ohterwise have unbounded size. LeetCode often uses Option<Rc<RefCell<T>>>, which is quite bloated. #[derive(PartialEq)] enum ChildSide {...

Understanding Rust Crates, Packages, and Modules

In Rust, organizing code is achieved through a system of crates, packages, and modules, which bear similarities to concepts found in other programming languages like Java. A Rust executable program is fundamentally structured around the concept of a "crate." A crate serves as a compilation...

Logos vs Nom: Choosing a Lexical Analyzer for Rust

Logos is a high-performance lexical analyzer library for Rust, designed to tokenize input streams with minimal overhead and maximum clarity. It leverages Rust’s type system and macro expansion to generate efficient, compile-time optimized tokenizers using a declarative syntax. At its core, Logos def...

Debugging Rust Applications in VSCode Using CodeLLDB

To debug Rust programs in VSCode, the CodeLLDB extension prvoides robust support. Follow this setup guide to configure your debugging environment. Installing Required Components Open VSCode and navigate to the Extensions view (Ctrl+Shift+X) Search for and install the CodeLLDB extension Verify Rust i...

Understanding Rust Traits: Defining Shared Behavior Across Types

What Are Traits? Rust's trait system enables shared behavior across different types. While often compared to interfaces in languages like Java or C#, traits serve a broader purpose in Rust's type system. The official documentation notes this similarity while acknowledging important distinctions. Thi...

Rust Ownership Model and Function Parameters

Memory Storage and Variable Assignment Rust manages memory through two primary storage areas: Stack: Stores data with known size at compile time. This includes primitive types like integers, floats, booleans, characters, and tuples containing only these types. Stack follows FILO (First In, Last Out)...

Understanding the Box Smart Pointer in Rust

In Rust, the Box<T> type is the most fundamental smart pointer, providing a mechanism for heap allocation. Unlike primitive pointers, Box owns the data it points to, ensuring that memory is automatically deallocated when the Box goes out of scope. This ownership model makes Box a safe and effi...

Integrate Offline Search into Hugo Static Sites with INFINI Pizza WASM

Live implementations can be seen on the official INFINI Labs website. Simply press the s key to activate the search bar. All queries are processed locally using the embedded WASM module, ensuring instant responses and full functionality even without an internet connection. Getting Started with Pizza...

Implementing the À Trous Wavelet Transform for Multi-Scale Image Processing in Rust

Multi-Scale DecompositionMulti-scale analysis decomposes input data into multiple signals, each representing information at a specific scale. In image processing, a scale corresponds to the pixel dimensions of various structures or details. For instance, an astronomical photograph contains structure...

Understanding Generics in Rust

Generics in Rust enable writing code that works with multiple types without sacrificing performance or safety. If you're familiar with Java, C#, or C++, the concept is similar—though Rust's implementation has its own nuances. What Are Generics? Generics allow functions, structs, enums, and methods t...