
// 
// The encoder/decoder tables for all ezpwd::serialize::... base<N> codecs
// 
//     Must be included in exactly one C++ compilation unit.
// 

#ifndef _EZPWD_SERIALIZE_DEFINITIONS
#define _EZPWD_SERIALIZE_DEFINITIONS

#include "serialize"

// 
// base<16> tables for RFC4864 standard
// 
const constexpr std::array<char,16>
			ezpwd::serialize::hex<16>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::hex<16>::decoder;

// 
// base<32> tables for RFC4864 standard, and the Hex32, EZPWD and Crockford codecs
// 
const constexpr std::array<char,32>
			ezpwd::serialize::hex<32>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::hex<32>::decoder;
const constexpr std::array<char,32>
			ezpwd::serialize::standard<32>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::standard<32>::decoder;
const constexpr std::array<char,32>
			ezpwd::serialize::ezpwd<32>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::ezpwd<32>::decoder;
const constexpr std::array<char,32>
			ezpwd::serialize::crockford<32>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::crockford<32>::decoder;

// 
// base<64> tables for RFC4864 standard (regular and url), and the EZPWD codecs
// 
const constexpr std::array<char,64>
			ezpwd::serialize::standard<64>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::standard<64>::decoder;
const constexpr std::array<char,64>
			ezpwd::serialize::standard_url<64>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::standard_url<64>::decoder;
const constexpr std::array<char,64>
			ezpwd::serialize::ezpwd<64>::encoder;
const constexpr std::array<char,127>
			ezpwd::serialize::ezpwd<64>::decoder;

#endif // _EZPWD_SERIALIZE_DEFINITIONS
