64template <advanceable_alignment_coordinate_state state = advanceable_alignment_coordinate_state::none>
91 requires (other_state != state)
98 template <advanceable_alignment_coordinate_state other_state>
99 requires (other_state != state)
101 first{std::move(other.first)},
102 second{std::move(other.second)}
269 return this->
first - other.first;
271 return this->second - other.second;
310template <
typename char_t,
typename coordinate_type>
311 requires detail::is_value_specialisation_of_v<std::remove_cvref_t<coordinate_type>,
312 detail::advanceable_alignment_coordinate>
313inline 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:66
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:227
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:241
constexpr advanceable_alignment_coordinate operator++(int) noexcept
Post-increments the coordinate depending on the set policy by one.
Definition: advanceable_alignment_coordinate.hpp:177
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:253
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:100
constexpr friend advanceable_alignment_coordinate operator+(difference_type const offset, advanceable_alignment_coordinate const &me) noexcept
Non-member function.
Definition: advanceable_alignment_coordinate.hpp:281
size_t second
The front/back position of the alignment in the second sequence.
Definition: advanceable_alignment_coordinate.hpp:292
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:213
size_t first
The front/back position of the alignment in the first sequence.
Definition: advanceable_alignment_coordinate.hpp:290
constexpr advanceable_alignment_coordinate & operator--() noexcept
Decrements the coordinate depending on the set policy by one.
Definition: advanceable_alignment_coordinate.hpp:188
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:109
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:265
constexpr advanceable_alignment_coordinate & operator++() noexcept
Increments the coordinate depending on the set policy by one.
Definition: advanceable_alignment_coordinate.hpp:164
constexpr advanceable_alignment_coordinate operator--(int) noexcept
Post-decrements the coordinate depending on the set policy by one.
Definition: advanceable_alignment_coordinate.hpp:201
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:110
advanceable_alignment_coordinate_state
Represents a state to specify the implementation of the seqan3::detail::advanceable_alignment_coordin...
Definition: advanceable_alignment_coordinate.hpp:40
@ 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.
@ none
No flag is set.
Definition: debug_stream_type.hpp:32
@ 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:29
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides basic data structure for strong types.
A strong type for designated initialisation of the column index of a matrix.
Definition: matrix_coordinate.hpp:32
A strong type for designated initialisation of the row index of a matrix.
Definition: matrix_coordinate.hpp:61
Provides type traits for working with templates.
Provides seqan3::debug_stream and related types.