22namespace seqan3::detail
32template <
typename char_t,
tuple_like alignment_t,
size_t... idx>
33void stream_alignment(debug_stream_type<char_t> & stream,
34 alignment_t
const & align,
38 size_t const alignment_size = get<0>(align).size();
41 for (
size_t begin_pos = 0; begin_pos < alignment_size; begin_pos += 50)
43 size_t const end_pos =
std::min(begin_pos + 50, alignment_size);
49 stream <<
std::setw(7) << begin_pos <<
' ';
50 for (
size_t pos = begin_pos + 1; pos <= end_pos; ++pos)
54 else if (pos % 5 == 0)
68 auto stream_f = [&](
auto const & previous_seq,
auto const & aligned_seq)
75 stream << (get<0>(ch) == get<1>(ch) ?
'|' :
' ');
86 (stream_f(get<idx>(align), get<idx + 1>(align)), ...);
100template <
typename alignment_t>
110 template <
typename stream_t,
typename arg_t>
113 constexpr size_t sequence_count = std::tuple_size_v<std::remove_cvref_t<arg_t>>;
115 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:79
auto const to_char
A view that calls seqan3::to_char() on each element in the input range.
Definition to_char.hpp:60
constexpr auto slice
A view adaptor that returns a half-open interval on the underlying range.
Definition slice.hpp:137
seqan::stl::views::zip zip
A view adaptor that takes several views and returns tuple-like values from every i-th element of each...
Definition zip.hpp:24
Whether a type behaves like a tuple.
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Provides seqan3::views::slice.
constexpr void operator()(stream_t &stream, arg_t &&arg) const
The function call operator that pretty prints the alignment to the stream.
Definition debug_stream_alignment.hpp:111
Definition default_printer.hpp:29
Provides seqan3::views::to_char.
Provides seqan3::debug_stream and related types.
Provides seqan3::tuple_like.
Provides seqan3::views::zip.