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

A lot of the main function work is just repetition for you from the last few chapters. The real deal happens below it. In encode_bytes, you can see how to use encoders. You can write to it as much as you want and call finish when you're done.

flate2 gives you several compression options. You can choose your compression strength through the passed Compression instance:

let mut encoder = ZlibEncoder::new(Vec::new(), Compression::Default);

Default is a compromise between speed and size. Your other options are Best, Fast, and None. Additionally, you can specify the encoding algorithm used. flate2 supports zlib, which we use in this recipe, gzip, and plain deflate. If you want to use an algorithm other than zlib, simply replace every mention of it with another supported algorithm. For instance, if you wanted to rewrite the preceding code to use gzip instead, it would look like this:

use flate2::write::GzEncoder;
let mut encoder = GzEncoder::new(Vec::new(), Compression:...