59 class cigar :
public alphabet_tuple_base<cigar, uint32_t, exposition_only::cigar_operation>
63 using base_t = alphabet_tuple_base<cigar, uint32_t, exposition_only::cigar_operation>;
103 constexpr
cigar() noexcept = default;
106 constexpr
cigar & operator=(
cigar const &) noexcept = default;
111 using base_t::base_t;
121 SEQAN3_DOXYGEN_ONLY((constexpr
cigar(component_type const alph) noexcept {}))
131 SEQAN3_DOXYGEN_ONLY((constexpr
cigar &
operator=(component_type
const alph) noexcept {}))
134 using base_t::operator=;
149 auto [ptr, errc] = std::to_chars(ret.data(), ret.data() + 10, get<0>(*
this));
154 ret.resize(ptr - ret.data() + 1);
175 auto [ptr, errc] = std::from_chars(input.data(), input.data() + input.size(), num);
177 if ((errc !=
std::errc{}) || (!char_is_valid_for<operation>(*ptr)))
201 SEQAN3_DOXYGEN_ONLY((
friend template <size_t index> constexpr
auto get(
cigar & l) noexcept {}))
211 SEQAN3_DOXYGEN_ONLY((friend template <typename type> constexpr auto
get(
cigar & l) noexcept {}))
216 template <
typename char_t>
217 inline debug_stream_type<char_t> &
operator<<(debug_stream_type<char_t> & s, cigar
const c)
223 inline namespace literals
Provides seqan3::alphabet_tuple_base.
The <charconv> header from C++17's standard library.
Introduces the seqan3::exposition_only::cigar_operation alphabet.
constexpr derived_type & assign_char(char_type const chr) noexcept requires(!std
Assign from a character, implicitly converts invalid characters.
Definition: alphabet_base.hpp:163
The seqan3::cigar semialphabet pairs a counter with a seqan3::cigar::operation letter.
Definition: alphabet/cigar/cigar.hpp:60
constexpr friend auto get(cigar &l) noexcept
Definition: alphabet/cigar/cigar.hpp:201
small_string< 11 > to_string() const noexcept
Return the string representation.
Definition: alphabet/cigar/cigar.hpp:144
cigar & assign_string(std::string_view const input) noexcept
Assign from a std::string_view.
Definition: alphabet/cigar/cigar.hpp:172
constexpr cigar() noexcept=default
Defaulted.
The actual implementation of seqan3::cigar::operation for documentation purposes only.
Definition: cigar_operation.hpp:48
Implements a small string that can be used for compile time computations.
Definition: small_string.hpp:44
constexpr void resize(size_type const count) noexcept
Resizes the container to contain count elements.
Definition: small_string.hpp:232
Provides seqan3::debug_stream and related types.
constexpr auto assign_char_to
Assign a character to an alphabet object.
Definition: alphabet/concept.hpp:524
constexpr auto to_char
Return the char representation of an alphabet object.
Definition: alphabet/concept.hpp:386
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
requires detail::debug_stream_range_guard< alignment_matrix_t > &&detail::matrix< alignment_matrix_t > debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &s, alignment_matrix_t &&matrix)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: debug_matrix.hpp:496
A constexpr string implementation to manipulate string literals at compile time.
Provides alphabet adaptations for standard uint types.