Rhai by default does not limit how long a string can be.
This can be changed via the
Engine::set_max_string_size method, with zero being
unlimited (the default).
A script attempting to create a string literal longer than the maximum length will terminate with a parse error.
Any script operation that produces a string longer than the maximum also terminates the script with an error.
This check can be disabled via the
unchecked feature for higher performance (but higher risks as well).
let mut engine = Engine::new();
engine.set_max_string_size(500); // allow strings only up to 500 bytes long (in UTF-8 format)
engine.set_max_string_size(0); // allow unlimited string length
Be conservative when setting a maximum limit and always consider the fact that a registered function may grow a string’s length without Rhai noticing until the very end.
For instance, the built-in
+ operator for strings concatenates two strings together to form one longer string;
if both strings are slightly below the maximum length limit, the resultant string may be almost twice the maximum length.