diff --git a/src/shared_definitions.hpp b/src/shared_definitions.hpp index 82563db04..9caef16b7 100644 --- a/src/shared_definitions.hpp +++ b/src/shared_definitions.hpp @@ -237,7 +237,7 @@ using IndexSpec = fmindex_collection::occtable::interleavedEPR32V2::OccTable -using TCDStringSet = seqan3::concatenated_sequences; //TODO seqan3::concatenated_sequences +using TCDStringSet = seqan3::concatenated_sequences; template inline constexpr auto sbjTransView = []() @@ -276,6 +276,34 @@ constexpr auto redView = []() return views::dna_n_to_random; }(); +// ========================================================================== +// overload serialisation +// ========================================================================== + +namespace cereal +{ + +template + requires std::is_trivially_copyable_v +void save(cereal::BinaryOutputArchive & archive, std::vector const & vec) +{ + archive(static_cast(vec.size())); + archive(cereal::binary_data(vec.data(), vec.size() * sizeof(alph_t))); +} + +template + requires std::is_trivially_copyable_v +void load(cereal::BinaryInputArchive & archive, std::vector & vec) +{ + uint64_t s = 0; + archive(s); + + vec.resize(s); + archive(cereal::binary_data(vec.data(), s * sizeof(alph_t))); +} + +} // namespace cereal + // ========================================================================== // The index // ==========================================================================