summaryrefslogtreecommitdiff
path: root/notes/collection_types.txt
blob: 348062c90f4b1d238e61f1c8fa0e484c5f50f22c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Collection types
================

- Range types (see LRL stdlib)
- List -- see list_types.txt
- Set  -- see list_types.txt
- Map
- MultiMap
- LinProbeSet (a compact set for uniformly distributed integers, like hashes)... Shouldn't this be a specialized Set type?
- RingBuffer
- Cache -- has an open function that either returns: a blank entry for writing, a future for later reading (or blocking read) or error
- Pool -- has available and in-use resources, and may have automatic growing and shrinking
- TransformationBuffer<T,U> -- starts with untransformed data (type T) and transforms in in-place into a smaller or equally sized type U.
- TextBuffer -- text buffer that allows efficient character/line insertion/deletion, search/replace and multi-level undo. Text segments may have arbitrary "attribute" objects also

Should we have compressed types also?
- CompressedList
- SolidCompressedList
- CompressedMap (compressed values only)
...and should we also have encrypted types? 
...or, should we only have wrappers for compression and encryption? Must simpler.


Concurrent types
----------------

- ConcurrentQueue / ConcurrentList
- ConcurrentSet
- ConcurrentRingBuffer
(- ConcurrentCache?)
- ConcurrentPool