eccLib 1.3.0
Python library for bioinformatics written in C
Loading...
Searching...
No Matches
FastaBuffViews.h
Go to the documentation of this file.
1
6#ifndef FASTABUFF_VIEW_H
7#define FASTABUFF_VIEW_H
8
9#include "FastaBuff.h"
10#include <Python.h>
11#include <stddef.h>
12#include <stdint.h>
13
14typedef struct {
15 PyObject_HEAD FastaBuff *buff;
16 int64_t pos;
17 size_t len;
18 int64_t step;
20
21extern PyTypeObject FastaBuff_iteratorType;
22
24 bool reverse);
25
26typedef struct {
27 PyObject_HEAD FastaBuff *buff;
28 uint64_t start;
29 int64_t stop;
30 int64_t step;
33
34extern PyTypeObject FastaBuff_viewType;
35
37 Py_ssize_t start, Py_ssize_t stop,
38 Py_ssize_t step, Py_ssize_t slicelength);
39
40#define FOREACH_VIEW_ELEMENT(self, idx) \
41 for (int64_t idx = self->start; idx < self->stop; idx += self->step)
42
43#define VIEW_INDEX_TRANSFORM(i, self) ((i * self->step) + self->start)
44
45#endif
PyTypeObject FastaBuff_viewType
Definition FastaBuffViews.c:403
PyObject * FastaBuff_view_initialise(FastaBuff_view *view, FastaBuff *buff, Py_ssize_t start, Py_ssize_t stop, Py_ssize_t step, Py_ssize_t slicelength)
Definition FastaBuffViews.c:65
PyTypeObject FastaBuff_iteratorType
Definition FastaBuffViews.c:52
void FastaBuff_iterator_initialise(FastaBuff_iterator *iter, FastaBuff *buff, bool reverse)
Definition FastaBuffViews.c:11
Contains the definition of the FastaBuff object.
Definition FastaBuffViews.h:14
size_t len
Definition FastaBuffViews.h:17
int64_t step
Definition FastaBuffViews.h:18
int64_t pos
Definition FastaBuffViews.h:16
FastaBuff * buff
Definition FastaBuffViews.h:15
Definition FastaBuffViews.h:26
size_t slicelength
Definition FastaBuffViews.h:31
int64_t step
Definition FastaBuffViews.h:30
int64_t stop
Definition FastaBuffViews.h:29
FastaBuff * buff
Definition FastaBuffViews.h:27
uint64_t start
Definition FastaBuffViews.h:28
A buffer that holds packed uint4 FASTA data.
Definition FastaBuff.h:30