3 Commits

Author SHA1 Message Date
56b1982f8a feat: add drop key functionality (#6)
All checks were successful
CI / Makefile Lint (push) Successful in 16s
CI / Go Lint (push) Successful in 21s
CI / Unit Tests (push) Successful in 15s
CI / Fuzz Tests (push) Successful in 49s
CI / Mutation Tests (push) Successful in 55s
Currently, the `Table.Drop()` function is deprecated because it is not implemented yet. Let's add that functionality.

- Adds true drop functionality to the table, through `Table.Drop()`.
- Adds tests for functionality.
- Rewrites fuzz test using `go_fuzz_utils`, to test arbitrary usage patterns.
- Rewrite `bucket` to allow a capacity of zero.
- Rename `Table.Capacity()` to `Table.TotalCapacity()`, to reflect to different between the capacity of the buckets vs. the whole table.
- Enforce 100% mutation test coverage.

Reviewed-on: #6
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-20 01:59:54 +00:00
ece10585a5 style: restructure makefile (#4)
All checks were successful
CI / Unit Tests (push) Successful in 13s
CI / Go Lint (push) Successful in 17s
CI / Mutation Tests (push) Successful in 33s
CI / Fuzz Tests (push) Successful in 58s
Currently, the `Makefile` is not well structured, and does not follow best practices. With the help of [`checkmake`](https://github.com/checkmake/checkmake), the Makefile can be forced to follow them.

### Decisions

- Added CI job `lint-makefile`, which forces the Makefile to conform to standards.
- The `make help` was set as the default target. This is common practice in the industry.
- The `make help` uses `grep` | `awk` to create a command table from `##` comments after each target. It seems a bit icky, but it is something that Docker, Kubernetes, and Helm all do.

Reviewed-on: #4
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-19 00:14:54 +00:00
717408239b chore: move from tools/dsa (#1)
Some checks failed
CI / lint (push) Successful in 51s
CI / unit-test (push) Failing after 25s
CI / fuzz-test (push) Successful in 1m1s
CI / mutation-test (push) Successful in 42s
Moved the implementation of this hash table from `tools/dsa` #1.

Reviewed-on: #1
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-17 01:22:42 +00:00