Chapter 13: Advanced Macro Usages

In the last few chapters, we have looked at various metaprogramming concepts, such as macros, annotations, and how they can be used together to allow for introspecting types, methods, and instance variables at compile time. However, for the most part, we used them independently. These concepts can also be combined in order to allow for the creation of even more powerful patterns! In this chapter, we are going to explore a few of these, including:

  • Using annotations to influence runtime logic
  • Exposing annotation/type data at runtime
  • Determining a constant's value at compile time
  • Creating custom compile-time errors

By the end of this chapter, you should have a deeper understanding of metaprogramming in Crystal. ...

Get Crystal Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.