Rust's compiler has several handy features to make documenting your project quick and easy. You can use compiler lints to enforce documentation for each function, and have tests built in to your examples.
Ownership is one of the most important concepts in Rust, and it's something that isn't present in most other languages. The idea that a value can be owned by a particular variable is often quite difficult to understand, especially in languages where copying is implicit, but this section will review the different ideas surrounding ownership.
Rust is object oriented in that its algebraic data types can have associated methods, making them objects in the sense of data stored along with code that knows how to work with it.
Rust does not, however, support inheritance, favoring composition with Traits. This means many OO patterns don't work as-is and must be modified. Some are totally irrelevant.
Result<T, E> values to indicate recoverable errors during execution. Unrecoverable errors cause Panics which is a topic of its own.
Operators and Overloading
Most operators in Rust can be defined ("overloaded") for user-defined types. This can be achieved by implementing the respective trait in
Iron Web Framework
Iron is a popular web framework for Rust (based on the lower-level Hyper library) which promotes the idea of extensibility through middleware. Much of the functionality needed to create a useful website can be found in Iron's middleware rather than the library itself.