Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 2 additions & 36 deletions include/seqan3/search/dream_index/interleaved_bloom_filter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,47 +14,13 @@

#include <seqan3/contrib/sdsl-lite.hpp>
#include <seqan3/core/concept/cereal.hpp>
#include <seqan3/core/detail/strong_type.hpp>
//Todo: When removing, the contents of the following header can be moved into utility/bloom_filter/bloom_filter.hpp
#include <seqan3/utility/bloom_filter/bloom_filter_strong_types.hpp>

SEQAN3_DEPRECATED_HEADER("This header and its functionality is deprecated and will be removed in a future version of SeqAn. Please use the hibf-library (url: https://github.com/seqan/hibf) instead.");

namespace seqan3
{
//!\brief Determines if the Interleaved Bloom Filter is compressed.
//!\ingroup search_dream_index
enum data_layout : bool
{
uncompressed, //!< The Interleaved Bloom Filter is uncompressed.
compressed //!< The Interleaved Bloom Filter is compressed.
};

//!\brief A strong type that represents the number of bins for the seqan3::interleaved_bloom_filter.
//!\ingroup search_dream_index
struct bin_count : public detail::strong_type<size_t, bin_count, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_count, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the number of bits for each bin in the seqan3::interleaved_bloom_filter.
//!\ingroup search_dream_index
struct bin_size : public detail::strong_type<size_t, bin_size, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_size, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the number of hash functions for the seqan3::interleaved_bloom_filter.
//!\ingroup search_dream_index
struct hash_function_count : public detail::strong_type<size_t, hash_function_count, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, hash_function_count, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the bin index for the seqan3::interleaved_bloom_filter.
//!\ingroup search_dream_index
struct bin_index : public detail::strong_type<size_t, bin_index, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_index, detail::strong_type_skill::convert>::strong_type;
};

/*!\brief The IBF binning directory. A data structure that efficiently answers set-membership queries for multiple bins.
* \ingroup search_dream_index
Expand Down
6 changes: 5 additions & 1 deletion include/seqan3/utility/bloom_filter/bloom_filter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@

#pragma once

#include <seqan3/search/dream_index/interleaved_bloom_filter.hpp>
#include <seqan3/contrib/sdsl-lite.hpp>
#include <seqan3/core/concept/cereal.hpp>
//Todo: When removing search/dream_index/interleaved_bloom_filter.hpp, the contents of the following header can be
// moved into this file
#include <seqan3/utility/bloom_filter/bloom_filter_strong_types.hpp>

namespace seqan3
{
Expand Down
56 changes: 56 additions & 0 deletions include/seqan3/utility/bloom_filter/bloom_filter_strong_types.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
// SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
// SPDX-License-Identifier: BSD-3-Clause

/*!\file
* \author Enrico Seiler <enrico.seiler AT fu-berlin.de>
* \brief Provides strong types for the (Interleaved) Bloom Filter.
*/

#pragma once

#include <seqan3/core/detail/strong_type.hpp>

//Todo: When removing search/dream_index/interleaved_bloom_filter.hpp, the contents of this header can be moved
// into utility/bloom_filter/bloom_filter.hpp

namespace seqan3
{

//!\brief Determines if the Interleaved Bloom Filter is compressed.
//!\ingroup utility_bloom_filter
enum data_layout : bool
{
uncompressed, //!< The Interleaved Bloom Filter is uncompressed.
compressed //!< The Interleaved Bloom Filter is compressed.
};

//!\brief A strong type that represents the number of bins for the seqan3::interleaved_bloom_filter.
//!\ingroup utility_bloom_filter
struct bin_count : public detail::strong_type<size_t, bin_count, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_count, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the number of bits for each bin in the seqan3::interleaved_bloom_filter.
//!\ingroup utility_bloom_filter
struct bin_size : public detail::strong_type<size_t, bin_size, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_size, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the number of hash functions for the seqan3::interleaved_bloom_filter.
//!\ingroup utility_bloom_filter
struct hash_function_count : public detail::strong_type<size_t, hash_function_count, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, hash_function_count, detail::strong_type_skill::convert>::strong_type;
};

//!\brief A strong type that represents the bin index for the seqan3::interleaved_bloom_filter.
//!\ingroup utility_bloom_filter
struct bin_index : public detail::strong_type<size_t, bin_index, detail::strong_type_skill::convert>
{
using detail::strong_type<size_t, bin_index, detail::strong_type_skill::convert>::strong_type;
};

} // namespace seqan3