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
82f41844b1
container.list: Document front/back preconditions
2018-03-09 08:00:28 +01:00
9bf8754711
Fix setting new head/tail after removing in DList
2018-02-26 08:09:14 +01:00
760cea163d
Add a workaround for dmd 2.076.1 on OSX
2018-02-25 21:33:29 +01:00
03c40ecace
Fix removing all elements from DList
2018-02-25 18:25:19 +01:00
9c70e9a058
Annotate list unittests
2018-02-25 15:42:32 +01:00
5ae20512af
Fix inserting before/after a range into the string
2018-02-25 12:53:42 +01:00
048ddf21ff
Replace body with do
2018-01-31 12:05:06 +01:00
8db1851c5c
Update dmd to 2.078.0
2018-01-04 05:36:46 +01:00
e06cc5a071
Fix moveEmplace for static arrays
2017-11-01 14:27:39 +01:00
12fb9ff9f6
Add algorithm.mutation.swap
2017-11-01 13:03:48 +01:00
7a2768340e
Add algorithm package with move and moveEmplace
2017-10-29 07:51:00 +01:00
7b21238db7
String: Fix byCodePoint.popFront for multibyte chars
2017-10-14 13:47:16 +02:00
e316631f6e
Add test package
2017-10-12 07:41:35 +02:00
5d6f8e5299
Implement pure onOutOfMemory
2017-10-10 06:59:34 +02:00
87bfd77373
container.string: Add missing postblit
2017-10-08 15:53:29 +02:00
e4cd57a615
math.nbtheory: Implement natural logarithm
2017-10-02 14:55:30 +02:00
74b085b88d
Sort imports
2017-10-01 19:03:42 +02:00
ee48c25328
Replace "Ditto." with "ditto"
...
ddox doesn't recognize "Ditto.".
2017-09-22 04:08:50 +02:00
3eb8618c32
Add range.primitive
2017-09-10 10:35:05 +02:00
2c064eb05b
Add hasElaborate traits
2017-08-25 14:50:15 +02:00
ce90b4865b
Make front and popFront for arrays public
...
This commit adds tanya.range.array module which contains functions to make
the arrays act as ranges. These functions don't do any auto-decoding for
strings.
2017-08-21 06:49:02 +02:00
64f2295d1a
Fix #276
...
Add link to the source file for each module.
2017-08-12 17:01:51 +02:00
a37c9b162e
container.Set: Reduce duplicated code, add tests
2017-07-22 07:40:58 +02:00
922c8bf7a3
Fix assigning a ByCodeUnit to the String slice
...
std.algorithm.mutation copy is unable to copy a char range into a char array slice.
2017-07-19 07:58:48 +02:00
e6b91f70cb
Add style checking
...
A lot of tests are disabled. They should be enabled successively.
2017-07-14 00:05:13 +02:00
7bdc778390
Fix inserting 3 byte wchar into String
...
* Fix inserting 3 byte wchar into String
* Improve documentation
2017-07-09 15:16:06 +02:00
4834b36271
Finish DList implementation. Fixes #209
...
* removeBack
* insertAfter
* Diverse fixes of insertion logic
* Internal moveFront and moveBack functions
* Internal makeList function
2017-07-08 15:51:17 +02:00
53df12897b
Add missing methods to DList. Issue #209
2017-07-08 13:44:57 +02:00
4ac890d7d3
Fix #260
...
DList invariant fails.
2017-07-08 05:41:04 +02:00
b79657f0d2
Fix 232
2017-07-06 08:35:16 +02:00
4fd37e84f8
Fix #232 for Array
...
Because const is transitive, if we create a range as Range!(const E)
there is no way to get the original type from inside of the range. So if
E is int*, the original type of const(E) could be const(int)* or int*.
Unqual!(const(int*)) returns const(int)*. So pass the whole container as
template parameter. It is a breaking change but since we have Range and
ConstRange aliases now, the usage should be fine.
2017-07-04 07:24:29 +02:00
a6dfb3a19e
Fix DList.opAssign not changing tail
2017-06-28 08:12:58 +02:00
47b394d8c3
Add module documentation. Fix #248
2017-06-24 09:08:19 +02:00
a4de1cc754
toStringz returns a pointer
2017-06-22 11:48:58 +02:00
faa44b6704
Remove deprecated tanya.container.vector
2017-06-09 19:27:54 +02:00
278e851414
Rename String.toString to String.get()
...
Last changed it only by the Range and forgotten about the string itself.
2017-06-08 07:59:16 +02:00
4633bcc680
Set: Fix comparing with removed elements
2017-06-07 07:57:22 +02:00
bc32511254
Fix template parameters for Set
2017-06-01 22:36:38 +02:00
f30972f948
Add basic constructors and opAssign to Set
2017-06-01 06:26:06 +02:00
ea33ca62c8
Implement lookups in the Set
2017-05-31 10:29:07 +02:00
2815b53a88
Implement Set Range
2017-05-30 15:52:18 +02:00