15 #include <type_traits> 38 template <
typename first_t,
typename second_t>
39 struct alignment_type;
42 template <
typename first_t,
typename second_t>
47 struct alignment_type<first_t, second_t>
61 typename configuration_t>
63 requires is_type_specialisation_of_v<remove_cvref_t<configuration_t>, configuration>
65 struct align_result_selector
68 static constexpr
auto _determine()
70 using score_type = int32_t;
75 with_back_coordinate_type>)
77 return alignment_result_value_type<uint32_t,
79 alignment_coordinate>{};
82 with_front_coordinate_type>)
84 return alignment_result_value_type<uint32_t,
87 alignment_coordinate>{};
93 using first_gapped_seq_type = gapped<value_type_t<first_range_t>>;
94 using second_gapped_seq_type = gapped<value_type_t<second_range_t>>;
100 using decorator_t = alignment_type<first_range_t, second_range_t>;
102 return alignment_result_value_type<uint32_t,
104 alignment_coordinate,
105 alignment_coordinate,
106 detail::transformation_trait_or_t<decorator_t, fallback_t>>{};
110 return alignment_result_value_type<uint32_t, score_type>{};
115 return alignment_result_value_type<uint32_t, score_type>{};
120 using type = decltype(_determine());
Specifies requirements of a Range type for which begin returns a type that models std::RandomAccessIt...
std::remove_cv_t< std::remove_reference_t< t > > remove_cvref_t
Return the input type with const, volatile and references removed (type trait).
Definition: basic.hpp:35
Specifies the requirements of a Range type that knows its size in constant time with the size functio...
Provides seqan3::type_list and auxiliary type traits.
Adaptations of concepts from the Ranges TS.
Provides seqan3::view::all.
Definition: aligned_sequence_concept.hpp:35
Provides various type traits on generic types.
Provides seqan3::detail::alignment_coordinate.
Provides seqan3::detail::configuration and utility functions.
Provides various transformation traits used by the range module.
Provides configuration for alignment output.
Specifies requirements of a Range type for which begin returns a type that models std::ForwardIterato...
The concept std::Same<T, U> is satisfied if and only if T and U denote the same type.
Provides seqan3::gap_decorator.