Bananymous
f98f3d851c
BAN: HashMap uses LinkedList as bucket, so kmalloc_fixed can be used
2023-02-22 21:46:41 +02:00
Bananymous
a845f8696c
BAN: Add function to decode utf-8 encoded strings
...
works for 3 byte unicode characters
2023-02-22 21:45:26 +02:00
Bananymous
4afc4660a4
BAN: Basic containers have shrink_to_fit() method
...
I also chaged the default memory allocation increase from 1.5 to 2
2023-02-22 02:07:05 +02:00
Bananymous
5d31e89574
Kernel: Update ErrorOr API and add path find to VFS
...
These two are done on the same commit since Changes to Shell were
annoying to make work with only one change
2023-02-22 01:23:11 +02:00
Bananymous
9aab67fed8
BAN: make all Math functions inline constexpr
2023-02-22 01:17:56 +02:00
Bananymous
10b6d51522
BAN: implement Variant<> for two types
2023-02-22 01:17:21 +02:00
Bananymous
afd4b7a184
BAN: HashMap now copies size when copying :D
2023-02-22 01:16:07 +02:00
Bananymous
fbc17eb6dd
BAN: Implement basic HashMap
2023-02-20 16:00:51 +02:00
Bananymous
247f03c79e
BAN: Make ErrorOr<> have attribute [[nodiscard]]
...
We don't have to specify it everytime we make function return ErrorOr
2023-02-19 20:10:30 +02:00
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