# Changelog
All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.0] - 2026-06-12
### Added
- `#[make_noop]` attribute macro that replaces the body of a free function, a
single method, or every method in an `impl` block with a no-op. Functions that
return a value yield `Default::default()`.
- `#[noop_returns(EXPR)]` attribute macro to return a custom expression. Works on
a free function or method, and on an entire `impl` block — where `EXPR` is the
shared return value for every method, overridable per method with another
`#[noop_returns(OTHER)]`.
- `#[make_unit]` attribute macro that strips a struct's fields, turning it into a
unit struct. Works on named-field and tuple structs; attributes, visibility,
and generics are preserved.
- Functions with no return value are given an empty body and never return a value.
- The original body is discarded: the replacement body does not type-check or
execute it. Anything referenced only from inside a no-op'd body may therefore
be reported as unused.
[Unreleased]: https://github.com/s23b/make-noop/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/s23b/make-noop/releases/tag/v0.1.0