Understanding RAII
We can go one step further than simple destructors. We can create structs that can give the user temporary access to some resource or functionality and automatically revoke it again when the user is done. This concept is called RAII, which stands for Resource Acquisition Is Initialization. Or, in other words, the validity of a resource is tied to the lifetime of a variable.
How to do it...
Follow these steps:
Open the
Cargo.toml
file that was generated earlier for you.In the folder
bin
, create a file calledraii.rs
.Add the following code and run it with
cargo run --bin raii
:
1 use std::ops::Deref; 2 3 // This represents a low level, close to the metal OS feature that 4 // needs to be locked and unlocked in some way in order to be accessed 5 // and is usually unsafe to use directly 6 struct SomeOsSpecificFunctionalityHandle; 7 8 // This is a safe wrapper around the low level struct 9 struct SomeOsFunctionality<T> { 10 // The data variable...