Max Kellermann
|
688d9ff114
|
util/UriExtract: add uri_get_path_query_fragment()
Rename uri_get_path() to uri_get_path_query_fragment() and add a new
uri_get_path() function.
|
2023-03-14 20:03:17 +01:00 |
|
Max Kellermann
|
f3ebaf8bdd
|
util/ByteOrder: add class PackedLE64
|
2023-03-12 20:25:49 +01:00 |
|
Max Kellermann
|
fb961e89da
|
util/StringCompare: add constexpr
|
2023-03-12 20:14:23 +01:00 |
|
Max Kellermann
|
8b77da545d
|
*: use transparent comparison for std::{map,set} with std::string keys
This avoids many std::string temporaries for lookups.
|
2023-03-12 09:12:02 +01:00 |
|
Max Kellermann
|
415de497d3
|
use more libfmt instead of sprintf()
|
2023-03-06 19:50:53 +01:00 |
|
Max Kellermann
|
941f2ca60d
|
pcm/{Traits,Dsd*}: use std::byte
|
2023-03-06 18:44:20 +01:00 |
|
Max Kellermann
|
35b6d65f27
|
util/Compiler.h: remove unused compiler version check macros
|
2023-03-06 16:37:46 +01:00 |
|
Max Kellermann
|
ff239fff4f
|
util/ByteOrder: check only __GNUC__
Assume GCC/clang is recent enough.
|
2023-03-06 16:37:45 +01:00 |
|
Max Kellermann
|
47b3577d6b
|
util/Compiler.h: remove unused macro gcc_printf
|
2023-03-06 16:27:47 +01:00 |
|
Max Kellermann
|
1f56960c44
|
util/FormatString: remove unused library
|
2023-03-06 16:24:51 +01:00 |
|
Max Kellermann
|
18c3c2118d
|
util/Compiler.h: remove unused macros
|
2023-03-06 16:14:30 +01:00 |
|
Max Kellermann
|
42f6a0441c
|
use [[gnu::...]] attributes
|
2023-03-06 16:14:15 +01:00 |
|
Max Kellermann
|
3b9aab0684
|
util/UTF8: fix indent
|
2023-03-06 16:12:09 +01:00 |
|
Max Kellermann
|
148aca23be
|
use SPDX IDs, replacing the long copyright headers
|
2023-03-06 14:59:48 +01:00 |
|
Max Kellermann
|
f1cea1f152
|
util/IntrusiveHashSet: add unlink(), is_linked()
|
2023-01-31 13:07:26 +01:00 |
|
Max Kellermann
|
5b07c8fc6c
|
util/CharUtil: add IsLowerAlphaNumericASCII()
|
2023-01-29 09:39:40 +01:00 |
|
Max Kellermann
|
b45afd1cab
|
util/StringBuffer: add constexpr
|
2023-01-29 09:38:40 +01:00 |
|
Max Kellermann
|
ebf65572dd
|
util/ByteOrder: remove unnecessary operator=
The compiler can just use the uint32_t constructor instead. This was
redundant code.
|
2023-01-28 07:48:03 +01:00 |
|
Max Kellermann
|
f31ae7c556
|
util/RingBuffer: replacement for boost::lockfree::spsc_queue
|
2023-01-23 13:44:54 +01:00 |
|
Max Kellermann
|
868958e159
|
util/IntrusiveHashSet: fix find_if() concept
|
2023-01-22 12:25:55 +01:00 |
|
Max Kellermann
|
52af03a5a6
|
util/IntrusiveHashSet: implement remove_and_dispose_if() with constant_time_size
|
2023-01-22 12:24:50 +01:00 |
|
Max Kellermann
|
7475e971bc
|
util/IntrusiveList: remove_and_dispose_if() returns the number of removed items
|
2023-01-22 12:24:43 +01:00 |
|
Max Kellermann
|
c65b1fee8d
|
util/IntrusiveHashSet: check key equivalence in remove_and_dispose_if()
|
2023-01-22 12:24:41 +01:00 |
|
Max Kellermann
|
e2abade6aa
|
util/IntrusiveList: add postfix operator++
|
2023-01-22 12:24:33 +01:00 |
|
Max Kellermann
|
57673136d8
|
util/IntrusiveHashSet: add method expire_find_if()
|
2023-01-22 12:24:30 +01:00 |
|
Max Kellermann
|
49e122a81d
|
util/IntrusiveHashSet: add method remove_and_dispose_if(key)
|
2023-01-22 12:24:23 +01:00 |
|
Max Kellermann
|
c7a0597fe7
|
util/Intrusive*: add C++20 concept checks
|
2022-12-01 15:43:51 +01:00 |
|
Max Kellermann
|
00b7535cf1
|
util/Concepts: compatibility wrapper for std::predicate
|
2022-12-01 15:11:27 +01:00 |
|
Max Kellermann
|
5945877313
|
util/IntrusiveHashSet: add missing Cast()/ToHook() functions to IntrusiveHashSetMemberHookTraits
|
2022-12-01 15:10:42 +01:00 |
|
Max Kellermann
|
fe3e1d31bf
|
util/IntrusiveHashSet: remove unused type alias "ListHookTraits"
|
2022-12-01 15:10:38 +01:00 |
|
Max Kellermann
|
65f1cafa43
|
util/IntrusiveHashSet: add method find_if()
|
2022-12-01 15:10:32 +01:00 |
|
Max Kellermann
|
e3ef0929f1
|
util/IntrusiveHashSet: add const overloads
|
2022-12-01 15:10:20 +01:00 |
|
Max Kellermann
|
8860962e09
|
util/IntrusiveHashSet: make several methods const
|
2022-12-01 15:10:13 +01:00 |
|
Max Kellermann
|
f13b8f669d
|
util/IntrusiveList: simplify ToHook() overload with const_cast
|
2022-12-01 15:10:09 +01:00 |
|
Max Kellermann
|
fa58db798b
|
lib/fmt/RuntimeError: new library
Replacing FormatRuntimeError().
|
2022-11-29 14:10:34 +01:00 |
|
Max Kellermann
|
45b13fc2a6
|
util/OptionParser: move to cmdline/
This library will depend on libfmt, and libutil shouldn't depend on
any library.
|
2022-11-29 11:32:16 +01:00 |
|
Max Kellermann
|
40d0828ccd
|
util/StringBuffer: add non-const iterator
|
2022-11-28 23:10:01 +01:00 |
|
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 |
|