multi-trait 1.0.3

Common traits for multiformats types
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.3] - 2026-07-15

### Added

- **`#[inline]`** on hot encode/decode paths: `EncodeInto` impls for all
  integer types and `bool`, `TryDecodeFrom` impls for all integer types,
  `bool`, and fixed-length arrays.
- **MSRV declared**: `rust-version = "1.85"` in `Cargo.toml`. CI verifies the
  MSRV with a dedicated job.
- **`cargo audit`** job in CI.
- **`cargo fmt --check`** and **`clippy -D warnings`** steps in CI.
- **`no_std` build verification** job in CI.
- **Clippy lint configuration**: `[lints.clippy]` with `pedantic`, `nursery`,
  and `cargo` groups (all `warn`), plus `[lints.rust] unsafe_code = "deny"`.
- **Length-bounds documentation** on the `TryDecodeFrom` trait noting that
  integer decoders rely on `unsigned-varint`'s type-specific byte limits and
  that callers decoding length-prefixed payloads should enforce their own
  upper bound.

### Changed

- **Edition 2024**: Updated from Rust 2021.
- **Clippy pedantic/nursery/cargo warnings** resolved across all source,
  examples, and benchmarks.

## [1.0.0] - 2026-07-13

### Changed
- Synced from bettersign workspace (bs-multitrait 0.7.0)
- Renamed crate from `bs-multitrait` to `multi-trait`
- Initial published release on crates.io as `multi-trait`

## [1.0.1] - 2024-08-27

### Fixed
- Fixed `no_std` build by adding proper `alloc` imports to all modules
- Fixed error handling in `no_std` mode by conditionally compiling `UnsignedVarintDecode` error variant
- Removed unused imports identified by clippy

### Changed
- Improved code quality with clippy pedantic lints
- Enhanced code readability by adding numeric literal separators (e.g., `100_000` instead of `100000`)
- Improved documentation formatting with proper backticks for code items
- Updated bool assertions from `assert_eq!(val, true)` to `assert!(val)` for better idiomatic code
- Optimized loop patterns from indexing to iterators where applicable

### Documentation
- Enhanced documentation with better formatting
- Added comprehensive error handling examples
- Improved module-level documentation across all traits
- Verified all documentation links work correctly

## [bs-multitrait 1.0.0] - 2024-04-14

### Added
- Initial stable release (as `bs-multitrait`, the bettersign workspace name)
- Core encoding traits: `EncodeInto`, `EncodeIntoBuffer`, `EncodeIntoArray`
- Core decoding trait: `TryDecodeFrom`
- Null value traits: `Null` and `TryNull`
- Validated newtype: `EncodedBytes` for type-safe varint-encoded byte sequences
- Comprehensive error handling with `Error` enum
- Full `no_std` support with `alloc`
- Thread-safe implementations (Send + Sync)
- Extensive test suite with 105 tests including:
  - Unit tests for all traits
  - Property-based tests with proptest
  - Security tests for malicious input handling
  - Concurrency tests for multi-threaded usage
  - Round-trip encoding/decoding tests

### Performance
- Zero-copy decoding with slice references
- Zero-allocation buffer encoding
- Stack-only encoding for embedded systems
- Single-allocation encoding for heap operations
- Optimized varint format for space efficiency

### Documentation
- Comprehensive module and trait documentation
- Usage examples for all public APIs
- Performance characteristics documentation
- Thread safety guarantees documented
- Security considerations documented

[1.0.3]: https://github.com/cryptidtech/multi-trait/compare/v1.0.1...v1.0.3
[1.0.0]: https://github.com/cryptidtech/multi-trait/releases/tag/v1.0.0
[1.0.1]: https://github.com/cryptidtech/multi-trait/compare/v1.0.0...v1.0.1
[bs-multitrait 1.0.0]: https://github.com/cryptidtech/multi-trait/releases/tag/bs-multitrait-v1.0.0