25namespace seqan3::detail
35template <
typename char_t,
tuple_like alignment_t,
size_t ...idx>
39 size_t const alignment_size = get<0>(align).size();
42 for (
size_t begin_pos = 0; begin_pos < alignment_size; begin_pos += 50)
44 size_t const end_pos =
std::min(begin_pos + 50, alignment_size);
50 stream <<
std::setw(7) << begin_pos <<
' ';
51 for (
size_t pos = begin_pos + 1; pos <= end_pos; ++pos)
55 else if (pos % 5 == 0)
64 [&stream] (
char ch) { stream << ch; });
66 auto stream_f = [&] (
auto const & previous_seq,
auto const & aligned_seq)
71 [&stream] (
auto && ch) { stream << (get<0>(ch) == get<1>(ch) ?
'|' :
' '); });
76 [&stream] (
char ch) { stream << ch; });
78 (stream_f(get<idx>(align), get<idx + 1>(align)), ...);
96template <
typename char_t,
typename alignment_t>
98 requires (detail::debug_streamable_tuple<alignment_t> &&
99 detail::all_model_aligned_seq<detail::tuple_type_list_t<std::remove_cvref_t<alignment_t>>>)
101inline debug_stream_type<char_t> &
operator<<(debug_stream_type<char_t> & stream, alignment_t && alignment)
103 constexpr size_t sequence_count = std::tuple_size_v<std::remove_cvref_t<alignment_t>>;
105 static_assert(sequence_count >= 2,
"An alignment requires at least two sequences.");
Includes the aligned_sequence and the related insert_gap and erase_gap functions to enable stl contai...
A "pretty printer" for most SeqAn data structures and related types.
Definition: debug_stream_type.hpp:78
auto const to_char
A view that calls seqan3::to_char() on each element in the input range.
Definition: to_char.hpp:63
constexpr auto slice
A view adaptor that returns a half-open interval on the underlying range.
Definition: slice.hpp:183
constexpr auto zip
A zip view.
Definition: zip.hpp:29
Whether a type behaves like a tuple.
The main SeqAn3 namespace.
Definition: cigar_operation_table.hpp:2
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: configuration.hpp:429
Provides seqan3::views::slice.
Provides seqan3::views::to_char.
Provides seqan3::debug_stream and related types.
Provides seqan3::tuple_like.
Provides seqan3::views::zip.