/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * 
 * serialization.h
 *
 *  Created on: 03/13. 2016
 *      Author: pgess <v.melnychenko@xreate.org>
 */

/**
 * \file    
 * \brief   Serialization: mechanism to represent expressions in compact form for efficient processing
 */

#ifndef SRC_SERIALIZATION_SERIALIZATION_H_
#define SRC_SERIALIZATION_SERIALIZATION_H_

#include "aux/serialization/expressionserializer.h"

namespace xreate {
struct RequirementIntegralCode{};

template<class Requirements=void>
struct ExpressionSerialization {
	typedef PackedExpression Code;
	typedef ExpressionSerializer Serializer;
};

template<>
struct ExpressionSerialization<RequirementIntegralCode>{
	typedef size_t Code;
	typedef ExpressionSerializerIntegral Serializer;
};
}


#endif /* SRC_SERIALIZATION_SERIALIZATION_H_ */
