Max Kellermann
|
d0d095cbcd
|
util/IntrusiveHashSet: rename "slot" to "bucket"
|
2022-11-22 21:40:52 +01:00 |
|
Max Kellermann
|
3239fce5c1
|
util/IntrusiveHashSet: add remove_and_dispose_if()
|
2022-11-22 21:40:11 +01:00 |
|
Max Kellermann
|
200b770104
|
util/IntrusiveHashSet: add for_each()
|
2022-11-22 21:40:04 +01:00 |
|
Max Kellermann
|
3aa959eda7
|
util/IntrusiveHashSet: add erase_and_dispose()
|
2022-11-22 21:39:40 +01:00 |
|
Max Kellermann
|
72c047f4f0
|
util/IntrusiveHashSet: add hash_function(), key_eq()
|
2022-11-21 09:10:44 +01:00 |
|
Max Kellermann
|
7c4fca0ae1
|
util/SpanCast: add ToStringView() template
|
2022-11-15 00:36:28 +01:00 |
|
Max Kellermann
|
51769c40d8
|
util/IntrusiveSortedList: new class
|
2022-11-13 09:08:36 +01:00 |
|
Max Kellermann
|
85ab89a08b
|
util/IntrusiveHashSet: add missing typename (to make clang happy)
|
2022-11-13 08:40:53 +01:00 |
|
Max Kellermann
|
c943e27d51
|
util/IntrusiveHashSet: new class
Incomplete draft implementation, just enough methods for current
needs.
|
2022-11-13 08:38:53 +01:00 |
|
Max Kellermann
|
fb5d77158a
|
util/IntrusiveList: add enum LinkMode
Compile-time code simplification.
|
2022-11-13 08:15:47 +01:00 |
|
Max Kellermann
|
f1dc1af85d
|
util/IntrusiveList: use const_cast to eliminate duplicate HookTraits functions
I hate const_cast, but what I hate more is duplicate code. Sigh.
|
2022-11-12 08:45:24 +01:00 |
|
Max Kellermann
|
7b3d870516
|
util/IntrusiveForwardList: remove unnecessary initializer from hook
|
2022-11-11 21:14:52 +01:00 |
|
Max Kellermann
|
970ccf043b
|
util/SortList: enable the std::predicate kludge for macOS as well
Sigh.
|
2022-11-11 19:30:58 +01:00 |
|
Max Kellermann
|
29143dec87
|
util/SortList: kludge for Android NDK compatibility
|
2022-11-11 19:17:13 +01:00 |
|
Max Kellermann
|
a448d04d46
|
util/SortList: library which sorts linked lists
|
2022-11-11 19:03:39 +01:00 |
|
Max Kellermann
|
60e640af5a
|
util/IntrusiveList: add single-item splice() overload
|
2022-11-11 18:29:50 +01:00 |
|
Max Kellermann
|
df15c418c7
|
util/IntrusiveList: fix swap() implementation if second list is empty
|
2022-11-11 18:29:50 +01:00 |
|
Max Kellermann
|
04ab8ae27b
|
util/IntrusiveList: add type aliases value_type, pointer, reference
|
2022-11-11 17:15:20 +01:00 |
|
Max Kellermann
|
b4a64af15e
|
util/IntrusiveList: constant_time_size is a template argument, not a variable
|
2022-11-11 17:15:16 +01:00 |
|
Max Kellermann
|
838c057231
|
util/IntrusiveList: use auto
Fixes typos in the const_iterator return types, and fixes returning
references to stack values.
|
2022-11-11 16:33:49 +01:00 |
|
Max Kellermann
|
af544bb16f
|
util/IntrusiveList: fix typos
|
2022-11-11 10:11:42 +01:00 |
|
Max Kellermann
|
84fd401d21
|
util/IntrusiveList: add method splice()
|
2022-11-11 10:05:20 +01:00 |
|
Max Kellermann
|
b5d224496f
|
util/IntrusiveList: iterators are bidirectional
|
2022-11-11 09:20:09 +01:00 |
|
Max Kellermann
|
78d8b5f73c
|
util/OptionalCounter: add operator+= and operator-=
|
2022-11-10 16:55:04 +01:00 |
|
Max Kellermann
|
5670d98c54
|
util/IntrusiveList: move code to IntrusiveListNode::Connect()
|
2022-11-10 16:52:34 +01:00 |
|
Max Kellermann
|
1786eef8e6
|
util/IntrusiveForwardList: new class
|
2022-11-10 12:07:59 +01:00 |
|
Max Kellermann
|
988f5d1b5d
|
util/StringSplit: add SplitWhile()
|
2022-11-09 19:23:19 +01:00 |
|
Max Kellermann
|
3ab3d5555e
|
util/StringSplit: reimplement without std::distance()
Avoid including <iterator>.
|
2022-11-09 19:23:10 +01:00 |
|
Max Kellermann
|
2e5d46c399
|
util/StringSplit: add constexpr
|
2022-11-09 19:23:05 +01:00 |
|
Max Kellermann
|
7600ad7cac
|
util/StringSplit: add Partition()
|
2022-11-09 19:22:54 +01:00 |
|
Max Kellermann
|
485ad583a0
|
util/CharUtil: add IsLowerAlphaNumericASCII()
|
2022-11-09 19:21:43 +01:00 |
|
Max Kellermann
|
a12b004fa4
|
util/StaticVector: new class
|
2022-08-09 12:44:02 +02:00 |
|
Max Kellermann
|
cc0def15c4
|
Copyright year 2022
|
2022-07-14 17:59:35 +02:00 |
|
Max Kellermann
|
cd241a93c1
|
util/DynamicFifoBuffer: pass std::span to Append()
|
2022-07-11 22:38:24 +02:00 |
|
Max Kellermann
|
bc56f8c2f0
|
util/ConstBuffer: remove obsolete library
Everything has been migrated to std::span.
|
2022-07-04 19:15:10 +02:00 |
|
Max Kellermann
|
e8667f99be
|
util/OptionParser: use std::span instead of ConstBuffer
|
2022-07-04 19:04:16 +02:00 |
|
Max Kellermann
|
d89136b09c
|
util/ConstBuffer: hard-code std::span support
|
2022-07-04 18:09:32 +02:00 |
|
Max Kellermann
|
d58c38943a
|
util/StringView: remove obsolete class
Everything has been migrated to std::string_view.
|
2022-07-04 15:04:31 +02:00 |
|
Max Kellermann
|
66704ec879
|
util/UriExtract: use std::string_view instead of StringView
|
2022-07-04 15:04:31 +02:00 |
|
Max Kellermann
|
422c1e9288
|
util/TemplateString: remove StringView support
|
2022-07-04 15:04:31 +02:00 |
|
Max Kellermann
|
f32d752ccb
|
util/NumberParser: use std::string_view
|
2022-07-01 11:29:11 +02:00 |
|
Max Kellermann
|
02fe857755
|
util/IterableSplitString: return std::string_view
|
2022-07-01 11:29:11 +02:00 |
|
Max Kellermann
|
ea3f044cd8
|
util/SplitString: use std::string_view
|
2022-07-01 11:29:11 +02:00 |
|
Max Kellermann
|
6d23ac67f9
|
util/UriQueryParser: use std::string_view
|
2022-07-01 11:29:10 +02:00 |
|
Max Kellermann
|
ca46b4d7a7
|
util/MimeType: use std::string_view
|
2022-07-01 11:29:10 +02:00 |
|
Max Kellermann
|
9976665cc7
|
util/UriRelative: use std::string_view internally
|
2022-07-01 10:56:29 +02:00 |
|
Max Kellermann
|
c5f037fa64
|
util/StringCompare: move code from StringView
|
2022-07-01 10:48:34 +02:00 |
|
Max Kellermann
|
5ec13c0b06
|
util/StringStrip: add libc++ compatibility kludge
|
2022-07-01 10:45:37 +02:00 |
|
Max Kellermann
|
b806b0a97f
|
util/StringStrip: add std::string_view overloads
|
2022-06-30 21:00:07 +02:00 |
|
Max Kellermann
|
10197a0041
|
util/IterableSplitString: use std::string_view internally
|
2022-06-30 20:54:42 +02:00 |
|