function BufferLoader(options) {
  options = options ?? Frozen.EMPTY_OBJECT;
  const typedArray = options.typedArray;
  const resource = options.resource;
  const cacheKey = options.cacheKey;

  //>>includeStart('debug', pragmas.debug);
  if (defined(typedArray) === defined(resource)) {
    throw new DeveloperError(
      "One of options.typedArray and options.resource must be defined.",
    );
  }
  //>>includeEnd('debug');

  this._typedArray = typedArray;
  this._resource = resource;
  this._cacheKey = cacheKey;
  this._state = ResourceLoaderState.UNLOADED;
  this._promise = undefined;
}
Loads an embedded or external buffer.
<p>
Implements the {@link ResourceLoader} interface.
</p>

@alias BufferLoader
@constructor
@augments ResourceLoader

@param {object} options Object with the following properties:
@param {Uint8Array} [options.typedArray] The typed array containing the embedded buffer contents. Mutually exclusive with options.resource.
@param {Resource} [options.resource] The {@link Resource} pointing to the external buffer. Mutually exclusive with options.typedArray.
@param {string} [options.cacheKey] The cache key of the resource.

@exception {DeveloperError} One of options.typedArray and options.resource must be defined.

@private