The basis for seqan3::alphabet_concept, but requires only rank interface (not char). More...
#include <seqan3/alphabet/concept.hpp>
Related Functions | |
(Note that these are not member functions.) | |
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 basis for seqan3::alphabet_concept, but requires only rank interface (not char).
This concept represents "one half" of the seqan3::alphabet_concept, it requires no char
representation and corresponding interfaces. It is mostly used internally and in the composition of alphabet types (see seqan3::cartesian_composition).
Beyond the requirements stated below, the type needs to satisfy the following standard library concepts:
For the purpose of concept checking the types t &
and t &&
are also considered to satisfy seqan3::semi_alphabet_concept if the type t
satisfies it.
It is recommended that alphabets also model seqan3::standard_layout_concept and seqan3::trivially_copyable_concept and all alphabets shipped with SeqAn3 do so.
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".