Skip to content

Commit 5aa3de2

Browse files
committed
complete cleanup for production
Signed-off-by: Dave Huseby <[email protected]>
1 parent 5115f76 commit 5aa3de2

File tree

17 files changed

+5102
-197
lines changed

17 files changed

+5102
-197
lines changed

CHANGELOG.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.1] - 2025-01-08
9+
10+
### Fixed
11+
- Fixed `no_std` build by adding proper `alloc` imports to all modules
12+
- Fixed error handling in `no_std` mode by conditionally compiling `UnsignedVarintDecode` error variant
13+
- Removed unused imports identified by clippy
14+
15+
### Changed
16+
- Improved code quality with clippy pedantic lints
17+
- Enhanced code readability by adding numeric literal separators (e.g., `100_000` instead of `100000`)
18+
- Improved documentation formatting with proper backticks for code items
19+
- Updated bool assertions from `assert_eq!(val, true)` to `assert!(val)` for better idiomatic code
20+
- Optimized loop patterns from indexing to iterators where applicable
21+
22+
### Documentation
23+
- Enhanced documentation with better formatting
24+
- Added comprehensive error handling examples
25+
- Improved module-level documentation across all traits
26+
- Verified all documentation links work correctly
27+
28+
## [1.0.0] - 2025-01-06
29+
30+
### Added
31+
- Initial stable release
32+
- Core encoding traits: `EncodeInto`, `EncodeIntoBuffer`, `EncodeIntoArray`
33+
- Core decoding trait: `TryDecodeFrom`
34+
- Null value traits: `Null` and `TryNull`
35+
- Validated newtype: `EncodedBytes` for type-safe varint-encoded byte sequences
36+
- Comprehensive error handling with `Error` enum
37+
- Full `no_std` support with `alloc`
38+
- Thread-safe implementations (Send + Sync)
39+
- Extensive test suite with 105 tests including:
40+
- Unit tests for all traits
41+
- Property-based tests with proptest
42+
- Security tests for malicious input handling
43+
- Concurrency tests for multi-threaded usage
44+
- Round-trip encoding/decoding tests
45+
46+
### Performance
47+
- Zero-copy decoding with slice references
48+
- Zero-allocation buffer encoding
49+
- Stack-only encoding for embedded systems
50+
- Single-allocation encoding for heap operations
51+
- Optimized varint format for space efficiency
52+
53+
### Documentation
54+
- Comprehensive module and trait documentation
55+
- Usage examples for all public APIs
56+
- Performance characteristics documentation
57+
- Thread safety guarantees documented
58+
- Security considerations documented
59+
60+
[1.0.1]: https://github.com/cryptidtech/multitrait/compare/v1.0.0...v1.0.1
61+
[1.0.0]: https://github.com/cryptidtech/multitrait/releases/tag/v1.0.0

Cargo.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,13 @@ default = ["std"]
1313
std = ["unsigned-varint/std"]
1414

1515
[dependencies]
16-
thiserror = { version = "1.0", default-features = false }
16+
thiserror = { version = "2.0", default-features = false }
1717
unsigned-varint = { version = "0.8", default-features = false }
18+
19+
[dev-dependencies]
20+
proptest = "1.4"
21+
criterion = "0.5"
22+
23+
[[bench]]
24+
name = "encoding"
25+
harness = false

0 commit comments

Comments
 (0)