Book Image

Rust Standard Library Cookbook

By : Jan Hohenheim, Daniel Durante
Book Image

Rust Standard Library Cookbook

By: Jan Hohenheim, Daniel Durante

Overview of this book

Mozilla’s Rust is gaining much attention with amazing features and a powerful library. This book will take you through varied recipes to teach you how to leverage the Standard library to implement efficient solutions. The book begins with a brief look at the basic modules of the Standard library and collections. From here, the recipes will cover packages that support file/directory handling and interaction through parsing. You will learn about packages related to advanced data structures, error handling, and networking. You will also learn to work with futures and experimental nightly features. The book also covers the most relevant external crates in Rust. By the end of the book, you will be proficient at using the Rust Standard library.
Table of Contents (12 chapters)

How it works...

As of the time of writing, there are four atomic types in the standard library under the std::sync::atomic module: AtomicBool, AtomicIsize, AtomicUsize, and AtomicPtr. Each one of them represents a primitive type, namely bool, isize, usize, and *mut. We are not going to look at the last, which, being a pointer, you will probably only have to deal with when interfacing with programs written in other languages anyways.

In case you haven't encountered isize and usize before, they are representations of the smallest amount of bytes needed to address any part of the memory of your machine. On 32-bit targets this is 4 bytes, while 64-bit systems will need 8 bytes. isize uses those bytes to represent a signed number, as in an integer that can be negative. usize instead represents an unsigned number, which can only be positive but has a lot more capacity for huge numbers in that direction. They are usually used when dealing with collections capacities. For example, Vec...