Instead, Rust have added functionality that allows you to write your code and then choose which runtime to use, which is great as it allows you to write the code the same way for all types of platforms and if you for example want to change from using async-std to tokio as async runtime, is this done quite easy with often minimal changes. enum Color { Rgb ( i32 , i32 , i32 ) , Hsv ( i32 , i32 , i32 ) , } enum Message { Quit , Move { x : i32 , y : i32 } , Write ( String ) , ChangeColor ( Color ) , } fn main ( ) { let msg = Message :: ChangeColor ( Color :: Hsv ( 0 , 160 , 255 ) ) ; match msg { Message :: ChangeColor ( Color :: Rgb ( r , g , b ) ) => { println!