Skip to content

Releases: Tahaa-Dev/ResExt

Release v1.4.0

21 Mar 02:16

Choose a tag to compare

Changelog

v1.4.0 - 2026-03-20

Summary

  • Internal changes: Removes syn from crate dependencies

Details

Removed syn from dependencies and implemented a manual enum TokenStream parser for proc-macro for faster compile times, more control and smaller binaries, here are the results:

  • 1.2x faster project builds
  • ~25% smaller binary size

Release v1.3.3

13 Mar 23:48

Choose a tag to compare

Changelog

v1.3.3 - 2026-03-14

Removed

  • Res!() macro from generated items

Added

  • ResErr::from_args() method to generated items

Migration guide

Use this command in your project's root after replacing <ALIAS> with your result type alias:

Note: requires GNU sed (Linux default; macOS: brew install gnu-sed and use gsed instead of sed)

find . -type f -name "*.rs" -exec sed -i 's/<ALIAS>!(\([^,]*\?\),[\s\n\r]*\([^)]*\?\));/return Err(<ALIAS>Err::from_args(ctx!(\2), \1));/g' {} +

Release v1.3.2

13 Mar 03:45

Choose a tag to compare

Changelog

v1.3.2 - 2026-03-13

Improved

  • ctx! macro now doesn't generate a newtype struct wrapper on every call

No changes to the public API

Release v1.3.1

08 Mar 01:48

Choose a tag to compare

Changelog

v1.3.1 - 2026-03-08

Fixed

  • Added docs for ctx!() macro

Release v1.3.0

08 Mar 00:21

Choose a tag to compare

Changelog

v1.3.0 - 2026-03-07

Added

  • New ctx!() macro
  • Support for no-alloc lazily evaluated context with ctx!() macro

Removed

  • ToContext trait
  • Support for core::fmt::Arguments<'_>
  • Support for impl FnOnce() -> impl core::fmt::Display

Migration Guide

  1. Change resext version to 1.3.0 in your project's Cargo.toml
  2. Change .context(FnOnce() -> impl Display) and .context(core::fmt::Arguments<'_>) to .context(ctx!()), here's a command for refactoring your entire project you can run in your project root for format! and format_args! context:
find . -type f -name "*.rs" -exec sed -i -e '/^\/\/!/!{1s/^/use resext::ctx;\n/}' -e 's/\.context(\s*format_args!/.context(ctx!/g' -e 's/\.context(\s*||\s*format!/.context(ctx!/g' {} +

Release v1.2.0

02 Mar 15:39

Choose a tag to compare

Changelog

v1.2.0 - 2026-03-02

Added

  • Support for closures in .context() method via taking impl FnOnce() -> impl core::fmt::Display

Fixed

  • Private module being visible in docs

Release v1.1.0

16 Feb 22:22

Choose a tag to compare

Changelog

v1.1.0 - 2026-02-17

BREAKING CHANGES:

  • Made .context() and .with_context() a single method
  • Made the proc-macro not work without the main crate for better docs and util support in the future

Release v1.0.2

16 Feb 13:42

Choose a tag to compare

Changelog

v1.0.2 - 2026-02-16

Fixed

  • #[cfg(not(doc))] making docs fail by changing it to #[doc(hidden)]

Release v1.0.1

13 Feb 19:00

Choose a tag to compare

Changelog

v1.0.1 - 2026-02-13

BREAKING CHANGES:

  • Removed all methods from extension trait except for context traits (.context() and .with_context())
  • Removed std attribute as it is useless now

Release v1.0.0

12 Feb 22:31

Choose a tag to compare

Changelog

v1.0.0 - 2026-02-13

BREAKING CHANGES:

  • Removed .byte_context() method
  • Replaced feature flags for std and alloc to attributes in the macro

Added

  • Heap spilling if context exceeds buf_size
  • New methods: .fmt_log() and .write_log()
  • Full no-std support