wash
5212ef4bc8
core: stringstream: fix internal buffer not always being null-terminated
2026-04-01 19:03:27 +01:00
wash
fc4a422a79
core: encoding: fix fx_wchar_is_hex_digit calling wrong function
2026-04-01 19:02:54 +01:00
wash
467c13e161
build: add some build options to customise library functionality
2026-04-01 19:02:04 +01:00
wash
9c34aa7996
core: rename btree to bst
2026-03-16 15:11:17 +00:00
wash
e9d0e323f0
meta: rename to fx
2026-03-16 10:35:43 +00:00
wash
5889426478
core: rope: add bstr support
2026-02-03 14:39:33 +00:00
wash
c13b7a7e3a
core: stream: add bstr support
...
despite not being a b_object, the b_stream interface can now detect when
a b_bstr instance has been passed as a stream parameter and use the correct
functions to handle writing to it.
this allows any function that expects a b_stream parameter to be called
with a b_bstr instance instead, allowing complex stream-based I/O operations
to be directed towards bounded character arrays with no heap allocation
required.
2026-02-03 14:36:48 +00:00
wash
23aba2a27f
core: add bstr data structure
...
bstr is very similar to b_stringstream, with the key difference being it can be
stack-allocated. this allows you to write a complex formatted string to a
stack-allocated character buffer with no heap memory allocation required.
bstr also supports automatically-managed dynamic string buffers for unbounded
string construction.
2026-02-03 14:34:58 +00:00
wash
bdcd4163c7
core: stringstream: added read-support
...
any characters written to a stringstream can be optionally read back again
using the b_stream read API.
this functions similar to a ringbuffer, with two key differences:
1) the buffer is not circular, and will continuously expand to accomodate all incoming data.
2) reading data from the stringstream does not remove it from the buffer.
2026-02-03 14:33:06 +00:00
wash
add05ef478
core: iterator: added inline definition of is_valid()
2026-02-03 14:32:15 +00:00
wash
68ab79fe2a
core: hash: add support for hashing the contents of ropes
2026-02-03 14:31:35 +00:00
wash
ce9195c130
core: queue: implement moving queue entries
...
this works exactly the same as moving btree nodes.
2026-02-03 14:30:53 +00:00
wash
837a42e249
core: btree: implement moving btree nodes
...
moving a btree node is similar to simply using memmove() or memcpy(), with the added
bonus of updating the pointers in the wider data structure to the new node memory
and zeroing the old node memory so that it isn't used accidentally after the move
is complete.
2026-02-03 14:28:58 +00:00
wash
6b65727535
core: error: rename b_error_release to b_error_discard
2025-11-04 10:03:10 +00:00
wash
493b9ec4a4
core: iterator: implement const iterators
2025-11-01 09:58:18 +00:00
wash
0cbab62391
core: type: fix interface type components not being initialised properly
2025-11-01 09:57:32 +00:00
wash
abf1d45602
core: class: validate magic number in class header
2025-11-01 09:56:52 +00:00
wash
360428c8e8
core: object: validate magic number in object header
2025-11-01 09:56:22 +00:00
wash
144c3a4c68
core: error: clean up includes and formatting
2025-10-29 14:32:19 +00:00
wash
2ee2f8c115
core: object: remove legacy iterator interface usage
2025-10-29 14:31:09 +00:00
wash
1e4b5bc4e6
core: btree: replace legacy iterator interface
2025-10-29 14:30:33 +00:00
wash
c2b894ef22
core: queue: replace legacy iterator interface
2025-10-29 14:29:05 +00:00
wash
009b6c6292
core: iterator: re-design b_iterator as a b_object interface
2025-10-29 13:52:27 +00:00
wash
b58015baff
core: type: check if a class tries to implement an interface it doesn't extend or inherit
2025-10-28 15:17:50 +00:00
wash
e8eee9ca0d
core: type: make get_type static
2025-10-28 15:16:07 +00:00
wash
5b090c72c7
core: stream: change read/write buffer type from unsigned char* to void*
2025-10-28 15:14:57 +00:00
wash
2687477cb2
core: ringbuffer: update from simple struct to a b_object type
2025-10-28 15:14:09 +00:00
wash
5f2bbc7151
core: class: add functions to get a registered class, and get the name of a class
2025-10-28 15:11:54 +00:00
wash
75e9291da3
core: error: update header include guard
2025-10-25 19:36:25 +01:00
wash
a429e76721
core: stream: add utf-8 awareness to b_stream interface
...
b_stream can now read/write utf-8 encoded data, and will do so unless
the stream is in binary mode.
b_stream will also report an error it encounters invalid utf-8 data
(unless binary mode is enabled).
2025-10-25 00:02:33 +01:00
wash
f6f49faf97
core: encoding: add utf-8 functions from b_string to b_wchar interface
2025-10-25 00:02:15 +01:00
wash
3e82d12476
core: hash: fix hash backends erasing ctx function pointers
2025-10-25 00:01:16 +01:00
wash
7c9a753007
core: object: add nullptr checks to data retrieval functions
2025-10-25 00:00:37 +01:00
wash
1d9549c0c2
core: error: update b_stringstream usage to use b_stream interface
2025-10-24 12:33:23 +01:00
wash
a5762e537b
core: stringstream: convert to a b_object type inheriting from b_stream
2025-10-24 12:32:54 +01:00
wash
fd4f60e37f
core: stream: convert to a b_object interface and base class
2025-10-24 12:32:16 +01:00
wash
8840971d83
core: object: add more virtual function dispatch macros
2025-10-24 12:31:51 +01:00
wash
ed105307c7
core: type: fix registration of types that extend something other than b_object
2025-10-24 12:29:24 +01:00
wash
36b624849c
core: object: add functions to retrieve multiple parts of an object at once
2025-10-24 12:28:50 +01:00
wash
ab1c2b370d
core: object: implement rvalue object support
2025-10-19 20:58:32 +01:00
wash
2cc1a541c2
core: object: implement b_object_is_type()
2025-10-19 13:46:44 +01:00
wash
ff2ff6f136
core: stream: update generic pointer usage for stdio streams
2025-10-19 11:26:04 +01:00
wash
d5bd8fa32a
core: stream: add a second generic pointer to b_stream
2025-10-19 10:22:35 +01:00
wash
c389e32dc6
core: add B_NPOS definition
2025-10-19 10:22:11 +01:00
wash
379bd048b2
core: object: make interface query functions const; remove type parameters
2025-10-19 10:21:43 +01:00
wash
e1e4544b67
core: macros: fix bad return type on unref() function template
2025-10-18 21:54:34 +01:00
wash
4044961478
core: rename b_retain/b_release to b_object_ref/b_object_unref
2025-10-18 21:51:51 +01:00
wash
503dc56328
core: add macros for performing non-virtual class method dispatch
2025-10-18 21:41:40 +01:00
wash
a0b7b5b85b
core: remove type parameter from object interface query functions
2025-10-18 21:06:20 +01:00
wash
06add543bf
Merge branch 'main' into feature/new-object-system
2025-10-15 11:13:00 +01:00