The generic alphabet concept that covers most data types used in ranges.This is the core alphabet concept that many other alphabet concepts refine. More...
#include <seqan3/alphabet/concept.hpp>
Related Functions | |
(Note that these are not member functions.) | |
Requirements for seqan3::alphabet_concept | |
You can expect these functions on all types that implement seqan3::alphabet_concept. | |
template<typename alphabet_type > | |
using | underlying_char_t = typename underlying_char< alphabet_type >::type |
The char_type of the alphabet. [type metafunction shortcut]. More... | |
char_type | to_char (alphabet_concept const alph) |
Returns the alphabet letter's value in character representation. More... | |
alphabet_concept && | assign_char (alphabet_concept &&alph, char_type const chr) |
Returns the alphabet letter's value in character representation. More... | |
Requirements for seqan3::semi_alphabet_concept | |
You can expect these functions on all types that implement seqan3::semi_alphabet_concept. | |
template<typename semi_alphabet_type > | |
using | underlying_rank_t = typename underlying_rank< semi_alphabet_type >::type |
The rank_type of the semi_alphabet. [type metafunction shortcut]. More... | |
template<typename alphabet_type > | |
constexpr auto | alphabet_size_v = alphabet_size<alphabet_type>::value |
The size of the alphabet. [value metafunction shortcut]. More... | |
rank_type | to_rank (semi_alphabet_concept const alph) |
Returns the alphabet letter's value in rank representation. More... | |
semi_alphabet_concept && | assign_rank (semi_alphabet_concept &&alph, rank_type const rank) |
Returns the alphabet letter's value in rank representation. More... | |
Requirements for std::Swappable | |
You can expect these functions on all types that implement std::Swappable. | |
void | swap (t &lhs, t &rhs) |
Swaps the contents of two objects. More... | |
Requirements for std::EqualityComparable | |
You can expect these functions on all types that implement std::Equality_comparable. | |
bool | operator== (type const &lhs, type const &rhs) |
(In-)Equality comparison. More... | |
bool | operator!= (type const &lhs, type const &rhs) |
(In-)Equality comparison. More... | |
Requirements for std::StrictTotallyOrdered | |
You can expect these functions on all types that implement std::StrictTotallyOrdered. | |
bool | operator< (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator<= (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator> (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
bool | operator>= (type const &lhs, type const &rhs) |
Less-than, greater-than and -or-equal comparisons. More... | |
The generic alphabet concept that covers most data types used in ranges.
This is the core alphabet concept that many other alphabet concepts refine.
It defines the requirements for the rank interface and the character interface, as well as the requirement for size and comparability. For more details, see the Alphabet module.
For the purpose of concept checking the types t &
and t &&
are also considered to satisfy seqan3::alphabet_concept if the type t
satisfies it.
Types that satisfy the concept (and all refinements) can be serialised via SeqAn3 serialisation support. The rank value is (de-)serialised, types need not provide any overloads themselves.
The requirements for this concept are given as related functions and metafunctions. Types that satisfy this concept are shown as "implementing this interface".