You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sweep of script/*.rhai: every script in the gallery now runs
without Rhai static-shape errors. Three classes of bug were fixed
across 12 scripts:
for (val, key) in <map> destructuring iteration (left over
from an older Rhai version) failed with "For loop expects iterable
type" in email.rhai and ldap.rhai. Rewrote to walk map.keys() and index for the value.
Chained mutating string methods — String::replace and String::trim are non-pure in this Rhai build (they mutate in
place and return ()), so chains like url.replace("ftp://", "").replace("ftps://", "").split("/").shift()
blew up on the second call. Replaced the host-port extraction
in ftp.rhai, gopher.rhai, imap.rhai, pop3.rhai, smtp.rhai, sftp.rhai, tftp.rhai, and clipboard.rhai
with a sub_string + index_of based extraction that doesn't
rely on chaining.
Map .contains_key() not registered — used the in
operator instead in email.rhai and checkdigit.rhai.
Array .join() not registered in this Rhai build — replaced
with manual string concatenation in imap.rhai.
Demo robustness: client-cert.rhai now exits cleanly with a hint
when the cert path doesn't exist instead of erroring out; time-cond.rhai only attempts the second (etag-compare) fetch
when the cache file actually exists; tcp-echo.rhai exits 2
cleanly when the listen port is already in use; udp-listen.rhai
treats EAGAIN ("Resource temporarily unavailable") the same way
it already treats timeouts; impersonate.rhai wraps the
feature-gated call in a try/catch so the default rustls build
exits 2 with a rebuild hint instead of throwing.