SeqAn3  3.0.0
The Modern C++ library for sequence analysis.
detail.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2019, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2019, 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 
13 #pragma once
14 
16 
17 namespace seqan3::detail
18 {
19 
23 enum struct align_config_id : uint8_t
24 {
25  aligned_ends,
26  band,
27  gap,
28  global,
29  local,
30  max_error,
31  result,
32  scoring,
33  SIZE
34 };
35 
36 // ----------------------------------------------------------------------------
37 // compatibility_table
38 // ----------------------------------------------------------------------------
39 
45 template <>
46 inline constexpr std::array<std::array<bool, static_cast<uint8_t>(align_config_id::SIZE)>,
47  static_cast<uint8_t>(align_config_id::SIZE)> compatibility_table<align_config_id>
48 {
49  { //0 1 2 3 4, 5 6 7
50  { 0, 1, 1, 1, 0, 1, 1, 1}, // 0: aligned_ends
51  { 1, 0, 1, 1, 1, 1, 1, 1}, // 1: band
52  { 1, 1, 0, 1, 1, 1, 1, 1}, // 2: gap
53  { 1, 1, 1, 0, 0, 1, 1, 1}, // 3: global
54  { 0, 1, 1, 0, 0, 0, 1, 1}, // 4: local
55  { 1, 1, 1, 1, 0, 0, 1, 1}, // 5: max_error
56  { 1, 1, 1, 1, 1, 1, 0, 1}, // 6: result
57  { 1, 1, 1, 1, 1, 1, 1, 0} // 7: scoring
58  }
59 };
60 
61 } // namespace seqan3::detail
Provides functionality to access get function by enum values.
Definition: aligned_sequence_concept.hpp:35