docs: @Override
      public DataBuffer create(Pointer pointer, DataType type, long length, Indexer indexer) {
          switch (type) {
              case LONG:
                  return new CudaLongDataBuffer(pointer, indexer, length);
              case INT:
                  return new CudaIntDataBuffer(pointer, indexer, length);
              case DOUBLE:
                  return new CudaDoubleDataBuffer(pointer, indexer, length);
              case FLOAT:
                  return new CudaFloatDataBuffer(pointer, indexer, length);
              case HALF:
                  return new CudaHalfDataBuffer(pointer, indexer, length);
          }
  
          throw new IllegalArgumentException("Illegal dtype " + type);
      }