108640 Views
83860 Views
59555 Views
48723 Views
48311 Views
47806 Views
Build a laser-cut robot
Robots and Lasers
Arduino Plug and Make Kit Review
Pi to Pico W Bluetooth Communication
Two-Way Bluetooth Communication Between Raspberry Pi Picos
Gamepad 2
Introduction to the Linux Command Line on Raspberry Pi OS
How to install MicroPython
Wall Drawing Robot Tutorial
BrachioGraph Tutorial
Intermediate level MicroPython
Introduction to FreeCAD for Beginners
KevsRobots Learning Platform
35% Percent Complete
By Kevin McAleer, 2 Minutes
Structs and enums are the building blocks for creating new types in Rust’s type system. While structs allow you to create custom types that group related data together, enums enable you to define a type by enumerating its possible variants. This lesson explores how to define and use structs and enums, and introduces pattern matching.
In Rust, a struct is a way to group related data together into a meaningful composite type. Each piece of data in the struct is called a ‘field’. Structs are similar to tuples, but each field has a name, providing more clarity.
struct User { username: String, email: String, sign_in_count: u64, active: bool, }
Enums in Rust are types that can encompass different ‘variants’. Enums are particularly useful for defining a type which could be one of a few different variants. Combined with Rust’s pattern matching, enums are powerful for handling different scenarios.
enum Message { Quit, Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32), } let msg = Message::Write(String::from("hello"));
Pattern matching in Rust allows you to compare a value against a series of patterns and execute code based on which pattern matches. It can be used with enums to handle different scenarios:
match msg { Message::Quit => { println!("The Quit variant has no data to destructure."); }, Message::Move { x, y } => { println!("Move in the x direction {} and in the y direction {}", x, y); }, Message::Write(text) => { println!("Text message: {}", text); }, Message::ChangeColor(r, g, b) => { println!("Change the color to red {}, green {}, and blue {}", r, g, b); }, }
In this lesson, you learned about struct and enum types in Rust, how to define them, and how to use them in conjunction with pattern matching to handle different kinds of data and control flow in a type-safe way.
< Previous Next >