SeqAn3  3.0.0
The Modern C++ library for sequence analysis.
align_config_mode.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 
15 #pragma once
16 
19 
20 namespace seqan3::detail
21 {
24 struct global_alignment_type
25 {
28  static constexpr detail::align_config_id id{detail::align_config_id::global};
29 };
30 
33 struct local_alignment_type
34 {
37  static constexpr detail::align_config_id id{detail::align_config_id::local};
38 };
39 
40 } // namespace seqan3::detail
41 
42 namespace seqan3
43 {
44 
54 inline constexpr detail::global_alignment_type global_alignment;
55 
65 inline constexpr detail::local_alignment_type local_alignment;
66 
67 } // namespace seqan3
68 
69 namespace seqan3::align_cfg
70 {
71 
89 template <typename mode_type>
91  requires std::Same<remove_cvref_t<mode_type>, detail::global_alignment_type> ||
92  std::Same<remove_cvref_t<mode_type>, detail::local_alignment_type>
94 struct mode : public pipeable_config_element<mode<mode_type>, mode_type>
95 {
98  static constexpr detail::align_config_id id{mode_type::id};
99 };
100 
105 template <typename mode_type>
107 mode(mode_type) -> mode<mode_type>;
109 } // namespace seqan3::align_cfg
constexpr detail::global_alignment_type global_alignment
Helper variable to select the global alignment.
Definition: align_config_mode.hpp:54
Adds pipe interface to configuration elements.
Definition: pipeable_config_element.hpp:30
The main SeqAn3 namespace.
A special sub namespace for the alignment configurations.
Definition: align_config_aligned_ends.hpp:514
Provides some utility functions for the alignment configurations.
Provides seqan3::pipeable_config_element.
Definition: aligned_sequence_concept.hpp:35
Sets the alignment mode.
Definition: align_config_mode.hpp:94
The concept std::Same<T, U> is satisfied if and only if T and U denote the same type.
constexpr detail::local_alignment_type local_alignment
Helper variable to select the local alignment.
Definition: align_config_mode.hpp:65