| 256 | } |
| 257 | |
| 258 | static Optional<ArrayDataAccessCuda> Create(const ArrayData &data, int64_t length = 0, |
| 259 | const pointer start = nullptr) |
| 260 | { |
| 261 | auto castData = data.cast<ArrayDataCuda>(); |
| 262 | if (castData) |
| 263 | { |
| 264 | return ArrayDataAccessCuda{castData.value(), length, start}; |
| 265 | } |
| 266 | else |
| 267 | { |
| 268 | return NullOpt; |
| 269 | } |
| 270 | } |
| 271 | |
| 272 | private: |
| 273 | ArrayDataAccessCuda(const ArrayDataCuda &data, int64_t length, const pointer start) |