-
Book Overview & Buying
-
Table Of Contents
Crystal Programming
By :
Simply put, an annotation is a way to attach metadata to certain features in the code that can subsequently be accessed at compile time within a macro. Crystal comes bundled with some built-in annotations that you may have already worked with, such as @[JSON::Field] or the @[Link] annotation, which was covered in Chapter 7, C Interoperability. While both of these annotations are included by default, they do differ in regard to their behavior. For example, the JSON::Field annotation exists in Crystal's standard library and is implemented/used in a way that you could replicate in your own code with your own annotation. The Link annotation, on the other hand, has a special relationship with the Crystal compiler and some of its behavior cannot be reproduced in user code.
Custom annotations can be defined via the annotation keyword:
annotation MyAnnotation; end
That is all there is to it. The annotation could then be applied to various items, including...