SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
search_traits.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 
14 #pragma once
15 
23 
24 namespace seqan3::detail
25 {
26 
32 template <typename search_configuration_t>
34 {
41  >::type;
42 
44  static constexpr bool has_max_error_total =
45  search_configuration_t::template exists<search_cfg::max_error_total>();
47  static constexpr bool has_max_error_substitution =
48  search_configuration_t::template exists<search_cfg::max_error_substitution>();
50  static constexpr bool has_max_error_insertion =
51  search_configuration_t::template exists<search_cfg::max_error_insertion>();
53  static constexpr bool has_max_error_deletion =
54  search_configuration_t::template exists<search_cfg::max_error_deletion>();
55 
57  static constexpr bool only_max_error_total = has_max_error_total &&
61 
63  static constexpr bool search_all_hits = search_configuration_t::template exists<search_cfg::hit_all>();
65  static constexpr bool search_single_best_hit = search_configuration_t::template exists<search_cfg::hit_single_best>();
67  static constexpr bool search_all_best_hits = search_configuration_t::template exists<search_cfg::hit_all_best>();
69  static constexpr bool search_strata_hits = search_configuration_t::template exists<search_cfg::hit_strata>();
71  static constexpr bool has_hit_configuration = search_all_hits ||
75  search_configuration_t::template exists<search_cfg::hit>();
76 
78  static constexpr bool output_query_id = search_configuration_t::template exists<search_cfg::output_query_id>();
80  static constexpr bool output_reference_id =
81  search_configuration_t::template exists<search_cfg::output_reference_id>();
83  static constexpr bool output_reference_begin_position =
84  search_configuration_t::template exists<search_cfg::output_reference_begin_position>();
86  static constexpr bool output_index_cursor =
87  search_configuration_t::template exists<search_cfg::output_index_cursor>();
90 
92  static constexpr bool has_output_configuration = output_query_id |
96 
98  static constexpr bool has_user_callback = search_configuration_t::template exists<search_cfg::on_result>();
99 };
100 
101 } // namespace seqan3::detail
Configuration element storing the configured seqan3::search_result for the search algorithm.
Definition: result_type.hpp:46
The result class generated by the seqan3::seach algorithm.
Definition: search_result.hpp:82
Provides seqan3::detail::empty_type.
Provides the configuration to define the hit strategies "hit_strata", "hit_all", "hit_all_best",...
Provides the configuration for maximum number of errors for all error types.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::search_cfg::on_result.
Provides seqan3::search_cfg::detail::result_type.
Provides the configuration for the content of the search result.
A collection of traits extracted from the search configuration.
Definition: search_traits.hpp:34
static constexpr bool search_strata_hits
A flag indicating whether search should find strata hits.
Definition: search_traits.hpp:69
static constexpr bool has_max_error_deletion
A flag indicating whether search should be invoked with deletion errors.
Definition: search_traits.hpp:53
static constexpr bool output_requires_locate_call
A flag indicating whether it is required to call cursor.locate() to retrieve the respective informati...
Definition: search_traits.hpp:89
static constexpr bool has_max_error_total
A flag indicating whether search should be invoked with total errors.
Definition: search_traits.hpp:44
static constexpr bool search_all_best_hits
A flag indicating whether search should find all best hits.
Definition: search_traits.hpp:67
static constexpr bool only_max_error_total
A flag that indicates whether the search should be invoked with only specified total errors.
Definition: search_traits.hpp:57
static constexpr bool output_query_id
A flag indicating whether search should return the query_id.
Definition: search_traits.hpp:78
static constexpr bool has_user_callback
A flag indicating whether a user provided callback was given.
Definition: search_traits.hpp:98
static constexpr bool search_single_best_hit
A flag indicating whether search should find best hits.
Definition: search_traits.hpp:65
static constexpr bool output_index_cursor
A flag indicating whether search should return the index_cursor.
Definition: search_traits.hpp:86
static constexpr bool output_reference_id
A flag indicating whether search should return the reference_id.
Definition: search_traits.hpp:80
static constexpr bool search_all_hits
A flag indicating whether search should find all hits.
Definition: search_traits.hpp:63
static constexpr bool output_reference_begin_position
A flag indicating whether search should return the reference_begin_position.
Definition: search_traits.hpp:83
static constexpr bool has_max_error_insertion
A flag indicating whether search should be invoked with insertion errors.
Definition: search_traits.hpp:50
typename std::remove_cvref_t< decltype(std::declval< search_configuration_t >().get_or(search_cfg::detail::result_type< empty_search_result_type >{})) >::type search_result_type
The configured search result type.
Definition: search_traits.hpp:41
static constexpr bool has_output_configuration
A flag indicating whether output configuration was set in the search configuration.
Definition: search_traits.hpp:92
static constexpr bool has_hit_configuration
A flag indicating whether hit configuration was set in the search configuration.
Definition: search_traits.hpp:71
static constexpr bool has_max_error_substitution
A flag indicating whether search should be invoked with substitution errors.
Definition: search_traits.hpp:47
Provides various type traits on generic types.