Type definitions for the different kinds of encoders supported. Used as template specialization parameters when constructing encoders.