# 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.2.3 - 2024-02-07
## Fixed
- `c_enum!` can now handle enums with more than 128 variants without hitting
  the macro recursion limit. Enums with more than 10k variants will still hit
  it eventually but this is less likely to be an issue for most.

## 0.2.2 - 2023-10-23
### Changed
- `c_enum!` will now emit the error message about multiple declarations in a
  block in most cases matching needing to be migrated to v0.2.0.

## 0.2.1 - 2023-10-23
### Changed
- `c_enum!` will now emit a custom error message indicating that declaring
  multiple enums in a single `c_enum!` block is not supported anymore.

## 0.2.0 - 2023-10-23
### Added
- `c_enum!` now has some extra syntax to allow directly applying attributes to
  the generated impl block.

### Changed
- It is now only possible to define a single enum instance within a `c_enum!`.
  This is to allow additional syntax in the future that is not supported when
  the macro allows multiple enum definitions.

## 0.1.2 - 2023-09-25
### Fixed
- `CEnum::variant_label` (and thus the `Debug` impl) now returns the actual
  variant label instead of the enum name. (by @dbartussek)
- Variant values are now assigned as described in the documentation. Previously,
  variant values were assigned incorrectly (mostly to 0).

### Changed
- Trait implementations generated by the `c_enum!` macro are now annotated with
  `#[automatically_derived]`.

## 0.1.1 - 2023-05-16
### Changed
- The `CEnum` trait has now been marked as `#[doc(hidden)]`

## 0.1.0 - 2023-05-16
This is the very first release of `c-enum`.

### Added
- The `c_enum!` macro.
