3 #ifndef AWKWARD_ARRAYGENERATOR_H_ 4 #define AWKWARD_ARRAYGENERATOR_H_ 65 caches(std::vector<ArrayCachePtr>& out)
const = 0;
68 virtual const std::string
69 tostring_part(
const std::string& indent,
70 const std::string& pre,
71 const std::string& post)
const = 0;
74 virtual const std::shared_ptr<ArrayGenerator>
75 shallow_copy()
const = 0;
79 virtual const std::shared_ptr<ArrayGenerator>
80 with_form(
const FormPtr& form)
const = 0;
84 virtual const std::shared_ptr<ArrayGenerator>
85 with_length(int64_t length)
const = 0;
121 generate()
const override;
124 caches(std::vector<ArrayCachePtr>& out)
const override;
127 tostring_part(
const std::string& indent,
128 const std::string& pre,
129 const std::string& post)
const override;
131 const std::shared_ptr<ArrayGenerator>
132 shallow_copy()
const override;
134 const std::shared_ptr<ArrayGenerator>
135 with_form(
const FormPtr& form)
const override;
137 const std::shared_ptr<ArrayGenerator>
138 with_length(int64_t length)
const override;
149 #endif // AWKWARD_ARRAYGENERATOR_H_ const FormPtr form_
Definition: ArrayGenerator.h:95
#define LIBAWKWARD_EXPORT_SYMBOL
Definition: common.h:45
Definition: BitMaskedArray.h:15
const Slice slice_
Definition: ArrayGenerator.h:145
Generator for lazy slicing. Used to avoid materializing a VirtualArray before its content is needed (...
Definition: ArrayGenerator.h:107
int64_t length_
Definition: ArrayGenerator.h:97
std::shared_ptr< Form > FormPtr
Definition: Content.h:18
const ContentPtr content_
Definition: ArrayGenerator.h:144
Abstract superclass to generate arrays for VirtualArray, defining the interface.
Definition: ArrayGenerator.h:24
A sequence of SliceItem objects representing a tuple passed to Python's __getitem__.
Definition: Slice.h:585
std::shared_ptr< ArrayGenerator > ArrayGeneratorPtr
Definition: ArrayGenerator.h:14
std::shared_ptr< Content > ContentPtr
Definition: Content.h:15