cli-boxes 0.1.1

Unicode box drawing characters for creating beautiful CLI interfaces
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).

## [Unreleased]


## [0.1.0] - 2025-01-XX


### Added

- Initial release of cli-boxes crate
- 9 predefined box drawing styles (None, Single, Double, Round, Bold, SingleDouble, DoubleSingle, Classic, Arrow)
- `BoxChars` struct with 8 Unicode characters for complete box drawing
- `BorderStyle` enum for semantic style selection
- Builder pattern API via `BoxCharsBuilder` for ergonomic custom box creation
- Direct constructor `BoxChars::new()` for programmatic creation
- String parsing support for `BorderStyle` with case-insensitive and kebab-case/snake_case support
- Comprehensive error handling with helpful suggestions for invalid input
- Optional serde support for serialization/deserialization (feature-gated)
- Zero-allocation string parsing with performance optimizations
- Compile-time constant evaluation for all predefined styles
- Full Unicode compliance with proper box-drawing characters
- ASCII fallback support via `CLASSIC` style
- Extensive documentation with real-world examples
- Comprehensive test suite with 100% coverage
- Performance benchmarks and memory efficiency optimizations

### Features

- **Core API**: `BoxChars`, `BorderStyle`, `BoxCharsBuilder`
- **String Parsing**: Case-insensitive parsing with format flexibility
- **Builder Pattern**: Fluent API for custom box creation
- **Performance**: Zero-allocation parsing, compile-time constants
- **Compatibility**: Unicode + ASCII fallback support
- **Serialization**: Optional serde support
- **Documentation**: Comprehensive examples and API documentation
- **Testing**: Extensive test coverage including edge cases

### Performance

- Zero heap allocations during string parsing
- Compile-time evaluation of predefined constants
- Minimal memory footprint (32 bytes for `BoxChars`, 1 byte for `BorderStyle`)
- Optimized iteration and conversion operations

### Dependencies

- `strum` (required): For enum iteration and string conversion
- `serde` (optional): For serialization support when "serde" feature is enabled

[Unreleased]: https://github.com/sabry-awad97/boxen-rs/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/sabry-awad97/boxen-rs/releases/tag/v0.1.0