| |
| |
| |
|
|
| #pragma once |
|
|
| #include <boost/icl/discrete_interval.hpp> |
| #include "common/common_types.h" |
| #include "common/logging/log.h" |
|
|
| namespace boost::serialization { |
|
|
| template <class Archive, class DomainT, ICL_COMPARE Compare> |
| void save(Archive& ar, const boost::icl::discrete_interval<DomainT, Compare>& obj, |
| const unsigned int file_version) { |
| ar << obj.lower(); |
| ar << obj.upper(); |
| ar << obj.bounds()._bits; |
| } |
|
|
| template <class Archive, class DomainT, ICL_COMPARE Compare> |
| void load(Archive& ar, boost::icl::discrete_interval<DomainT, Compare>& obj, |
| const unsigned int file_version) { |
| DomainT upper, lower; |
| boost::icl::bound_type bounds; |
| ar >> lower; |
| ar >> upper; |
| ar >> bounds; |
| obj = boost::icl::discrete_interval(lower, upper, boost::icl::interval_bounds(bounds)); |
| } |
|
|
| template <class Archive, class DomainT, ICL_COMPARE Compare> |
| void serialize(Archive& ar, boost::icl::discrete_interval<DomainT, Compare>& obj, |
| const unsigned int file_version) { |
| boost::serialization::split_free(ar, obj, file_version); |
| } |
|
|
| } |
|
|