# `ark-api-macros` changelog

<!-- markdownlint-disable MD024 -->

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.16.0 - 2022-08-31

- New codegen format that doesn't include `safe` module prefix on the generated functions
- Require Rust 1.63.0 (properly through crate configuration).

## 0.10.0 - 2022-04-4

- Replace requirement of forked `bytemuck` crate with latest released v1.9 crate and macros

## 0.9.0 - 2022-03-29

### Added ⭐

- Added `ffi_union` macro which automatically adds manual padding to all fields
  of a `union` so that they can conform to ABI invariants (the requirements of `NoUninit`).

### Changed 🔧

- Updated to accommodate function signature change of host's
  `get_host_context_from_caller`.

## 0.8.1 - 2021-08-24

### Changed 🔧

- Switched to publish publicly on crates.io

## 0.8.0 - 2021-08-24

### Changed 🔧

- Static assertions are now generated to check that the return types declared
  in the high-level API behave as expected: returned values must be `Copy`able,
  and high-level types (like `Result`) mustn't be aliased.

### Removed 🔥

- Removed the ability to return `ErrorCode`; return a `Result<(), ErrorCode>`
  instead!
