
#ifndef CONTEXT_SWITCHER_CONTEXT_H_
#define CONTEXT_SWITCHER_CONTEXT_H_

#ifdef CS_USE_CSCONTEXT
#include "cscontext.h"
#else
#include "fcontext.h"
#endif

/**
 * Picks the correct context switch implementation
 * selected by the build system/configuration.
 */
namespace context_switcher {

#ifdef CS_USE_CSCONTEXT
using continuation_t = cscontext::continuation_t;
using stack_pointer_t = cscontext::stack_pointer_t;
using callback_t = cscontext::callback_t;
#else
using continuation_t = fcontext::continuation_t;
using stack_pointer_t = fcontext::stack_pointer_t;
using callback_t = fcontext::callback_t;
#endif

}

#endif //CONTEXT_SWITCHER_CONTEXT_H_
