pub(crate) fn main() -> Result<()>
This is the starting point of the app. main is called by rust binaries to run the program in this case, we use tokio (a reactor) to allow us to use an async function run.
main
async