You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

4 years ago
  1. # Cyclist
  2. Cyclist is an efficient [cyclic list](http://en.wikipedia.org/wiki/Circular_buffer) implemention for Javascript.
  3. It is available through npm
  4. ```
  5. npm install cyclist
  6. ```
  7. [![build status](http://img.shields.io/travis/mafintosh/cyclist.svg?style=flat)](http://travis-ci.org/mafintosh/cyclist)
  8. ## What?
  9. Cyclist allows you to create a list of fixed size that is cyclic.
  10. In a cyclist list the element following the last one is the first one.
  11. This property can be really useful when for example trying to order data
  12. packets that can arrive out of order over a network stream.
  13. ## Usage
  14. ``` js
  15. var cyclist = require('cyclist')
  16. var list = cyclist(4)
  17. list.put(42, 'hello 42') // store something and index 42
  18. list.put(43, 'hello 43') // store something and index 43
  19. console.log(list.get(42)) // prints hello 42
  20. console.log(list.get(46)) // prints hello 42 again since 46 - 42 == list.size
  21. ```
  22. ## API
  23. * `cyclist(size)` creates a new buffer
  24. * `cyclist#get(index)` get an object stored in the buffer
  25. * `cyclist#put(index,value)` insert an object into the buffer
  26. * `cyclist#del(index)` delete an object from an index
  27. * `cyclist#size` property containing current size of buffer
  28. ## License
  29. MIT