The HR_ENUM(...) macro which is used to declare smart enums. Smart enum consists of two entities: a plain C enum and an Objective-C class representing the same enum. This macro declares both of these ...