Commit Graph

201 Commits

Author SHA1 Message Date
belka 5ab99cf887 Move memory functions into memory.lifecycle
- move
- moveEmplace
- forward
- emplace
- swap
2019-03-17 10:56:44 +01:00
belka 85d7a2b9ca Move memory exception into memory.lifecycle 2019-03-16 10:35:28 +01:00
belka c293c6c809 container.array: Fix assigning non-copyable values
Fix #59.
2018-12-18 05:37:52 +01:00
belka 49d7452b33 Make containers work with non-copyable elements
It is the first step. The containers can be at least created with
non-copyable structs without compilation errors now.
Fix #69.
2018-11-24 06:25:55 +01:00
belka 9e6f5c3105 Add algorithm.mutation.rotate 2018-11-12 07:54:52 +01:00
belka 1e46109e50 algorithm.mutation.destroyAll: New
Fix #71.
2018-10-29 11:14:33 +01:00
belka ff58b5e81c Add algorithm.mutation.initializeAll 2018-10-24 08:14:15 +02:00
belka 3b5709821a Add algorithm.mutation.uninitializedFill 2018-10-20 10:42:01 +02:00
belka 6d01680685 conv.emplace: Fix emplacing structs w/o this() 2018-10-08 17:51:59 +02:00
belka 4f9927a8c3 Add algorithm.mutation.fill() 2018-10-06 16:00:08 +02:00
belka 2a90a812db Add algorithm.searching.count 2018-09-30 15:25:10 +02:00
belka b0dc7b59e5 Add predicate support for algorithm.comparison.equal 2018-09-17 19:17:39 +02:00
belka b831a05407 Introduce hash.lookup.isHashFunction trait
Fix #66.
2018-09-14 15:16:08 +02:00
belka b6d1766d58 Implement compare algorithm. Fix #50 2018-09-11 10:05:15 +02:00
belka 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
belka abd286064b Add algorithm.mutation.copy 2018-08-05 07:19:30 +02:00
belka 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
belka d54e06f43c Iterate hash table by key or by value 2018-06-29 20:43:05 +02:00
belka 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
belka 533fa3b023 container.HashTable: Fix infinite rehashing when inserting
Fix #53.
2018-06-27 05:45:53 +02:00
belka 411e45ec5c Remove functions deprecated in 0.9.0 2018-06-22 07:11:56 +02:00
belka f51e9405c9 Update socket documentation 2018-06-20 07:59:37 +02:00
belka a86b6690f0 Implement auto-decoding free equal comparison
Fix #39.
2018-06-12 20:19:06 +02:00
belka c663703221 container.list: Remove deprecated list length property 2018-06-01 14:13:27 +02:00
belka 52ec88bd04 async: Annotate system tests 2018-05-31 18:43:21 +02:00
belka bfe0748a63 Insert a range into the hash table and set 2018-05-30 18:50:52 +02:00
belka c268696ee9 HashTable/Set: Add proper assignment 2018-05-20 21:58:15 +02:00
belka 9efbc9d5e0 Make Array postblit safe if possible 2018-05-18 07:43:18 +02:00
belka c511b97b1b container.Set and HashTable: Fix constructors 2018-05-17 05:31:14 +02:00
belka 205d7a080e Add KeyValue alias for value tuple 2018-05-14 21:55:49 +02:00
belka d545d6900e Make HashTable Range return Pair 2018-05-14 19:23:22 +02:00
belka 3ed46117d1 Port Set ranges for HashTable 2018-05-14 19:23:22 +02:00
belka 00dbb224f7 Move length tracking to HashArray 2018-05-14 19:23:22 +02:00
belka 9cf1b6f491 Use HashArray as internal storage 2018-05-14 19:23:22 +02:00
belka bdce5cda6a Add HashTable container 2018-05-14 19:23:22 +02:00
belka 53620cdddf Improve preconditions for the container.Set 2018-05-11 05:43:14 +02:00
belka 6ed2992862 Remove unused variables 2018-05-06 07:03:11 +02:00
belka 4f6ce116bc Add documented tests for Set.empty and Set.clear() 2018-05-01 15:56:07 +02:00
belka 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
belka 18d54b4b18 HashArray as an internal store for hash containers 2018-04-29 09:12:48 +02:00
belka 36646aa2c4 container.Set: Rewrite arch dependent tests 2018-04-28 18:07:41 +02:00
belka 8733b93ca0 container.Set: Support customizable hasher 2018-04-28 17:49:49 +02:00
belka c0f9e5be10 Replace std min/max. Fix #35 2018-04-26 10:23:06 +02:00
belka 964a7af32f Fix list assertions for release build 2018-04-18 14:23:12 +02:00
belka 40c961867e Remove deprecated traits and queue 2018-04-18 06:34:28 +02:00
belka 3fee712c6c Implement DList.popFirstOf and DList.popLastOf
Fix #37.
2018-04-17 14:46:12 +02:00
belka 012c2d4c18 Remove support for dmd 2.076.1 2018-04-15 06:50:37 +02:00
belka 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
belka d5064fa2b2 Add missing tail isn't null assertion 2018-04-07 19:20:08 +02:00