SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::alphabet_tuple_base< derived_type, component_types >::component_proxy< alphabet_type, index > Class Template Reference

Specialisation of seqan3::alphabet_proxy that updates the rank of the alphabet_tuple_base. More...

#include <seqan3/alphabet/composite/alphabet_tuple_base.hpp>

+ Inheritance diagram for seqan3::alphabet_tuple_base< derived_type, component_types >::component_proxy< alphabet_type, index >:

Public Member Functions

Constructors, destructor and assignment
 component_proxy ()=delete
 Deleted, because using this proxy without parent would be undefined behaviour.
 
constexpr component_proxy (component_proxy const &)=default
 Defaulted.
 
constexpr component_proxy (component_proxy &&)=default
 Defaulted.
 
constexpr component_proxyoperator= (component_proxy const &)=default
 Defaulted.
 
constexpr component_proxyoperator= (component_proxy &&)=default
 Defaulted.
 
 ~component_proxy ()=default
 Defaulted.
 
constexpr component_proxy (alphabet_type const l, alphabet_tuple_base &p)
 Construct from an alphabet letter and reference to the parent object.
 
- Public Member Functions inherited from seqan3::alphabet_proxy< component_proxy< alphabet_type, index >, alphabet_type >
constexpr component_proxy< alphabet_type, index > & assign_rank (alphabet_rank_t< alphabet_type > const r) noexcept
 Assigns a rank.
 
constexpr component_proxy< alphabet_type, index > & assign_char (char_type const c) noexcept
 Assigns a character.
 
constexpr component_proxy< alphabet_type, index > & assign_phred (phred_type const c) noexcept
 Assigns a Phred score.
 
constexpr operator alphabet_type () const noexcept
 Implicit conversion to the emulated type.
 
constexpr operator other_t () const noexcept
 Implicit conversion to types that the emulated type is convertible to.
 
constexpr auto to_rank () const noexcept
 Returns the rank.
 
constexpr auto to_char () const noexcept
 Returns the character.
 
constexpr auto to_phred () const noexcept
 Returns the Phred score.
 
constexpr alphabet_type complement () const noexcept
 Returns the complement.
 

Private Types

using base_t = alphabet_proxy< component_proxy< alphabet_type, index >, alphabet_type >
 The base type.
 

Private Member Functions

constexpr void on_update () noexcept
 The implementation updates the rank in the parent object.
 

Private Attributes

friend base_t
 Befriend the base type so it can call our seqan3::alphabet_tuple_base::component_proxy::on_update().
 
alphabet_tuple_baseparent
 Store a pointer to the parent object so we can update it.
 

Friends

Comparison operators (proxy type against parent)

Comparison against the seqan3::alphabet_tuple_base that this proxy originates from (necessary to prevent recursive template instantiation in the tuple).

constexpr bool operator== (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator== (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator!= (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator!= (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator< (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator< (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator<= (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator<= (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator> (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator> (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator>= (derived_type const lhs, component_proxy const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
constexpr bool operator>= (component_proxy< alphabet_type, index > const lhs, derived_type const rhs) noexcept
 Comparison against the alphabet tuple by casting self and tuple to the emulated type.
 
- Friends inherited from seqan3::alphabet_proxy< component_proxy< alphabet_type, index >, alphabet_type >

Additional Inherited Members

- Static Public Member Functions inherited from seqan3::alphabet_proxy< component_proxy< alphabet_type, index >, alphabet_type >
static constexpr bool char_is_valid (char_type const c) noexcept
 Delegate to the emulated type's validator.
 
- Static Public Attributes inherited from seqan3::alphabet_proxy< component_proxy< alphabet_type, index >, alphabet_type >
static constexpr auto alphabet_size
 The alphabet size.
 

Detailed Description

template<typename derived_type, typename... component_types>
template<typename alphabet_type, size_t index>
requires (detail::writable_constexpr_semialphabet<component_types> && ...) && (std::regular<component_types> && ...)
class seqan3::alphabet_tuple_base< derived_type, component_types >::component_proxy< alphabet_type, index >

Specialisation of seqan3::alphabet_proxy that updates the rank of the alphabet_tuple_base.

Template Parameters
alphabet_typeThe type of the emulated component.
indexThe index of the emulated component.

This entity is not part of the SeqAn API. Do not rely on it in your applications.

Friends And Related Symbol Documentation

◆ operator!= [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator!= ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator!= [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator!= ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator< [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator< ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator< [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator< ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator<= [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator<= ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator<= [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator<= ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator== [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator== ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator== [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator== ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator> [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator> ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator> [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator> ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator>= [1/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator>= ( component_proxy< alphabet_type, index > const  lhs,
derived_type const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

◆ operator>= [2/2]

template<typename derived_type , typename... component_types>
template<typename alphabet_type , size_t index>
constexpr bool operator>= ( derived_type const  lhs,
component_proxy< alphabet_type, index > const  rhs 
)
friend

Comparison against the alphabet tuple by casting self and tuple to the emulated type.

Parameters
lhsLeft-hand-side of comparison.
rhsRight-hand-side of comparison.

The documentation for this class was generated from the following file:
Hide me