@ekuber Disclaimer that I'm relatively new to rust. I usually use go as my "high level language", but sometime python, shell, typescript or scheme depending on the context.
In go interfaces are satisfied automatically, without a declaration, when you implement all the methods. Meaning you can print your types without #[derive(Debug)] and if you add a String() string method you can change how it prints automatically.
I also don't love some syntax choices like impl blocks.