Skip to content

Version 1.25.0

Latest

Choose a tag to compare

@schungx schungx released this 24 May 09:11
· 14 commits to main since this release
8498f86

Bug fixes

  • Engine::compact_script now properly compacts scripts with custom syntax that uses $raw$ (thanks @yuvalrakavy #1079).
  • The string methods split, split_rev and their variants are now marked pure so they can be called on const strings (thanks @theJC #1082).
  • The array method index_of now falls back to value comparison for string argument when no script function of that name is registered (thanks @yinho999 #1086).
  • The walk API now correctly visits the arguments to MethodCall and switch statements (thanks @isSerge #1092 #1093)

New features

  • A new advanced callback, Engine::on_missing_function, is added (gated under the internals feature) to override default handling when a called function or method is not found (thanks @yuvalrakavy #1067).
  • A new method, EvalContext::new_frame, is added to created an isolated frame guard that automatically restores field values upon Drop (thanks @yuvalrakavy for the idea #1085).
  • \${...} is supported in multi-line literal strings to escape interpolation, yielding literally ${...} for the string (thanks @yinho999 #1089).

Enhancements

  • Procedural macros such as #[export_module] and #[derive(CustomType)] no longer require importing standard Rhai types (thanks @timokoesters #1071).
  • FnPtr::call_fn_as_method and FnPtr::call_as_method_within_context are added (when not under no_object) to accept a this pointer for calling the function pointer as a method call (thanks @yunfengzh for the request #1080).
  • NativeCallContext::call_method and NativeCallContext::call_native_method are added (when not under no_object) to accept a this pointer for method calls (thanks @yunfengzh for the idea #1080).