https://blog.0xshadow.dev/posts/coding-agent-in-rust/coding-agent-in-rust-introduction/