This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/_archive/rhai_engine/rhaibook/rust/strings-interner.md
2025-04-04 08:28:07 +02:00

18 lines
660 B
Markdown

Strings Interner
================
{{#include ../links.md}}
Because [strings] are immutable (i.e. the use the type [`ImmutableString`] instead of normal Rust `String`),
each operation on a [string] actually creates a new [`ImmutableString`] instance.
A _strings interner_ can substantially reduce memory usage by reusing the same [`ImmutableString`]
instance for the same [string] content.
An [`Engine`] contains a strings interner which is enabled by default
(disabled when using a [raw `Engine`]).
The maximum number of [strings] to be interned can be set via
[`Engine::set_max_strings_interned`][options] (set to zero to disable the strings interner).