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/rhai_engine/rhaibook/rust/strings-interner.md
2025-04-03 09:18:05 +02:00

660 B

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).