#ifdef	PARAMS_DECLARE_ENUM
#define param(_member, _default, _sym, _ctxt_type, _va_type)	\
	_sym,
#endif

#ifdef PARAMS_DECLARE_STRUCT
#define param(_member, _default, _sym, _ctxt_type, _va_type)	\
	_ctxt_type _member;
#endif

#ifdef PARAMS_IMPLEMENT_SWITCH
#define param(_member, _default, _sym, _ctxt_type, _va_type)		\
	case _sym:							\
		ctxt->_member = va_arg(params, _va_type);		\
		break;
#endif

#ifdef PARAMS_ASSIGN_DEFAULTS
#define param(_member, _default, _sym, _ctxt_type, _va_type)		\
	ctxt->_member = _default;
#endif
