https://www.dailydishnews.org.uk/post/rust-guide-10-intro-ckbl0m