SeqAn3 3.3.0-rc.1
The Modern C++ library for sequence analysis.
 
Loading...
Searching...
No Matches
search/configuration/detail.hpp
Go to the documentation of this file.
1// -----------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2022, 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
17
18namespace seqan3::detail
19{
20
21// ----------------------------------------------------------------------------
22// search_config_id
23// ----------------------------------------------------------------------------
24
42enum struct search_config_id : uint8_t
43{
48 on_result,
53 hit,
54 parallel,
57 // ATTENTION: Must always be the last item; will be used to determine the number of ids.
58 SIZE
60};
61
62// ----------------------------------------------------------------------------
63// search_config_validation_matrix
64// ----------------------------------------------------------------------------
65
77template <>
78inline constexpr std::array<std::array<bool, static_cast<uint8_t>(search_config_id::SIZE)>,
79 static_cast<uint8_t>(search_config_id::SIZE)>
81 // max_error_total,
82 // | max_error_substitution,
83 // | | max_error_insertion,
84 // | | | max_error_deletion,
85 // | | | | on_result,
86 // | | | | | output_query_id,
87 // | | | | | | output_reference_id,
88 // | | | | | | | output_reference_begin_position,
89 // | | | | | | | | output_index_cursor,
90 // | | | | | | | | | hit,
91 // | | | | | | | | | | parallel,
92 // | | | | | | | | | | | result_type
93 {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // max_error_total
94 {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // max_error_substitution
95 {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // max_error_insertion
96 {1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}, // max_error_deletion
97 {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1}, // on_result
98 {1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1}, // output_query_id
99 {1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1}, // output_reference_id
100 {1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1}, // output_reference_begin_position
101 {1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1}, // output_index_cursor
102 {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1}, // hit
103 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, // parallel
104 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0} // result_type
105 }};
106
107} // namespace seqan3::detail
Provides concepts for the configuration classes.
@ on_result
ID for the on_result option.
@ parallel
ID for the parallel option.
@ SIZE
Represents the number of configuration elements.
@ result_type
ID for the result_type option.
constexpr std::array< std::array< bool, static_cast< uint8_t >(search_config_id::SIZE)>, static_cast< uint8_t >(search_config_id::SIZE)> compatibility_table< search_config_id >
Compatibility matrix to check how search configuration elements can be combined.
Definition: search/configuration/detail.hpp:80
search_config_id
Specifies an id for every configuration element.
Definition: search/configuration/detail.hpp:43
@ max_error_deletion
Identifier for the max_error_deletion configuration.
@ output_index_cursor
Identifier for the output configuration of the index_cursor.
@ output_reference_begin_position
Identifier for the output configuration of the reference_begin_position.
@ output_reference_id
Identifier for the output configuration of the reference_id.
@ max_error_insertion
Identifier for the max_error_insertion configuration.
@ max_error_total
Identifier for the max_error_total configuration.
@ output_query_id
Identifier for the output configuration of the query_id.
@ max_error_substitution
Identifier for the max_error_substitution configuration.
@ hit
Identifier for the hit configuration (all, all_best, single_best, strata).
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29