serenity/AK
Brian Gianforcaro c825159f01 AK: Add AK_ENUM_BITWISE_OPERATORS(..) to enable type-safe enum bitwise operations
This change introduces `AK_ENUM_BITWISE_OPERATORS(..)` which when
enabled for an enum, will automatically declare all the necessary
bitwise operators for that enum.

This allows bit masks enums to be used as first class, type safe, citizens.
2021-03-08 18:47:40 +01:00
..
Tests AK: Add AK_ENUM_BITWISE_OPERATORS(..) to enable type-safe enum bitwise operations 2021-03-08 18:47:40 +01:00
AllOf.h AK: Publish all_of() 2021-02-17 15:22:21 +01:00
AnyOf.h AK: Publish AK::any_of by default 2021-02-07 11:35:08 +01:00
Array.h AK: Always do bounds checking in Array::operator[] 2021-02-27 09:23:32 +01:00
Assertions.h Everywhere: Remove unused RELEASE_ASSERT macro 2021-02-23 21:11:53 +01:00
Atomic.h AK: Add a full memory barrier function based on atomic operations 2021-03-05 11:29:34 +01:00
Badge.h Badge: Access to underlying type 2021-01-15 09:44:21 +01:00
Base64.cpp Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
Base64.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
BinarySearch.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
Bitmap.h AK: Simplify Bitmap and implement in terms of BitmapView 2021-03-04 11:25:45 +01:00
BitmapView.h AK: Add BitmapView class (like StringView but for bitmaps) 2021-03-04 11:25:45 +01:00
BitStream.h
Buffered.h
ByteBuffer.cpp AK: Alter ByteBuffer to utilise memcmp. 2021-02-21 16:34:51 +01:00
ByteBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Checked.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CheckedFormatString.h AK: Rename {DBGLN_NO => ENABLE}_COMPILETIME_FORMAT_CHECK 2021-02-24 13:07:57 +01:00
CircularDeque.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CircularDuplexStream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CircularQueue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CMakeLists.txt Meta: Build AK and LibRegex tests in Lagom and for Serenity 2021-02-28 18:19:37 +01:00
Concepts.h AK: Pull Is{Integral,FloatingPoint} into the global namespace 2020-12-05 23:52:17 +01:00
Debug.h.in HackStudio/LanguageServers: Move some components out of Cpp 2021-03-04 11:21:43 +01:00
Demangle.h
DistinctNumeric.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
DoublyLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Endian.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
EnumBits.h AK: Add AK_ENUM_BITWISE_OPERATORS(..) to enable type-safe enum bitwise operations 2021-03-08 18:47:40 +01:00
FileStream.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
Find.h AK: Find a value in any container offering iterators 2021-01-11 19:45:05 +01:00
FlyString.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
FlyString.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Format.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Format.h AK: Make dbgln_if() avoid evaluating the arguments when disabled 2021-02-24 13:07:28 +01:00
Forward.h Kernel: Prevent using copy_from_user() for timespec/timeval 2021-03-02 08:36:08 +01:00
Function.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
GenericLexer.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
GenericLexer.h
HashFunctions.h Everywhere: Fix weird includes 2021-02-08 18:03:57 +01:00
HashMap.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
HashTable.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Hex.cpp AK: Use StringBuilder::appendff() instead of appendf() 2021-02-09 19:18:13 +01:00
Hex.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
IDAllocator.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
InlineLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IntrusiveList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IPv4Address.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IterationDecision.h
Iterator.h AK: Make single pivot quick_sort guarantee a max stack depth of log(n) 2021-02-01 09:52:36 +01:00
JsonArray.h AK: Add JsonArray(const Vector<T>) constructor 2021-01-15 23:26:47 +01:00
JsonArraySerializer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonObject.h AK: JsonObject::value_or() fallback value should be a const reference 2021-03-08 11:50:36 +01:00
JsonObjectSerializer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonParser.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
JsonParser.h
JsonPath.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonPath.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonValue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonValue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
kmalloc.h
kstdio.h AK: Remove unused kprintf macro 2021-02-20 17:21:03 +01:00
LexicalPath.cpp AK: Add LexicalPath::relative_path 2021-02-20 15:53:37 +01:00
LexicalPath.h AK: Add LexicalPath::relative_path 2021-02-20 15:53:37 +01:00
LogStream.cpp AK: Use StringBuilder::appendff() instead of appendf() 2021-02-09 19:18:13 +01:00
LogStream.h Everywhere: Deprecate dbg(). 2021-01-23 16:46:26 +01:00
MACAddress.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MappedFile.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
MappedFile.h LibC+Everywhere: Remove open_with_path_length() in favor of open() 2021-01-12 23:34:01 +01:00
MemMem.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Memory.h
MemoryStream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NeverDestroyed.h
Noncopyable.h
NonnullOwnPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NonnullOwnPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NonnullPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NonnullRefPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NonnullRefPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NumberFormat.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
NumericLimits.h
Optional.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
OSError.h AK: Add AK::OSError, a wrapper for errno codes 2021-01-10 16:46:13 +01:00
OwnPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Platform.h AK+Kernel: Remove NO_DISCARD macro hack 2021-03-03 23:08:42 +01:00
PrintfImplementation.h AK: Clean up includes around printf/vdbgprintf 2021-02-08 18:03:57 +01:00
Queue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
QuickSort.h AK: Make single pivot quick_sort guarantee a max stack depth of log(n) 2021-02-01 09:52:36 +01:00
Random.h Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
RefCounted.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
RefPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Result.h AK: Add release_value() and release_error() to AK::Result 2021-01-09 19:57:50 +01:00
ScopedValueRollback.h
ScopeGuard.h
ScopeLogger.h LibCpp: Add the beginning of a C++ parser 2021-01-27 21:10:57 +01:00
SIMD.h AK: Add header for SIMD vectorized types 2020-12-08 09:39:43 +01:00
Singleton.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
SinglyLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
SinglyLinkedListWithCount.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
SourceGenerator.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Span.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StackInfo.cpp AK: Fix OOO mistake in StackInfo.cpp 2021-03-03 11:09:44 +01:00
StackInfo.h
StdLibExtras.h AK: Implement IsEnum<T> and UnderlyingType<T> type traits 2021-03-05 11:30:13 +01:00
Stream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
String.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
String.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringBuilder.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringBuilder.h AK+Kernel+Userland: Enable some more compiletime format string checks 2021-02-23 13:59:33 +01:00
StringImpl.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringImpl.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringUtils.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringUtils.h AK: Add String{,Utils}::to_snakecase() 2021-02-21 19:47:47 +01:00
StringView.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringView.h AK: Don't compare past '\0' in StringView::operator==(const char*) 2021-02-24 22:13:04 +01:00
TemporaryChange.h
TestSuite.h AK+LibM: Rename EXPECT_CLOSE to EXPECT_APPROXIMATE 2021-03-03 20:19:24 +01:00
Time.cpp AK: Take advantage of constexpr in Time and add time conversion methods 2021-03-08 15:29:11 +01:00
Time.h AK: Take advantage of constexpr in Time and add time conversion methods 2021-03-08 15:29:11 +01:00
Traits.h AK: Find a value in any container offering iterators 2021-01-11 19:45:05 +01:00
Trie.h AK: Replace some SFINAE with requires clauses, clean up existing ones 2020-12-30 13:28:49 +01:00
TypeCasts.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TypedTransfer.h AK: remove unused and uninteresting return value 2021-02-08 18:03:57 +01:00
TypeList.h AK: Add missing 'template' keywords in TypeList 2020-12-31 16:16:07 +01:00
Types.h AK: Add default memory order as template argument for Atomic<T> 2021-01-04 19:13:52 +01:00
URL.cpp AK: Add optional fragment parameter to create_with_file_protocol() 2021-03-07 11:00:36 +01:00
URL.h AK: Add optional fragment parameter to create_with_file_protocol() 2021-03-07 11:00:36 +01:00
URLParser.cpp AK: Add optional parameter for excluding chars to urlencode() 2021-01-31 19:05:55 +01:00
URLParser.h AK: Add optional parameter for excluding chars to urlencode() 2021-01-31 19:05:55 +01:00
Userspace.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Utf8View.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Utf8View.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Utf32View.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UUID.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UUID.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Vector.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Weakable.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
WeakPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00