All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Impl
Cmov/CmovEqforNonZeroUsize/NonZeroIsize(#1415)
- Avoid using
asm!undercfg(miri)(#1436)
Cmovimpl forisize/usize(#1412)
riscv32optimised mask generation (#1396)riscv64optimised mask generation (#1397)- Support for
core::num::NonZero*andcore::cmp::Ordering(#1404)
- Optimized
CmovEqfor[u8](#1356) - Optimized
CmovEqfor[u16](#1370) - Impl
Cmov/CmovEqfor slices of unsigned integers (#1370, #1372) - Impl
Cmov/CmovEqfor slices of signed integers (#1373) - Impl
Cmov/CmovEqforisize/usize(#1375)
- Impls of
Cmov/CmovEqfor[T; N]are now bounded on[T]: Cmov(Eq)(#1372)
- Generic impl of
CmovEqfor[T]whereT: CmovEqin favor of specialized impls (#1356)
- Optimized
Cmovfor[u8; N](#1350) - Optimized
CmovEqfor[u8; N](#1353) - Optimized
Cmovfor[u8](#1354)
- Provided
Cmov::cmovzimpl (#1351)
- Introduce small ARM32
asm!optimization which also guarantees constant-time operation (#1336, #1346)
- Fix non-constant-time assembly being emitted from portable backend on
thumbv6m-none-eabi(#1332)
- Signed integer support (#1280)
- Use
black_boxin portable impl (#1255)
- Edition changed to 2024 and MSRV bumped to 1.85 (#1149)
CmovEqimpl for slices (#954)
- Use
#[inline]instead of#[inline(always)](#924) CmovEqnow invokes XOR within the ASM block (#925)
- Make
Cmov::cmovza provided method (#871)
- Builds on
x86(32-bit) targets (#863)
Conditionalias foru8(#830)
- Redesigned trait-based API (#830)
- Built around a
Cmovtrait - Trait is impl'd for
u8,u16,u32,u64,u128 - Accepts a
Condition(i.e.u8) as a predicate
- Built around a
- MSRV 1.60 (#839)
cmovz/cmovnz-alike support for AArch64 targets (#744)
- Initial release