SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
hit.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, Knut Reinert & MPI für molekulare Genetik
4 // This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5 // shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
16 #pragma once
17 
18 #include <variant>
19 
24 
25 namespace seqan3::search_cfg
26 {
27 
32 class hit_all : public pipeable_config_element<hit_all>
33 {
34 public:
38  constexpr hit_all() = default;
39  constexpr hit_all(hit_all const &) = default;
40  constexpr hit_all(hit_all &&) = default;
41  constexpr hit_all & operator=(hit_all const &) = default;
42  constexpr hit_all & operator=(hit_all &&) = default;
43  ~hit_all() = default;
44 
48  static constexpr detail::search_config_id id{detail::search_config_id::hit};
49 };
50 
55 class hit_all_best : public pipeable_config_element<hit_all_best>
56 {
57 public:
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 
71  static constexpr seqan3::detail::search_config_id id{seqan3::detail::search_config_id::hit};
72 };
73 
78 class hit_single_best : public pipeable_config_element<hit_single_best>
79 {
80 public:
84  constexpr hit_single_best() = default;
85  constexpr hit_single_best(hit_single_best const &) = default;
86  constexpr hit_single_best(hit_single_best &&) = default;
87  constexpr hit_single_best & operator=(hit_single_best const &) = default;
88  constexpr hit_single_best & operator=(hit_single_best &&) = default;
89  ~hit_single_best() = default;
90 
94  static constexpr seqan3::detail::search_config_id id{seqan3::detail::search_config_id::hit};
95 };
96 
102 class hit_strata : public pipeable_config_element<hit_strata>
103 {
104 public:
106  uint8_t stratum{};
107 
111  constexpr hit_strata() = default;
112  constexpr hit_strata(hit_strata const &) = default;
113  constexpr hit_strata(hit_strata &&) = default;
114  constexpr hit_strata & operator=(hit_strata const &) = default;
115  constexpr hit_strata & operator=(hit_strata &&) = default;
116  ~hit_strata() = default;
117 
121  hit_strata(uint32_t stratum) : stratum{static_cast<uint8_t>(stratum)}
122  {}
124 
127  static constexpr detail::search_config_id id{detail::search_config_id::hit};
128 };
129 
134 class hit : public pipeable_config_element<hit>
135 {
136 public:
143 
147  hit() = default;
148  hit(hit const &) = default;
149  hit(hit &&) = default;
150  hit & operator=(hit const &) = default;
151  hit & operator=(hit &&) = default;
152  ~hit() = default;
153 
164  template <typename hit_config_t>
166  requires pack_traits::contains<hit_config_t, hit_all, hit_all_best, hit_single_best, hit_strata>
168  explicit hit(hit_config_t hit_config) noexcept : hit_variant{std::move(hit_config)}
169  {}
170 
172  template <typename hit_config_t>
174  requires pack_traits::contains<hit_config_t, hit_all, hit_all_best, hit_single_best, hit_strata>
176  hit & operator=(hit_config_t hit_config) noexcept
177  {
178  hit_variant = std::move(hit_config);
179  return *this;
180  }
182 
185 
188  static constexpr detail::search_config_id id{detail::search_config_id::hit};
189 };
190 
191 } // namespace seqan3::search_cfg
seqan3::search_cfg::hit_single_best
Configuration element to receive a single best hit with the lowest number of errors within the error ...
Definition: hit.hpp:79
seqan3::search_cfg::hit_strata
Configuration element to receive all hits with the best number of errors plus the given stratum....
Definition: hit.hpp:103
seqan3::search_cfg::hit::hit_variant
hit_variant_type hit_variant
A std::variant over the valid hit configuration elements.
Definition: hit.hpp:184
seqan3::search_cfg::hit_strata::~hit_strata
~hit_strata()=default
Defaulted.
seqan3::search_cfg::hit_single_best::hit_single_best
constexpr hit_single_best(hit_single_best &&)=default
Defaulted.
seqan3::search_cfg::hit_all_best::hit_all_best
constexpr hit_all_best(hit_all_best &&)=default
Defaulted.
seqan3::search_cfg::hit_single_best::~hit_single_best
~hit_single_best()=default
seqan3::search_cfg::hit_all::hit_all
constexpr hit_all(hit_all &&)=default
Defaulted.
seqan3::search_cfg::hit_all_best
Configuration element to receive all hits with the lowest number of errors within the error bounds.
Definition: hit.hpp:56
seqan3::search_cfg::hit_all::operator=
constexpr hit_all & operator=(hit_all const &)=default
Defaulted.
seqan3::search_cfg::hit_single_best::hit_single_best
constexpr hit_single_best()=default
Defaulted.
detail.hpp
Provides compatibility matrix for search configurations.
seqan3::search_cfg::hit_strata::hit_strata
hit_strata(uint32_t stratum)
Initialises the strata config.
Definition: hit.hpp:121
pipeable_config_element.hpp
Provides seqan3::pipeable_config_element.
seqan3::search_cfg::hit_all::hit_all
constexpr hit_all()=default
Defaulted.
seqan3::search_cfg::hit_all::hit_all
constexpr hit_all(hit_all const &)=default
Defaulted.
seqan3::search_cfg::hit_strata::operator=
constexpr hit_strata & operator=(hit_strata &&)=default
Defaulted.
seqan3::search_cfg
A special sub namespace for the search configurations.
seqan3::search_cfg::hit_strata::hit_strata
constexpr hit_strata()=default
Defaulted.
seqan3::search_cfg::hit_strata::operator=
constexpr hit_strata & operator=(hit_strata const &)=default
Defaulted.
seqan3::search_cfg::hit::hit
hit(hit_config_t hit_config) noexcept
Sets the given configuration element to the dynamic hit configuration element.
Definition: hit.hpp:168
seqan3::search_cfg::hit::operator=
hit & operator=(hit &&)=default
Defaulted.
seqan3::search_cfg::hit
A dynamic configuration element to configure the hit strategy at runtime.
Definition: hit.hpp:135
seqan3::search_cfg::hit_all::operator=
constexpr hit_all & operator=(hit_all &&)=default
Defaulted.
seqan3::views::move
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:68
seqan3::search_cfg::hit_strata::hit_strata
constexpr hit_strata(hit_strata &&)=default
Defaulted.
seqan3::search_cfg::hit::hit
hit(hit &&)=default
Defaulted.
seqan3::search_cfg::hit_all_best::hit_all_best
constexpr hit_all_best()=default
Defaulted.
seqan3::search_cfg::hit::operator=
hit & operator=(hit_config_t hit_config) noexcept
Sets the given configuration element to the dynamic hit configuration element.
Definition: hit.hpp:176
seqan3::search_cfg::hit_strata::stratum
uint8_t stratum
The stratum value [default: 0].
Definition: hit.hpp:106
seqan3::search_cfg::hit_all_best::operator=
constexpr hit_all_best & operator=(hit_all_best const &)=default
Defaulted.
seqan3::search_cfg::hit_single_best::operator=
constexpr hit_single_best & operator=(hit_single_best &&)=default
Defaulted.
seqan3::search_cfg::hit::hit
hit()=default
Defaulted.
seqan3::search_cfg::hit::operator=
hit & operator=(hit const &)=default
Defaulted.
seqan3::search_cfg::hit_single_best::hit_single_best
constexpr hit_single_best(hit_single_best const &)=default
Defaulted.
seqan3::search_cfg::hit_single_best::operator=
constexpr hit_single_best & operator=(hit_single_best const &)=default
Defaulted.
empty_type.hpp
Provides seqan3::detail::empty_type.
seqan3::search_cfg::hit_strata::hit_strata
constexpr hit_strata(hit_strata const &)=default
Defaulted.
seqan3::search_cfg::hit_all::~hit_all
~hit_all()=default
seqan3::search_cfg::hit_all_best::operator=
constexpr hit_all_best & operator=(hit_all_best &&)=default
Defaulted.
seqan3::search_cfg::hit_all
Configuration element to receive all hits within the error bounds.
Definition: hit.hpp:33
traits.hpp
Provides traits for seqan3::type_list.
seqan3::search_cfg::hit_all_best::hit_all_best
constexpr hit_all_best(hit_all_best const &)=default
Defaulted.
seqan3::search_cfg::hit_all_best::~hit_all_best
~hit_all_best()=default
seqan3::search_cfg::hit::~hit
~hit()=default
Defaulted.
variant
seqan3::search_cfg::hit::hit
hit(hit const &)=default
Defaulted.