61template <advanceable_alignment_coordinate_state state = advanceable_alignment_coordinate_state::none>
88 requires (other_state != state)
95 template <advanceable_alignment_coordinate_state other_state>
96 requires (other_state != state)
98 first{std::move(other.first)},
99 second{std::move(other.second)}
266 return this->
first - other.first;
268 return this->
second - other.second;
307template <
typename char_t,
typename coordinate_type>
308 requires detail::is_value_specialisation_of_v<std::remove_cvref_t<coordinate_type>,
309 detail::advanceable_alignment_coordinate>
310inline debug_stream_type<char_t> &
operator<<(debug_stream_type<char_t> & s, coordinate_type && c)
Implements an internal alignment coordinate that can be used as an argument to the std::ranges::iota_...
Definition advanceable_alignment_coordinate.hpp:63
constexpr advanceable_alignment_coordinate & operator-=(difference_type const offset) noexcept
Returns the coordinate which is advanced depending on the set policy by -offset.
Definition advanceable_alignment_coordinate.hpp:224
constexpr advanceable_alignment_coordinate() noexcept=default
constexpr advanceable_alignment_coordinate operator+(difference_type const offset) const noexcept
Returns a new coordinate which is advanced depending on the set policy by offset.
Definition advanceable_alignment_coordinate.hpp:238
constexpr advanceable_alignment_coordinate operator++(int) noexcept
Post-increments the coordinate depending on the set policy by one.
Definition advanceable_alignment_coordinate.hpp:174
constexpr advanceable_alignment_coordinate operator-(difference_type const offset) const noexcept
Returns a new coordinate which is advanced depending on the set policy by -offset.
Definition advanceable_alignment_coordinate.hpp:250
constexpr advanceable_alignment_coordinate(advanceable_alignment_coordinate< other_state > &&other)
Move-constructs from another advanceable_alignment_coordinate with a different policy.
Definition advanceable_alignment_coordinate.hpp:97
constexpr friend advanceable_alignment_coordinate operator+(difference_type const offset, advanceable_alignment_coordinate const &me) noexcept
Non-member function.
Definition advanceable_alignment_coordinate.hpp:278
size_t second
The front/back position of the alignment in the second sequence.
Definition advanceable_alignment_coordinate.hpp:289
constexpr advanceable_alignment_coordinate & operator+=(difference_type const offset) noexcept
Returns the coordinate which is advanced depending on the set policy by offset.
Definition advanceable_alignment_coordinate.hpp:210
size_t first
The front/back position of the alignment in the first sequence.
Definition advanceable_alignment_coordinate.hpp:287
constexpr advanceable_alignment_coordinate & operator--() noexcept
Decrements the coordinate depending on the set policy by one.
Definition advanceable_alignment_coordinate.hpp:185
constexpr advanceable_alignment_coordinate(column_index_type< size_t > const c_idx, row_index_type< size_t > const r_idx) noexcept
Construction from the respective column and row indices.
Definition advanceable_alignment_coordinate.hpp:106
constexpr difference_type operator-(advanceable_alignment_coordinate const &other) const noexcept
Returns the difference of this and another coordinate depending on the set policy.
Definition advanceable_alignment_coordinate.hpp:262
constexpr advanceable_alignment_coordinate & operator++() noexcept
Increments the coordinate depending on the set policy by one.
Definition advanceable_alignment_coordinate.hpp:161
constexpr advanceable_alignment_coordinate operator--(int) noexcept
Post-decrements the coordinate depending on the set policy by one.
Definition advanceable_alignment_coordinate.hpp:198
Provides seqan3::debug_stream and related types.
debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &stream, alignment_t &&alignment)
Stream operator for alignments, which are represented as tuples of aligned sequences.
Definition debug_stream_alignment.hpp:107
advanceable_alignment_coordinate_state
Represents a state to specify the implementation of the seqan3::detail::advanceable_alignment_coordin...
Definition advanceable_alignment_coordinate.hpp:37
@ column
The corresponding alignment coordinate will be incrementable/decrementable in the column index.
@ none
The corresponding alignment coordinate will not be incrementable/decrementable.
@ row
The corresponding alignment coordinate will be incrementable/decrementable in the row index.
@ offset
Sequence (seqan3::field::seq) relative start position (0-based), unsigned value.
Provides seqan3::detail::matrix_index, seqan3::detail::matrix_coordinate and associated strong types.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
Provides basic data structure for strong types.
A strong type for designated initialisation of the column index of a matrix.
Definition matrix_coordinate.hpp:29
A strong type for designated initialisation of the row index of a matrix.
Definition matrix_coordinate.hpp:58
Provides type traits for working with templates.
Provides seqan3::debug_stream and related types.