Commit Graph

9 Commits

Author SHA1 Message Date
7a83efe481 Copy is no longer required for items stored.
This is a big change. Initially items added to the RingBuffer needed to
have a Default implementation. This nessecitated the use of Copy.
However, by doing so the RingBuffer was not able to store non-Copy types
like String or Vec.

To allow for this change the buffer switched from using Default to
initialize the array to using MaybeUninit and UnsafeCell to initialize
the array and write to or read the memory location with interior mutability.
This means that the atomics are now the definitive guards like was
initially desired and the mutable reference needed for push and
pop could be removed.

Drop was added to clean up the items in the array now that they may need
to be dropped themselves.

Some convinence functions were added for users to get information about
the RingBuffer.
2026-02-15 13:23:58 -05:00
eae7bcc832 An initial SPSC ring buffer implementation.
This still requires tests, but it is using atomics and UnsafeCell to
create a lock free way of accessing the buffer data.
2025-12-13 08:41:29 -05:00
6e81f9ef12 Swap files are now ignored by git. 2025-12-13 08:40:49 -05:00
1f4662488a The logo for this project. 2025-10-17 10:28:05 -04:00
32595d41bb Swapped longest into its declarative form.
The function was ment to use the functional programming style, however,
I forgot to uncomment and swap out the imperative style.
2025-07-02 15:39:19 -04:00
d16f8e333e Made the jobs do something.
Also, stamped the advanced async file with the license.
2025-06-28 18:00:11 -04:00
4b16a23712 Added some advanced async stuff.
Really it doesn't have channels so the only advanced thing was the
dynamic trait part. Pinning the futures is only real hard part to
this module. The rest does show trait implementations on structs though
which was something missing from the library before.

Also, the project was turned into a library and the foundational
examples were put into a basic module.
2025-06-28 16:52:04 -04:00
d395741822 Committing a set of basic rust examples.
This contains code and tests for several basic rust skills.
2025-06-27 15:55:37 -04:00
868678fa00 Initial commit 2025-06-27 08:48:57 -04:00