Gamgee
You miserable little maggot. I'll stove your head in!
|
iterator for VariantField objects. More...
#include <individual_field_iterator.h>
Public Member Functions | |
IndividualFieldIterator (const std::shared_ptr< bcf1_t > &body, bcf_fmt_t *format_ptr, bool end_iterator=false) | |
simple constructor used by VariantField to create an iterator More... | |
IndividualFieldIterator (const IndividualFieldIterator &other) | |
copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense. More... | |
IndividualFieldIterator (IndividualFieldIterator &&other) noexcept | |
safely moves the data from one VariantField to a new one without making any copies More... | |
IndividualFieldIterator & | operator= (const IndividualFieldIterator &other) |
copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense. More... | |
IndividualFieldIterator & | operator= (IndividualFieldIterator &&other) noexcept |
safely moves the data from one VariantField to a new one without making any copies More... | |
IndividualFieldIterator & | operator+= (const int n) noexcept |
simple compound assignment operation for random advances (back/forward) to the iterator More... | |
IndividualFieldIterator & | operator-= (const int n) noexcept |
simple compound assignment operation for random advances (back/forward) to the iterator More... | |
bool | operator== (const IndividualFieldIterator &other) |
two iterators are equal if they are in exactly the same state (pointing at the same location in memory More... | |
bool | operator!= (const IndividualFieldIterator &other) |
the oposite check of IndividualFieldIterator::operator==() More... | |
bool | operator< (const IndividualFieldIterator &other) |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record. More... | |
bool | operator> (const IndividualFieldIterator &other) |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record. More... | |
bool | operator<= (const IndividualFieldIterator &other) |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record. More... | |
bool | operator>= (const IndividualFieldIterator &other) |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record. More... | |
TYPE | operator* () const noexcept |
direct access to the value of the current sample More... | |
IndividualFieldIterator & | operator++ () noexcept |
Prefix increment. Advances to the next sample. More... | |
IndividualFieldIterator | operator++ (int) noexcept |
Postfix increment. Advances to the next sample. More... | |
IndividualFieldIterator & | operator-- () noexcept |
Prefix increment. Reverses to the previous sample. More... | |
IndividualFieldIterator | operator-- (int) noexcept |
Postfix decrement. Reverses to the previous sample. More... | |
TYPE | operator[] (const uint32_t sample) const |
random access to the value of a given sample for reading or writing More... | |
int32_t | operator- (const IndividualFieldIterator< TYPE > &first) const |
Difference between two iterators as an integer. More... | |
iterator for VariantField objects.
This iterator will walk through all the samples in a Variant record for a given VariantField object. For example if you want to iterate over all the GQ values of a Variant record you would do so through this iterator.
|
inline |
simple constructor used by VariantField to create an iterator
body | the Variant record used to access the data (shared ownership guarantees availability until iterator goes out of scope) |
format_ptr | pointer to the raw byte array in body where all the values for this format field is encoded |
end_iterator | whether or not this is being called by the VariantField::end() function. |
|
inline |
copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense.
|
inlinenoexcept |
safely moves the data from one VariantField to a new one without making any copies
other | another VariantField object |
|
inline |
the oposite check of IndividualFieldIterator::operator==()
|
inlinenoexcept |
direct access to the value of the current sample
|
inlinenoexcept |
Prefix increment. Advances to the next sample.
|
inlinenoexcept |
Postfix increment. Advances to the next sample.
|
inlinenoexcept |
simple compound assignment operation for random advances (back/forward) to the iterator
n | how much to advance (negative numbers to go the other direction) |
|
inline |
Difference between two iterators as an integer.
first | is the iterator the position of which is to be subtracted from the position of the current iterator. |
|
inlinenoexcept |
Prefix increment. Reverses to the previous sample.
|
inlinenoexcept |
Postfix decrement. Reverses to the previous sample.
|
inlinenoexcept |
simple compound assignment operation for random advances (back/forward) to the iterator
n | how much to advance (negative numbers to go the other direction) |
|
inline |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record.
|
inline |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record.
|
inline |
copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense.
|
inlinenoexcept |
safely moves the data from one VariantField to a new one without making any copies
other | another VariantField object |
|
inline |
two iterators are equal if they are in exactly the same state (pointing at the same location in memory
|
inline |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record.
|
inline |
an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the VariantField object. The order is determined by the Variant record.
|
inline |
random access to the value of a given sample for reading or writing
sample | must be between 0 and the number of samples for this record |
std::out_of_range | if index is out of range |