22 namespace seqan3::detail::adl_only
26 template <
typename ...args_t>
39 template <typename alph_t>
43 constexpr
auto operator()(alph_t
const chr)
const noexcept
46 "Only overloads that are marked noexcept are picked up by seqan3::to_phred().");
48 "The return type of your to_phred() implementation must be convertible to size_t.");
95 template <
typename alphabet_type>
107 namespace seqan3::detail::adl_only
111 template <
typename ...args_t>
125 template <typename alph_t>
133 "Only overloads that are marked noexcept are picked up by seqan3::assign_phred_to().");
135 "The return type of your assign_phred_to() implementation must be 'alph_t &'.");
141 template <
typename alph_t>
148 return (*
this)(p, a);
229 template <
typename t>
267 template <
typename t>
270 requires(t v, alphabet_phred_t<t> c)
Core alphabet concept and free function/type trait wrappers.
#define SEQAN3_CPO_IMPL(PRIO, TERM)
A macro that helps defining the overload set of a customisation point.
Definition: customisation_point.hpp:45
constexpr auto to_phred
The public getter function for the Phred representation of a quality score.
Definition: concept.hpp:89
decltype(seqan3::to_phred(std::declval< alphabet_type >())) alphabet_phred_t
The phred_type of the alphabet; defined as the return type of seqan3::to_phred.
Definition: concept.hpp:99
constexpr auto assign_phred_to
Assign a Phred score to a quality alphabet object.
Definition: concept.hpp:189
The generic alphabet concept that covers most data types used in ranges.
A concept that indicates whether an alphabet represents quality scores.
Refines seqan3::alphabet and adds assignability.
A concept that indicates whether a writable alphabet represents quality scores.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
A type that can be specialised to provide customisation point implementations so that third party typ...
Definition: concept.hpp:49
Functor definition for seqan3::assign_phred_to.
Definition: concept.hpp:117
static constexpr decltype(auto) impl(seqan3::detail::priority_tag< 2 >, [[maybe_unused]] t &&v, [[maybe_unused]] arg_ts &&... args) noexcept(noexcept((seqan3::custom::alphabet< decltype(v)>::assign_phred_to(args..., v)))) requires requires(seqan3
A customisation point overload.
Definition: concept.hpp:119
constexpr alph_t & operator()(seqan3::alphabet_phred_t< alph_t > const p, alph_t &a) const noexcept
Operator definition for lvalues.
Definition: concept.hpp:130
Functor definition for seqan3::to_phred.
Definition: concept.hpp:31
static constexpr decltype(auto) impl(seqan3::detail::priority_tag< 2 >, [[maybe_unused]] t &&v, [[maybe_unused]] arg_ts &&... args) noexcept(noexcept(seqan3::custom::alphabet< decltype(v)>::to_phred(v))) requires requires(seqan3
A customisation point overload.
Definition: concept.hpp:33
constexpr auto operator()(alph_t const chr) const noexcept
Operator definition.
Definition: concept.hpp:43
A tag that allows controlled overload resolution via implicit base conversion rules.
Definition: customisation_point.hpp:31