Bananymous
66a4b69a29
BAN: Math now uses template concepts and add div_round_up
2023-02-19 00:48:56 +02:00
Bananymous
7f12a7050a
BAN: Add data() to Vector.
...
This allows you to access the underlying data in a vector
2023-02-16 20:47:49 +02:00
Bananymous
f188fea81c
BAN: Implement basic HashSet
2023-02-10 02:59:52 +02:00
Bananymous
7630df84ad
BAN: Add basic hashing functionality
2023-02-10 02:59:30 +02:00
Bananymous
4f8fcf0bd7
BAN: Add Formatter specialization for Vector
2023-02-10 02:58:14 +02:00
Bananymous
f68ae01d0c
BAN: Fix ErrorOr<void> to actually set error byte
2023-02-10 01:06:18 +02:00
Bananymous
7ee4ecd7f4
BAN: Vector's and Queue's underlying type is T* instead of uint8_t*
...
I have no idea what kind of brainfart I had to make use uint8_t*
that just complicated the code :D
2023-02-10 00:12:23 +02:00
Bananymous
e5ffc1686f
BAN: Vector::const_iterator now uses const T* as underlying type
2023-02-09 23:06:49 +02:00
Bananymous
bfc9a2377c
BAN: LinkedList now uses iterators instead of const_iterators on methods
2023-02-09 23:06:16 +02:00
Bananymous
6a133782ed
All: Move to c++20
2023-02-09 23:05:26 +02:00
Bananymous
338771c5b0
BAN: Cleanup Vector code
...
*Applies to last patch also!*
Remove duplicate code in iterators. We used to have separate iterator
and const_iterator but now they are the same class with some enable_if
magic to disable references from const_iterator
This introduces some 'bad things' you can for example call
const_iterator.operator*<false>() to obtain non const reference. I
don't think this matters since you could use const_cast or something
else to work around const if you really tried
2023-02-07 11:08:05 +02:00
Bananymous
08dfb0e1db
BAN: Cleanup LinkedList code
2023-02-06 19:01:52 +02:00
Bananymous
2403df50bb
BAN: Add getter for Function size
2023-02-02 23:19:18 +02:00
Bananymous
0d2d6e5348
BAN: Fix all emplace functions to actually do perfect forwarding
2023-02-01 21:41:51 +02:00
Bananymous
99cf1c0330
BAN: Add destructor to function if it needs to deallocate something someday
2023-02-01 21:41:18 +02:00
Bananymous
9b8de5025a
All: rename every function from UpperCamelCase to snake_case
...
This was a mess since I didn't know which to use but now I decided
to go with snake_case :)
2023-02-01 21:05:44 +02:00
Bananymous
4faa662a59
BAN: Rewrite Traits and add some more of them
2023-02-01 20:05:34 +02:00
Bananymous
1945b716ad
BAN: Implement basic LinkedList
2023-02-01 01:22:41 +02:00
Bananymous
5127da9ecc
BAN: Add more traits
2023-02-01 01:22:19 +02:00
Bananymous
56d6b2af3d
BAN: TRY() now returns the error itself and not ErrorOr<>
...
This allows us to use TRY with different ErrorOr<> templates
2023-02-01 01:21:14 +02:00
Bananymous
3a1f068bac
BAN: Add needed include to Function
2023-01-31 18:43:24 +02:00
Bananymous
f10a57dcec
BAN: Add RefCounted<> and Unique<>
...
We have now maybe functional smart pointers
2023-01-31 18:43:09 +02:00
Bananymous
b315fdc27f
Kernel: Finally managed to get 64-bit working
...
I had weird problems with interrupts but everything should work now
2023-01-25 19:19:28 +02:00
Bananymous
7c6d474a3a
BAN: Add basic ScopeGuard
2023-01-23 17:41:34 +02:00
Bananymous
c9e32b1b5b
BAN: Cleanup Queue AddressOf functions
2023-01-18 17:19:57 +02:00
Bananymous
64f0cc0d42
BAN: fix Vector code
...
one return value was missing and AddressOf functions were kinda ugly
2023-01-18 17:18:54 +02:00
Bananymous
dd607ce86f
BAN: Add basic lambda support for BAN::Function
2023-01-18 14:39:31 +02:00
Bananymous
ef2e8f1a2f
BAN: Move RemoveReference and IsLValueReference to their own header
...
Also implement basic Less, Equal, Greater
2023-01-18 13:39:08 +02:00
Bananymous
59fa4055a6
BAN: Add Queue::Emplace()
2023-01-17 12:02:59 +02:00
Bananymous
1340e26148
BAN: Add Vector::Emplace and EmplaceBack() and fix insert assignment
2023-01-17 11:59:36 +02:00
Bananymous
cf63552b2a
BAN: Cleanup includes
2023-01-17 11:38:16 +02:00
Bananymous
a7a55cd0fb
BAN: Rename Forward.h -> ForwardList.h to avoid confusion with BAN::Forward()
2023-01-17 11:21:21 +02:00
Bananymous
53a5ad3cf9
BAN: Function now properly forward arguments
2023-01-17 11:16:46 +02:00
Bananymous
124afbecaa
BAN: Add Forward()
2023-01-17 11:15:57 +02:00
Bananymous
5122d27f89
BAN: Add Front() and Back() to StringView
2023-01-16 18:56:51 +02:00
Bananymous
3561257286
BAN: Add basic Function for function pointers and member functions
2023-01-16 15:09:27 +02:00
Bananymous
a02d4c59ed
BAN: Vector and Queue replace Address() with AddressOf and correct const
2023-01-16 12:10:16 +02:00
Bananymous
c62d512d68
BAN: Add Iterator and ConstIterator to Vector
2023-01-13 17:48:19 +02:00
Bananymous
57cbd728db
BAN: Rewrite Queue with move semantics
2023-01-13 15:04:06 +02:00
Bananymous
0f4e95acc5
BAN: Rewrite vector with move semantics
2023-01-13 15:04:06 +02:00
Bananymous
065e23d307
BAN: fix include
2023-01-13 15:04:06 +02:00
Bananymous
82a25f9035
BAN: implement placement new
2023-01-13 14:45:27 +02:00
Bananymous
61de71e0d5
BAN: Properly allocate/deallocate elements in Vector/Queue
2023-01-13 01:09:40 +02:00
Bananymous
6ed542d6bf
BAN: Queue and Vector now default initialize newly allocated elements
2023-01-13 01:00:50 +02:00
Bananymous
c35181a92f
BAN: ASSERT now prints the condition
2023-01-13 00:57:47 +02:00
Bananymous
53d1d12c12
BAN: String add operator=(StringView)
2023-01-13 00:57:47 +02:00
Bananymous
c33c6c5785
BAN: memcpy only if we already have a buffer
2023-01-13 00:17:19 +02:00
Bananymous
6b73547989
All: edit gcc flags
2023-01-13 00:04:15 +02:00
Bananymous
61bd9da8e0
BAN: Add [[nodiscard]] to BAN functions returning ErrorOr
2023-01-12 23:57:07 +02:00
Bananymous
78da037dda
BAN: String, Queue and Vector dont use floating point arithmetic
2023-01-12 17:00:29 +02:00