SeqAn3 3.4.0-rc.4
The Modern C++ library for sequence analysis.
|
Adds single_pass_input behavior to the underlying range. More...
#include <seqan3/utility/views/single_pass_input.hpp>
Classes | |
struct | state |
An internal state to capture the underlying range and a cached iterator. More... | |
Public Member Functions | |
Constructor, destructor, and assignment. | |
All standard functions are explicitly set to default. | |
constexpr | single_pass_input_view ()=default |
Default default-constructor. | |
constexpr | single_pass_input_view (single_pass_input_view const &)=default |
Default copy-constructor. | |
constexpr | single_pass_input_view (single_pass_input_view &&)=default |
Default move-constructor. | |
constexpr single_pass_input_view & | operator= (single_pass_input_view const &)=default |
Default copy-assignment. | |
constexpr single_pass_input_view & | operator= (single_pass_input_view &&)=default |
Default move-assignment. | |
~single_pass_input_view ()=default | |
Default destructor. | |
constexpr | single_pass_input_view (urng_t _urng) |
Construction from the underlying view. | |
template<typename other_urng_t > requires (!std::same_as<std::remove_cvref_t<other_urng_t>, single_pass_input_view> && std::ranges::viewable_range<other_urng_t> && // Must come after self type check to avoid conflicts with the move constructor. std::constructible_from<urng_t, std::ranges::ref_view<std::remove_reference_t<other_urng_t>>>) | |
constexpr | single_pass_input_view (other_urng_t &&_urng) |
Construction from std::ranges::viewable_range. | |
Iterators | |
iterator | begin () |
Returns an iterator to the current begin of the underlying range. | |
iterator | begin () const =delete |
Const version of begin is deleted, since the underlying view_state must be mutable. | |
sentinel | end () |
Returns a sentinel. | |
sentinel | end () const =delete |
Const version of end is deleted, since the underlying view_state must be mutable. | |
Private Types | |
using | urng_iterator_type = std::ranges::iterator_t< urng_t > |
[view_def] | |
Member types | |
using | iterator = basic_iterator< single_pass_input_view > |
Iterator type. | |
using | sentinel = std::ranges::sentinel_t< urng_t > |
The sentinel type. | |
Private Attributes | |
std::shared_ptr< state > | state_ptr {} |
Manages the internal state. | |
Friends | |
template<typename view_t > | |
class | basic_iterator |
Friend declaration for seqan3::detail::basic_iterator. | |
Related Symbols | |
(Note that these are not member symbols.) | |
Deduction guide. | |
template<std::ranges::viewable_range urng_t> | |
single_pass_input_view (urng_t &&) -> single_pass_input_view< std::views::all_t< urng_t > > | |
Deduces the single_pass_input_view from the underlying range if it is a std::ranges::viewable_range. | |
Adds single_pass_input behavior to the underlying range.
urng_t | The underlying range type. [view_def] |
|
no-apiprivate |
[view_def]
The iterator type for the underlying range.
|
no-apiinline |
Returns an iterator to the current begin of the underlying range.
Subsequent calls to begin will result in different positions if the iterator was incremented between the calls.