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

Rust's logging system is based on the log crate, which provides a common facade for all things logging. This means that it doesn't actually provide any functionality, just the interface. The implementation is left to other crates, env_logger in our case. This split into facade and implementation is pretty useful, as anyone can create a cool new way of logging stuff which is automatically compatible with any crate.

The choice of logging implementation used should be up to the consumer of your code. If you write a crate, don't use any implementation but simply log all things via the log crate only. Your (or someone else's) executable that uses the crate can then simply initialize their logger of choice[9] in order to actually process the log calls.

The log crate provides the log! macro[11], which accepts a log Level, a message that can be formatted the same way as in println!, and an optional target. You could log stuff like this, but it's more readable...