Macros are like functions but only better. They are triggered based on their patterns using pattern matching for declarative Macros. They group together our codes into a unit (or units) and there are 2 types of macros in Rust – declarative and procedural. This brief post is about declarative macros.