var MapCache = require('./_MapCache'),

setCacheAdd = require('./_setCacheAdd'),
setCacheHas = require('./_setCacheHas');

/**

*
* Creates an array cache object to store unique values.
*
* @private
* @constructor
* @param {Array} [values] The values to cache.
*/

function SetCache(values) {

var index = -1,
    length = values == null ? 0 : values.length;

this.__data__ = new MapCache;
while (++index < length) {
  this.add(values[index]);
}

}

// Add methods to `SetCache`. SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; SetCache.prototype.has = setCacheHas;

module.exports = SetCache;