1e46109e50
algorithm.mutation.destroyAll: New
...
Fix #71 .
2018-10-29 11:14:33 +01:00
ff58b5e81c
Add algorithm.mutation.initializeAll
2018-10-24 08:14:15 +02:00
3b5709821a
Add algorithm.mutation.uninitializedFill
2018-10-20 10:42:01 +02:00
6d01680685
conv.emplace: Fix emplacing structs w/o this()
2018-10-08 17:51:59 +02:00
4f9927a8c3
Add algorithm.mutation.fill()
2018-10-06 16:00:08 +02:00
2a90a812db
Add algorithm.searching.count
2018-09-30 15:25:10 +02:00
b0dc7b59e5
Add predicate support for algorithm.comparison.equal
2018-09-17 19:17:39 +02:00
b831a05407
Introduce hash.lookup.isHashFunction trait
...
Fix #66 .
2018-09-14 15:16:08 +02:00
b6d1766d58
Implement compare algorithm. Fix #50
2018-09-11 10:05:15 +02:00
4653e94fa1
Merge remote-tracking branch 'n8sh/relax-hasher-reqs'
2018-08-12 06:17:12 +02:00
Nathan Sashihara
22cffe9d6e
Set: allow hasher to take arg by ref
2018-08-06 14:41:47 -04:00
abd286064b
Add algorithm.mutation.copy
2018-08-05 07:19:30 +02:00
3df4eb6259
Don't check UTF-8 correctness when inserting chars
...
- Fix bug when inserting char ranges that are not arrays
- Optimize insertion from the String own range
- Assume char and char ranges are correclty encoded (as it actually
should be) and don't throw an exception. This should make the most
common use cases nothrow (Fix #19 ). Dchars and Wchars are still encoded
because they should be converted to UTF-8 before inserting anyway.
2018-07-06 05:36:13 +02:00
d54e06f43c
Iterate hash table by key or by value
2018-06-29 20:43:05 +02:00
5e901f505c
Make HashTable work complex types as key
...
- Add toHash() function for String
- The key type shouldn't match exact for a lookup.
The key type and lookup key type should be comparable.
- Move elements when inserting if passed by value.
2018-06-28 12:14:45 +02:00
533fa3b023
container.HashTable: Fix infinite rehashing when inserting
...
Fix #53 .
2018-06-27 05:45:53 +02:00
411e45ec5c
Remove functions deprecated in 0.9.0
2018-06-22 07:11:56 +02:00
f51e9405c9
Update socket documentation
2018-06-20 07:59:37 +02:00
a86b6690f0
Implement auto-decoding free equal comparison
...
Fix #39 .
2018-06-12 20:19:06 +02:00
c663703221
container.list: Remove deprecated list length property
2018-06-01 14:13:27 +02:00
52ec88bd04
async: Annotate system tests
2018-05-31 18:43:21 +02:00
bfe0748a63
Insert a range into the hash table and set
2018-05-30 18:50:52 +02:00
c268696ee9
HashTable/Set: Add proper assignment
2018-05-20 21:58:15 +02:00
9efbc9d5e0
Make Array postblit safe if possible
2018-05-18 07:43:18 +02:00
c511b97b1b
container.Set and HashTable: Fix constructors
2018-05-17 05:31:14 +02:00
205d7a080e
Add KeyValue alias for value tuple
2018-05-14 21:55:49 +02:00
d545d6900e
Make HashTable Range return Pair
2018-05-14 19:23:22 +02:00
3ed46117d1
Port Set ranges for HashTable
2018-05-14 19:23:22 +02:00
00dbb224f7
Move length tracking to HashArray
2018-05-14 19:23:22 +02:00
9cf1b6f491
Use HashArray as internal storage
2018-05-14 19:23:22 +02:00
bdce5cda6a
Add HashTable container
2018-05-14 19:23:22 +02:00
53620cdddf
Improve preconditions for the container.Set
2018-05-11 05:43:14 +02:00
6ed2992862
Remove unused variables
2018-05-06 07:03:11 +02:00
4f6ce116bc
Add documented tests for Set.empty and Set.clear()
2018-05-01 15:56:07 +02:00
c4424e7e01
Track hash Set length
...
Can be used later to rehash the hash table if it is full up to some
percentage.
2018-04-30 12:51:35 +02:00
18d54b4b18
HashArray as an internal store for hash containers
2018-04-29 09:12:48 +02:00
36646aa2c4
container.Set: Rewrite arch dependent tests
2018-04-28 18:07:41 +02:00
8733b93ca0
container.Set: Support customizable hasher
2018-04-28 17:49:49 +02:00
c0f9e5be10
Replace std min/max. Fix #35
2018-04-26 10:23:06 +02:00
964a7af32f
Fix list assertions for release build
2018-04-18 14:23:12 +02:00
40c961867e
Remove deprecated traits and queue
2018-04-18 06:34:28 +02:00
3fee712c6c
Implement DList.popFirstOf and DList.popLastOf
...
Fix #37 .
2018-04-17 14:46:12 +02:00
012c2d4c18
Remove support for dmd 2.076.1
2018-04-15 06:50:37 +02:00
d267a9cc64
Implement SList.popFirstOf
...
Fix #36 .
Slicing for the SList on top of the existing SRange would be inefficent.
There would be two cases:
- Range iterates till the end of the list.
- Range iterates till some element "end".
If both cases are implemented in the same range, this range should check
for both conditions (end of the list and "begin == end") instead of only
one (end of the list).
Introducing a different range is undesirable since all containers have
currently only one range.
2018-04-14 16:15:35 +02:00
d5064fa2b2
Add missing tail isn't null assertion
2018-04-07 19:20:08 +02:00
a0ac8355f9
Fix #29
2018-04-01 10:34:18 +02:00
9b1f72472f
Deprecate SList.length and DList.length
...
As they have O(n) complexity. The lists length is unknown without
iterating.
2018-03-31 08:21:15 +02:00
7829b1fe06
Remove static std.range import
2018-03-22 10:44:52 +01:00
629071f934
Add information that DList can be used as a queue
2018-03-10 07:17:43 +01:00
17cb592b13
Replace Queue with DList
2018-03-09 08:19:17 +01:00