SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
hit.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
13#pragma once
14
15#include <variant>
16
21
22namespace seqan3::search_cfg
23{
24
31{
32public:
36 constexpr hit_all() = default;
37 constexpr hit_all(hit_all const &) = default;
38 constexpr hit_all(hit_all &&) = default;
39 constexpr hit_all & operator=(hit_all const &) = default;
40 constexpr hit_all & operator=(hit_all &&) = default;
41 ~hit_all() = default;
42
44
48};
49
56{
57public:
61 constexpr hit_all_best() = default;
62 constexpr hit_all_best(hit_all_best const &) = default;
63 constexpr hit_all_best(hit_all_best &&) = default;
64 constexpr hit_all_best & operator=(hit_all_best const &) = default;
65 constexpr hit_all_best & operator=(hit_all_best &&) = default;
66 ~hit_all_best() = default;
67
69
73};
74
81{
82public:
86 constexpr hit_single_best() = default;
87 constexpr hit_single_best(hit_single_best const &) = default;
88 constexpr hit_single_best(hit_single_best &&) = default;
89 constexpr hit_single_best & operator=(hit_single_best const &) = default;
90 constexpr hit_single_best & operator=(hit_single_best &&) = default;
91 ~hit_single_best() = default;
92
94
98};
99
107{
108public:
110 uint8_t stratum{};
111
115 constexpr hit_strata() = default;
116 constexpr hit_strata(hit_strata const &) = default;
117 constexpr hit_strata(hit_strata &&) = default;
118 constexpr hit_strata & operator=(hit_strata const &) = default;
119 constexpr hit_strata & operator=(hit_strata &&) = default;
120 ~hit_strata() = default;
121
125 hit_strata(uint32_t stratum) : stratum{static_cast<uint8_t>(stratum)}
126 {}
128
132};
133
140{
141public:
148
152 hit() = default;
153 hit(hit const &) = default;
154 hit(hit &&) = default;
155 hit & operator=(hit const &) = default;
156 hit & operator=(hit &&) = default;
157 ~hit() = default;
158
169 template <typename hit_config_t>
170 requires pack_traits::contains<hit_config_t, hit_all, hit_all_best, hit_single_best, hit_strata>
171 explicit hit(hit_config_t hit_config) noexcept : hit_variant{std::move(hit_config)}
172 {}
173
175 template <typename hit_config_t>
176 requires pack_traits::contains<hit_config_t, hit_all, hit_all_best, hit_single_best, hit_strata>
177 hit & operator=(hit_config_t hit_config) noexcept
178 {
179 hit_variant = std::move(hit_config);
180 return *this;
181 }
183
186
190};
191
192} // namespace seqan3::search_cfg
Configuration element to receive all hits with the lowest number of errors within the error bounds.
Definition hit.hpp:56
constexpr hit_all_best(hit_all_best const &)=default
Defaulted.
constexpr hit_all_best(hit_all_best &&)=default
Defaulted.
constexpr hit_all_best()=default
Defaulted.
~hit_all_best()=default
Defaulted.
constexpr hit_all_best & operator=(hit_all_best const &)=default
Defaulted.
constexpr hit_all_best & operator=(hit_all_best &&)=default
Defaulted.
Configuration element to receive all hits within the error bounds.
Definition hit.hpp:31
constexpr hit_all & operator=(hit_all const &)=default
Defaulted.
constexpr hit_all & operator=(hit_all &&)=default
Defaulted.
constexpr hit_all()=default
Defaulted.
constexpr hit_all(hit_all &&)=default
Defaulted.
constexpr hit_all(hit_all const &)=default
Defaulted.
~hit_all()=default
Defaulted.
Configuration element to receive a single best hit with the lowest number of errors within the error ...
Definition hit.hpp:81
constexpr hit_single_best & operator=(hit_single_best const &)=default
Defaulted.
~hit_single_best()=default
Defaulted.
constexpr hit_single_best()=default
Defaulted.
constexpr hit_single_best(hit_single_best &&)=default
Defaulted.
constexpr hit_single_best(hit_single_best const &)=default
Defaulted.
constexpr hit_single_best & operator=(hit_single_best &&)=default
Defaulted.
Configuration element to receive all hits with the best number of errors plus the given stratum....
Definition hit.hpp:107
constexpr hit_strata(hit_strata const &)=default
Defaulted.
constexpr hit_strata(hit_strata &&)=default
Defaulted.
constexpr hit_strata & operator=(hit_strata &&)=default
Defaulted.
constexpr hit_strata & operator=(hit_strata const &)=default
Defaulted.
uint8_t stratum
The stratum value [default: 0].
Definition hit.hpp:110
constexpr hit_strata()=default
Defaulted.
~hit_strata()=default
Defaulted.
hit_strata(uint32_t stratum)
Initialises the strata config.
Definition hit.hpp:125
A dynamic configuration element to configure the hit strategy at runtime.
Definition hit.hpp:140
hit & operator=(hit &&)=default
Defaulted.
hit(hit &&)=default
Defaulted.
hit(hit_config_t hit_config) noexcept
Sets the given configuration element to the dynamic hit configuration element.
Definition hit.hpp:171
hit_variant_type hit_variant
A std::variant over the valid hit configuration elements.
Definition hit.hpp:185
~hit()=default
Defaulted.
hit(hit const &)=default
Defaulted.
hit & operator=(hit const &)=default
Defaulted.
hit()=default
Defaulted.
hit & operator=(hit_config_t hit_config) noexcept
Sets the given configuration element to the dynamic hit configuration element.
Definition hit.hpp:177
Provides seqan3::detail::empty_type.
search_config_id
Specifies an id for every configuration element.
Definition search/configuration/detail.hpp:40
@ hit
Identifier for the hit configuration (all, all_best, single_best, strata).
A special sub namespace for the search configurations.
Provides seqan3::pipeable_config_element.
Provides compatibility matrix for search configurations.
Adds pipe interface to configuration elements.
Definition pipeable_config_element.hpp:29
Provides various traits for template packs.
Hide me