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...

Most of the interface of VecDeque is identical to Vec. You can even optimize them the same way with with_capacity and its swap_remove equivalents. The differences come from the fact that VecDeque is more oriented around access from both ends. As such, multiple methods from Vec that implicitly affect the last element have two equivalents in VecDeque: one for the front, and one for the back. These are:

  • push, which becomes push_front [46] and push_back [11]
  • pop, which becomes pop_front [16] and pop_back [55]
  • swap_remove, which becomes remove_front [78] and remove_back [73]

A VecDeque has the ability to freely append or remove elements from both ends in a performant way, which makes it an ideal candidate for a First In, First Out (FIFO) queue [24]. In fact, this is how it's nearly always used.

When you see yourself in a situation where you want to respond to any kind of requests in the order they arrive in and remove them again afterwards, a VecDeque is an ideal tool...