Skip to content

v0.3.0

Latest

Choose a tag to compare

@AndreiPashkin AndreiPashkin released this 04 Sep 14:05
· 4 commits to master since this release

v0.3.0 - 2025-09-04

Added

  • Introduced new code-repetition capability, that allows to produce multiple variations of user-supplied Rust code
    using for ... in ... syntax.
  • Introduced a type system, overloaded functions, new type casting functions - this would allow users to use much wider
    range of values, up to entirely arbitrary sequences of tokens. Previously values were limited only to idents.
  • Introduced an alternative attribute-style invocation form #[compose_items(...)].
  • Introduced new compose! macro as the preferred entry point (functionally identical to the previous
    compose_idents!).
  • MSRV has been set to 1.80.0.
  • Added syntax reference to the documentation.
  • Added migration guides for deprecated features.
  • Made it possible to escape percent signs when formatting strings by using %% syntax.
  • Added normalize2(...), an evaluated variant of normalize(...) that accepts ident, str, int, path, type,
    expr, or tokens and returns a normalized ident (unlike normalize(...), which consumes raw tokens).

Changed

  • Error messages made to be more precise and informative.
  • Made string formatting syntax more human-readable by enabling % alias %-style placeholders (with whitespace).
  • Reworked introductory examples in the documentation.
  • Significantly expanded project's test suite.
  • Harden the testing of support for both MSRV and stable Rust versions and of usage of the library as a dependency.

Deprecated

  • compose_idents! macro has been deprecated in favor of functionally identical compose!.

Removed

  • ⚠️ BREAKING: Dropped the deprecated bracket-based alias-definition syntax support.

  • ⚠️ BREAKING: Removed interchangeable use of literal strings and ident arguments in functions that accept both.

    Type system and overloaded functions should take care of most use-cases and if necessary - use casting functions:
    to_ident(), to_str(), etc.