9#ifndef MLIR_SUPPORT_ADTEXTRAS_H
10#define MLIR_SUPPORT_ADTEXTRAS_H
13#include "llvm/ADT/ArrayRef.h"
14#include "llvm/ADT/SmallVector.h"
42 if (isNonOwning() &&
index == 0) {
43 nonOwning = nonOwning.drop_front();
44 }
else if (isNonOwning() &&
index ==
size() - 1) {
45 nonOwning = nonOwning.drop_back();
59 return nonOwning.empty() ?
ArrayRef<T>(owningStorage) : nonOwning;
63 bool isNonOwning()
const {
return !nonOwning.empty(); }
77 ArrayRef<T> nonOwning;
78 SmallVector<T> owningStorage;
CopyOnWriteArrayRef & operator=(ArrayRef< T > array)
CopyOnWriteArrayRef(ArrayRef< T > array)
void set(size_t index, T value)
void insert(size_t index, T value)
Include the generated interface declarations.