# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### [0.18.6](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.5...v0.18.6) (2021-02-03)

### [0.18.5](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.4...v0.18.5) (2021-01-18)

### [0.18.4](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.3...v0.18.4) (2020-11-23)

### [0.18.3](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.2...v0.18.3) (2020-10-09)

### [0.18.2](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.1...v0.18.2) (2020-09-21)

### [0.18.1](https://github.com/maidsafe/sn_ffi_utils/compare/v0.18.0...v0.18.1) (2020-09-21)

### [0.18.0](https://github.com/maidsafe/sn_ffi_utils/compare/0.17.0...v0.18.0) (2020-09-02)
* Update crate name to sn_ffi_utils

### [0.17.0]
* Log panics in logs
* Update multiple dependencies

### [0.16.0]
* Update `walkdir` dependency

### [0.15.0]
* Add full support for new macro import style in calling crates

### [0.14.0]
* Improve performance by removing unnecessary call to `format!`
* Add ReprC impls for other array lengths and booleans

### [0.13.0]
* Make `vec_into_raw_parts` not return a capacity
* Add `vec_from_raw_parts`
* Remove `from_c_str`

### [0.12.0]
* Use stable rustc, clippy, and rustfmt
* Upgrade crate to Rust 2018 edition
* Fix compiler and clippy errors
* Update jni to 0.12.0
* Introduce `NativeResult` type
* Change macros to interface with `NativeResult`
* Move `TestError` to test_utils.rs
* Add `ReprC` implementation for `i32` and `i64` types

### [0.11.0]
* Fix leaking local references in the Java module. Because the Android local reference table is limited to 512
  entries it is important to deallocate the local references as soon as possible.

### [0.10.0]
* Make the `java` module feature-gated. This should optimise build times for dependent crates which don't require Java/JNI support
* Add a new helper enum `EnvGuard` that simplifies JNI env management (acquiring, holding the reference, and deallocating it automatically)
* Make JNI code safer and cleaner

### [0.9.0]
* Support providing custom class loader in Java/JNI routines and macros

### [0.8.0]
* Update to dual license (MIT/BSD)
* Upgrade unwrap version to 1.2.0
* Use rust 1.28.0 stable / 2018-07-07 nightly
* rustfmt 0.99.2 and clippy-0.0.212

### [0.7.0]
* Add a public helper function `catch_unwind_result` for synchronous APIs (in addition to `catch_unwind_cb` for async)

### [0.6.0]
* Use rust 1.26.1 stable / 2018-02-29 nightly
* rustfmt-nightly 0.8.2 and clippy-0.0.206
* Updated license from dual Maidsafe/GPLv3 to GPLv3
* Add binding generator utilities

### [0.5.0]
* Use rust 1.22.1 stable / 2018-01-10 nightly
* rustfmt 0.9.0 and clippy-0.0.179
* `catch_unwind_error_code` function removed as it was no longer used

### [0.4.0]
* Use pointers to `FfiResult` instead of passing by value
* Change type of `FFI_RESULT_OK` to a static reference
* Don't add padding to URIs
* Update base64 version
* Add support for using a single user data parameter for multiple callbacks
* Add tests for the `catch_unwind` family of functions

### [0.3.0]
* Improve documentation and fix bugs
* Fix compiler errors on rustc-nightly

### [0.2.0]
* Change the log output for FFI errors - remove the decoration and reduce the log level

### [0.1.0]
* Provide FFI utility functions for safe_client_libs
