macro in Rust

Rust provides a powerful macro system that allows meta-programming. Macros look like functions, except that their name ends with a bang(!), but instead of generating a function call, macros are expanded into source code that gets compiled with the rest of the program. Therefore, they provide more runtime features to a program unlike functions. 
```
println!("hello ");//prints hello
```