Commit Graph

89 Commits

Author SHA1 Message Date
Bananymous
0e77b4dc4e BAN: You can now transform little endian data to host endian 2023-02-22 21:47:22 +02:00
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
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