Lines Matching defs:SkZip
24 class SkZip {
34 constexpr Iterator(const SkZip* zip, size_t index) : fZip{zip}, fIndex{index} { }
46 const SkZip* const fZip = nullptr;
54 constexpr SkZip() : fPointers{nullify<Ts>...}, fSize{0} {}
55 constexpr SkZip(size_t) = delete;
56 constexpr SkZip(size_t size, Ts*... ts)
59 constexpr SkZip(const SkZip& that) = default;
60 constexpr SkZip& operator=(const SkZip &that) = default;
67 // Allow SkZip<const T> to be constructed from SkZip<T>.
70 constexpr SkZip(const SkZip<Us...>& that)
85 constexpr SkZip first(size_t n) const {
87 if (n == 0) { return SkZip(); }
88 return SkZip{n, fPointers};
90 constexpr SkZip last(size_t n) const {
92 if (n == 0) { return SkZip(); }
93 return SkZip{n, this->pointersAt(fSize - n)};
95 constexpr SkZip subspan(size_t offset, size_t count) const {
98 if (count == 0) { return SkZip(); }
99 return SkZip(count, pointersAt(offset));
103 constexpr SkZip(size_t n, const std::tuple<Ts*...>& pointers)
203 return SkZip<ValueType<Ts>...>{size, Span<Ts>::Data(std::forward<Ts>(ts))...};