Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
exotic-structures / wip / ListCache.ts
Size: Mime:
/** @ignore 🚧 wip */

// import assocIndexOf from './assocIndexOf.js'

// class ListCache {
//   /**
//    * Creates an list cache object.
//    *
//    * @private
//    * @constructor
//    * @param {Array} [entries] The key-value pairs to cache.
//    */
//   constructor(entries) {
//     let index = -1
//     const length = entries == null ? 0 : entries.length
//
//     this.clear()
//     while (++index < length) {
//       const entry = entries[index]
//       this.set(entry[0], entry[1])
//     }
//   }
//
//   /**
//    * Removes all key-value entries from the list cache.
//    *
//    * @memberOf ListCache
//    */
//   clear() {
//     this.__data__ = []
//     this.size = 0
//   }
//
//   /**
//    * Removes `key` and its value from the list cache.
//    *
//    * @memberOf ListCache
//    * @param {string} key The key of the value to remove.
//    * @returns {boolean} Returns `true` if the entry was removed, else `false`.
//    */
//   delete(key) {
//     const data = this.__data__
//     const index = assocIndexOf(data, key)
//
//     if (index < 0) {
//       return false
//     }
//     const lastIndex = data.length - 1
//     if (index == lastIndex) {
//       data.pop()
//     }
//     else {
//       data.splice(index, 1)
//     }
//     --this.size
//     return true
//   }
//
//   /**
//    * Gets the list cache value for `key`.
//    *
//    * @memberOf ListCache
//    * @param {string} key The key of the value to get.
//    * @returns {*} Returns the entry value.
//    */
//   get(key) {
//     const data = this.__data__
//     const index = assocIndexOf(data, key)
//     return index < 0 ? undefined : data[index][1]
//   }
//
//   /**
//    * Checks if a list cache value for `key` exists.
//    *
//    * @memberOf ListCache
//    * @param {string} key The key of the entry to check.
//    * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
//    */
//   has(key) {
//     return assocIndexOf(this.__data__, key) > -1
//   }
//
//   /**
//    * Sets the list cache `key` to `value`.
//    *
//    * @memberOf ListCache
//    * @param {string} key The key of the value to set.
//    * @param {*} value The value to set.
//    * @returns {Object} Returns the list cache instance.
//    */
//   set(key, value) {
//     const data = this.__data__
//     const index = assocIndexOf(data, key)
//
//     if (index < 0) {
//       ++this.size
//       data.push([key, value])
//     }
//     else {
//       data[index][1] = value
//     }
//     return this
//   }
// }
//
// module.exports = ListCache