Commit Graph

39 Commits

Author SHA1 Message Date
06f4b0b29a BAN: Make String and StringView header only
This allows linking with libc without having to link ban
2024-05-23 15:43:26 +03:00
9c36d7c338 BAN/Kernel: Rework assertion/panic system
BAN/Assert.h does not need any includes meaning it can be included
anywhere without problems.
2024-03-04 11:41:54 +02:00
dfe5a2d665 All: Cleanup all files
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
a5660b95b2 BAN: String don't memcpy with nullptr 2024-01-17 19:04:40 +01:00
d2bc399770 BAN: Make StringView::split const and fix bug with empties 2024-01-03 00:14:29 +02:00
0e714d5eb4 BAN: Implement String::operator==(const String&) 2023-12-24 13:36:46 +02:00
2e77718f07 BAN: Implement find() for StringView 2023-12-23 18:43:52 +02:00
d5e0900cbb BAN: String now uses union for its sso storage
This allows String to shrink by 8 bytes since Variant's 8 index is
no longer stored in here.

This required me to make Strings max size one bit less, but that
should still be fine. There should never be strings with size of
over half of the computer's address space.
2023-10-30 11:13:16 +02:00
229082a1b2 BAN: Rewrite String with small string optimizations
String now holds a 15 byte sso buffer. I'm not sure what the size
should actually be but 15 will work for now. Maybe the sso buffer
should be contained in an union with one bit flag in size instead of
variant that uses extra 8 bytes for type index.

This patch buffs sizeof(String) from 24 bytes to 32 bytes on 64 bit.
I assume this is much better version than the old which had to make
allocation even for empty strings :D.
2023-10-29 03:11:13 +03:00
Bananymous
921d95d18f All: Clear lines with only whitspace in them 2023-09-10 00:31:42 +03:00
Bananymous
290b81dedc BAN: add StringView::contains(char) 2023-06-05 22:51:02 +03:00
Bananymous
cfa025acae BAN: Move RefPtr to its own file and create New.h
New.h contains definitions for placement new operators and
BAN::allocator and BAN::dealloctor
2023-04-10 21:07:25 +03:00
Bananymous
5d459130a7 BAN: StringView::split(char, bool) is now thread safe
I had to duplicate some code, but this is better since I would like
to not use BAN::Function for something like this
2023-03-30 16:35:38 +03:00
Bananymous
666051fd34 Kernel/BAN: move unix time conversion to BAN and add stat to Shell 2023-03-27 00:49:58 +03:00
Bananymous
c012822d49 BAN: Rename StringView suffix from _sv to sv 2023-03-16 12:15:16 +02:00
Bananymous
1c146ba1a5 BAN: remove aligned alloc from ban 2023-03-02 22:12:42 +02:00
Bananymous
52aa98ba25 Kernel+LibC: Add some errno codes
Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages
2023-03-02 21:10:44 +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
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
cf63552b2a BAN: Cleanup includes 2023-01-17 11:38:16 +02:00
Bananymous
5122d27f89 BAN: Add Front() and Back() to StringView 2023-01-16 18:56:51 +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
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
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
Bananymous
d02e3b19c7 BAN: Move operator new/delete to BAN/Memory.cpp
We also now implement alignment new
2023-01-10 21:59:40 +02:00
Bananymous
6f9552d673 BAN: Add math to its own namespace 2023-01-10 19:11:27 +02:00
Bananymous
1a65ea977d BAN: Better ASSERT() 2023-01-10 17:43:18 +02:00
Bananymous
b60af90538 BAN: Add min, max and clamp 2022-12-30 19:52:16 +02:00
Bananymous
6732cabf20 BAN: StringView::Split now accepts a function
Original overload with char is not threadsafe anymore, but I don't
want to duplicate code :)
2022-12-20 11:50:32 +02:00
Bananymous
4c559f50a4 BAN: StringView::Split() now precomputes number of elements
We dont have to resize vector on PushBack()'s if we reserve required size
2022-12-20 11:37:28 +02:00
Bananymous
d5a068f90c BAN: String and StringView don't have to compute strlen for equality 2022-12-20 11:36:01 +02:00
Bananymous
c21766760b Add strlen comparing back to StringView since it is not nullterminated 2022-12-13 22:45:51 +02:00
Bananymous
ced05ff5f2 BAN: use only memcmp when comparing string(view) with const char* 2022-12-13 21:32:51 +02:00
Bananymous
5345b6b8c3 BAN: overloaded operator== for more types 2022-12-13 20:55:09 +02:00
Bananymous
cb6dee9d91 BAN: Implement more basic functionality
String has more features
StringView was implemented
Basic move semantics are now working
Added file for forward declarations
2022-12-13 20:41:32 +02:00
Bananymous
941238830e BAN: Now actually build libban :D 2022-12-13 16:13:38 +02:00