contracts 0.6.3

Design-by-contract attributes
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.6.3] - 2022-03-13

### Fixed

- improved hygiene around `self` parameters
- fix contract messages containing `{}` emitting warnings as they are interpreted as format strings

## [0.6.2] - 2021-07-21

### Changed

- better handling of mutable borrows and lifetime relationships for functions
  with contracts

## [0.6.1] - 2021-07-13

### Added

- support for `impl Trait` return types

## [0.6.0] - 2020-09-05
### Changed
- `pre` is now `requires`
- `post` is now `ensures`

## [0.5.2] - 2020-09-05
### Fixed
- Unused braces in function body generated code are removed

## [0.5.1] - 2020-08-06
### Changed
- Trait methods now handle attributes better.

## [0.5.0] - 2020-08-06
### Changed
- Implication operator is now `->`.

## [0.4.0] - 2020-05-01
### Added
- Added support for MIRAI assertions
- Added implication operator

## [0.3.0] - 2019-07-20
### Added
- Pseudo-function `old(expr)` which in a post-condition evaluates the expression before function execution.
- Automatic generation of documentation containing all contracts.

## [0.2.2] - 2019-07-17
### Fixed
- Errors inside functions/methods are now properly reported with the correct source location.
### Changed
- internal handling of contracts is now done in a single proc-macro pass instead of one for each contract.

## [0.2.1] - 2019-06-07
### Fixed
- Functions/methods with explicit return statements no longer skip `post` conditions

## [0.2.0] - 2014-04-12
### Added
- `contract_trait` attribute to make all implementors of a trait respect contracts.

## [0.1.1] - 2019-04-08
### Added
- Feature flags to override contract behavior.
  - `disable_contracts` ignores all checks
  - `override_debug` only checks contracts in debug configurations.
  - `override_log` only prints using the `log`-crate interface.

## [0.1.0] - 2019-04-06
### Added
- attributes `pre`/`post`/`invariant` and `debug_` versions of each.