tl;dr:
This week in Heave (2025.10.10)
Hey everyone! I've been busy making a ton of improvements to the project, focusing on adding new features and making everything more robust and easier to use.
On the feature front, I've introduced a much-needed system for handling deletions by adding a ToDelete
state to entities. I've also expanded supported data types to include i32
and u32
and added a handy convenience function to make working with optional attributes a breeze.
A huge effort went into improving the overall quality and developer experience. I've added a ton of documentation, from detailed comments on structs and traits to updating the README with clear, practical examples to help you get started. To back all this up, I've significantly beefed up the test suite, adding a whole battery of tests for the catalog and its core functions.
Finally, I did some important housekeeping behind the scenes, including refactoring error handling, cleaning up the codebase, and adding new developer commands to streamline workflow.
Overall, these changes make the project more powerful, reliable, and much friendlier for both users and contributors.
Chore
- add a new just command to check for semver breaking changes
- run cargo format
- add a command to extract devlog from commit messages
Doc
- add doc comments for delete and improve doc comment for persist
- update instruction in README contributions section
- add a simple example of catalog use
- add doc comments to catalog struct description
- add doc comments to EAV trait
- add doc comments to entity struct
- add doc comments to FailedTo
- add entity_state doc comments
- clean code for documentation output
- update readme with actual example code
Feat
- add ToDelete state to entity and perform deletion while persisting
- add with_opt_attribute convenince function to handle options
- add support for i32 and u32 primitive types
Refactor
- group sqlite-related errors under one enum
Review
- change visibility to attribute and value structs
- clean code from comment blocks and placeholders
- make value_of internal and remove unused function
Test
- add a placeholder test battery for each sqlite function
- add placeholders for catalog tests
- add Item struct to be used in test scenarios
- add test for catalog new
- add tests implementations for catalog init
- add tests to check catalog insert and insert_many functions
tags: #rust, #devlog, #project:heave