generic IEnumConstant protocol