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/SUMMARY.md
2025-04-04 08:28:07 +02:00

339 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The Rhai Scripting Language
==========================
[The Rhai Book](index.md)
----------------------
Users Guide
============
- [Introduction](about/index.md)
- [Features of Rhai](about/features.md)
- [What Rhai Isn't](about/non-design.md)
- [Benchmarks](about/benchmarks.md)
- [Supported Targets and Builds](about/targets.md)
- [Dependencies](about/dependencies.md)
- [Licensing](about/license.md)
- [Related Resources](about/related.md)
- [Getting Started](start/index.md)
- [Online Playground](start/playground.md)
- [Install the Rhai Crate](start/install.md)
- [Optional Features](start/features.md)
- [Packaged Utilities](start/bin.md)
- [The Scripting Engine](engine/index.md)
- [“Hello, Rhai”](engine/hello-world.md)
- [Compile to AST](engine/compile.md)
- [Raw Engine](engine/raw.md)
- [Built-in Operators](engine/builtin.md)
- [Scope – Maintaining State](engine/scope.md)
- [Expressions Only](engine/expressions.md)
- [Options](engine/options.md)
- [Examples](start/examples/index.md)
- [Rust](start/examples/rust.md)
- [Scripts](start/examples/scripts.md)
- [Special Builds](start/builds/index.md)
- [Performance](start/builds/performance.md)
- [Minimal](start/builds/minimal.md)
- [no-std](start/builds/no-std.md)
- [WebAssembly (WASM)](start/builds/wasm.md)
----------------------
Rust Integration
================
- [Introduction](rust/index.md)
- [Traits](rust/traits.md)
- [Register a Rust Function](rust/functions.md)
- [Function Overloading](rust/overloading.md)
- [Generic Functions](rust/generic.md)
- [String Parameters](rust/strings.md)
- [`Dynamic` Parameters](rust/dynamic-args.md)
- [`Dynamic` Return Value](rust/dynamic-return.md)
- [Fallible Functions](rust/fallible.md)
- [`NativeCallContext`](rust/context.md)
- [Restore `NativeCallContext`](rust/context-restore.md)
- [Override a Built-in Function](rust/override.md)
- [Call a Rhai Function from Rust](engine/call-fn.md)
- [Create a Rust Closure from a Rhai Function](engine/func.md)
- [Operator Overloading](rust/operators.md)
- [Working with Any Rust Type](rust/custom-types.md)
- [Auto-Generate API](rust/derive-custom-type.md)
- [Custom Type Builder](rust/build-type.md)
- [Manually Register Custom Type](rust/reg-custom-type.md)
- [Methods](rust/methods.md)
- [Call Method as Function](rust/methods-fn-call.md)
- [Property Getters and Setters](rust/getters-setters.md)
- [Indexers](rust/indexers.md)
- [Fallback to Properties](rust/indexer-prop-fallback.md)
- [Collection Types](rust/collections.md)
- [Disable Custom Types](rust/disable-custom.md)
- [Printing Custom Types](rust/print-custom.md)
- [Modules](rust/modules/index.md)
- [Create in Rust](rust/modules/create.md)
- [Create from AST](rust/modules/ast.md)
- [Use a Module](rust/modules/use.md)
- [Module Resolvers](rust/modules/resolvers/index.md)
- [Built-in Module Resolvers](rust/modules/resolvers/built-in.md)
- [`DummyModuleResolver`](rust/modules/resolvers/dummy.md)
- [`FileModuleResolver`](rust/modules/resolvers/file.md)
- [`StaticModuleResolver`](rust/modules/resolvers/static.md)
- [`ModuleResolversCollection`](rust/modules/resolvers/collection.md)
- [`DylibModuleResolver` (external)](rust/modules/resolvers/dylib.md)
- [Custom Module Resolvers](rust/modules/resolvers/custom.md)
- [Self-Contained AST](rust/modules/self-contained.md)
- [Plugin Modules](plugins/index.md)
- [Packages](rust/packages/index.md)
- [Built-in Packages](rust/packages/builtin.md)
- [Create Custom Packages](rust/packages/create.md)
- [Create Packages as Crates](rust/packages/crate.md)
- [External Packages](lib/index.md)
- [Random Number Generation, Shuffling and Sampling](lib/rhai-rand.md)
- [Scientific Computing](lib/rhai-sci.md)
- [AI and Machine Learning](lib/rhai-ml.md)
- [Filesystem Access](lib/rhai-fs.md)
- [Working with Urls](lib/rhai-url.md)
----------------------
Scripting Language
==================
- [Comments](language/comments.md)
- [Doc-Comments](language/doc-comments.md)
- [Values and Types](language/values-and-types.md)
- [`Dynamic` Values](language/dynamic.md)
- [type_of()](language/type-of.md)
- [Interop with Rust](language/dynamic-rust.md)
- [Value Tag](language/dynamic-tag.md)
- [Serialization/Deserialization with `serde`](rust/serde.md)
- [Numbers](language/numbers.md)
- [Operators](language/num-op.md)
- [Standard Functions](language/num-fn.md)
- [Value Conversions](language/convert.md)
- [Ranges](language/ranges.md)
- [Bit-Fields](language/bit-fields.md)
- [Strings and Characters](language/strings-chars.md)
- [String Interpolation](language/string-interp.md)
- [`ImmutableString`](rust/immutable-string.md)
- [Standard Functions and Operators](language/string-fn.md)
- [Strings Interner](rust/strings-interner.md)
- [Arrays](language/arrays.md)
- [BLOB's (Byte Arrays)](language/blobs.md)
- [Out-of-Bounds Index](language/arrays-oob.md)
- [Object Maps](language/object-maps.md)
- [Parse from JSON](language/json.md)
- [Special Support for OOP](language/object-maps-oop.md)
- [Non-Existent Property](language/object-maps-missing-prop.md)
- [Timestamps](language/timestamps.md)
- [Keywords](language/keywords.md)
- [Statements](language/statements.md)
- [Statement Expression](language/statement-expression.md)
- [Variables](language/variables.md)
- [Variable Shadowing](language/shadow.md)
- [Strict Variables Mode](engine/strict-var.md)
- [Variable Definition Filter](engine/def-var.md)
- [Variable Resolver](engine/var.md)
- [Constants](language/constants.md)
- [Automatic Global Module](language/global.md)
- [Assignments](language/assignment.md)
- [Compound Assignments](language/assignment-op.md)
- [Logic Operators](language/logic.md)
- [In Operator](language/in.md)
- [If Statement](language/if.md)
- [Switch Statement](language/switch.md)
- [Switch Expression](language/switch-expression.md)
- [While Loop](language/while.md)
- [Do Loop](language/do.md)
- [Loop Statement](language/loop.md)
- [For Loop](language/for.md)
- [Standard Iterable Types](language/iter.md)
- [Make a Custom Type Iterable](language/iterator.md)
- [Return Value](language/return.md)
- [Throw Exception on Error](language/throw.md)
- [Catch Exceptions](language/try-catch.md)
- [Functions](language/functions.md)
- [Method Calls](language/fn-method.md)
- [Overloading](language/overload.md)
- [Namespaces](language/fn-namespaces.md)
- [Function Pointers](language/fn-ptr.md)
- [Currying](language/fn-curry.md)
- [Anonymous Functions](language/fn-anon.md)
- [Closures](language/fn-closure.md)
- [Metadata](engine/metadata/index.md)
- [Get Scripted Functions Metadata in Rhai](language/fn-metadata.md)
- [Get Scripted Functions Metadata from AST](rust/functions-metadata.md)
- [Get Native Function Signatures](engine/metadata/gen_fn_sig.md)
- [Export All Functions Metadata to JSON](engine/metadata/export_to_json.md)
- [Generate Definition Files for Language Server](engine/metadata/definitions.md)
- [Print and Debug](language/print-debug.md)
- [Modules](language/modules/index.md)
- [Export Variables, Functions and Sub-Modules from Script](language/modules/export.md)
- [Import Modules](language/modules/import.md)
- [Eval Function](language/eval.md)
----------------------
Safety and Protection
=====================
- [Introduction](safety/index.md)
- [Sand-Boxing](safety/sandbox.md)
- [Limiting Run Time](safety/progress.md)
- [Limiting Memory Usage](safety/memory.md)
- [Limiting Stack Usage](safety/stack.md)
- [Built-in Safety Limits](safety/limits.md)
- [Maximum Length of Strings](safety/max-string-size.md)
- [Maximum Size of Arrays](safety/max-array-size.md)
- [Maximum Size of Object Maps](safety/max-map-size.md)
- [Maximum Number of Operations](safety/max-operations.md)
- [Maximum Number of Variables](safety/max-variables.md)
- [Maximum Number of Functions](safety/max-functions.md)
- [Maximum Number of Modules](safety/max-modules.md)
- [Maximum Call Stack Depth](safety/max-call-stack.md)
- [Maximum Expression Depth](safety/max-stmt-depth.md)
- [Turn Off Safety Checks](safety/checked.md)
----------------------
Script Optimization
===================
- [Introduction](engine/optimize/index.md)
- [Optimization Passes](engine/optimize/passes.md)
- [Dead Code Elimination](engine/optimize/dead-code.md)
- [Constants Propagation](engine/optimize/constants.md)
- [Compound Assignment Rewrite](engine/optimize/rewrite.md)
- [Eager Operator Evaluation](engine/optimize/op-eval.md)
- [Eager Function Evaluation](engine/optimize/eager.md)
- [Side-Effect Considerations](engine/optimize/side-effects.md)
- [Volatility Considerations](engine/optimize/volatility.md)
- [Subtle Semantic Changes](engine/optimize/semantics.md)
- [Re-Optimize an `AST`](engine/optimize/reoptimize.md)
----------------------
Advanced Topics
===============
- [Manage AST's](engine/ast.md)
- [Low-Level API to Register Functions](rust/register-raw.md)
- [Evaluation Context](engine/eval-context.md)
- [Call Function Within Caller's Scope](language/fn-parent-scope.md)
- [Use Rhai in Dynamic Libraries](engine/dynamic-lib.md)
- [Use Rhai as a DSL](engine/dsl.md)
- [Remap Tokens During Parsing](engine/token-mapper.md)
- [Disable Keywords and/or Operators](engine/disable-keywords.md)
- [Disable Looping](engine/disable-looping.md)
- [Custom Operators](engine/custom-op.md)
- [Operator Precedence](engine/precedence.md)
- [Extend with Custom Syntax](engine/custom-syntax.md)
- [Custom Syntax Parsers](engine/custom-syntax-parsers.md)
- [Debugging Interface](engine/debugging/index.md)
- [Debugger](engine/debugging/debugger.md)
- [State](engine/debugging/state.md)
- [Call Stack](engine/debugging/call-stack.md)
- [Break-Points](engine/debugging/break-points.md)
- [Debugging Server](engine/debugging/server.md)
----------------------
Usage Patterns
==============
- [Object-Oriented Programming (OOP)](patterns/oop.md)
- [Scriptable Event Handler with State](patterns/events.md)
- [Main Style](patterns/events-1.md)
- [JS Style](patterns/events-2.md)
- [Map Style](patterns/events-3.md)
- [Control Layer Over Rust Backend](patterns/control.md)
- [Singleton Command Object](patterns/singleton.md)
- [Loadable Configuration](patterns/config.md)
- [Multi-Layered Functions](patterns/multi-layer.md)
- [Hot Reloading](patterns/hot-reload.md)
- [Builder Pattern / Fluent API](patterns/builder.md)
- [Objects with Defined Behaviors](patterns/objects.md)
- [Dynamic Constants Provider](patterns/dynamic-const.md)
- [Global Constants](patterns/constants.md)
- [Mutable Global State](patterns/global-mutable-state.md)
- [Working with Rust Enums](patterns/enums.md)
- [Simulate Macros to Simplify Scripts](patterns/macros.md)
- [One Engine Instance Per Call](patterns/parallel.md)
- [Multi-Threaded Synchronization](patterns/multi-threading.md)
- [Blocking/Async Function Calls](patterns/blocking.md)
- [External References (Unsafe)](patterns/references.md)
- [Static Hashing](patterns/static-hash.md)
- [Serialize an AST](patterns/serialize-ast.md)
- [Domain-Specific Tools](patterns/domain-tools.md)
- [Multiple Instantiation](patterns/multiple.md)
----------------------
Language Reference
==================
- [Introduction](ref/index.md)
- [Comments](ref/comments.md)
- [Value Types](ref/values-and-types.md)
- [`Dynamic` Values](ref/dynamic.md)
- [type_of()](ref/type-of.md)
- [Value Tag](ref/dynamic-tag.md)
- [Numbers](ref/numbers.md)
- [Operators](ref/num-op.md)
- [Standard Functions](ref/num-fn.md)
- [Value Conversions](ref/convert.md)
- [Ranges](ref/ranges.md)
- [Bit-Fields](ref/bit-fields.md)
- [Strings and Characters](ref/strings-chars.md)
- [Standard Functions and Operators](ref/string-fn.md)
- [Arrays](ref/arrays.md)
- [BLOB's (Byte Arrays)](ref/blobs.md)
- [Object Maps](ref/object-maps.md)
- [Timestamps](ref/timestamps.md)
- [Keywords](ref/keywords.md)
- [Statements](ref/statements.md)
- [Variables](ref/variables.md)
- [Constants](ref/constants.md)
- [Assignments](ref/assignment.md)
- [Compound Assignments](ref/assignment-op.md)
- [Operators](ref/operators.md)
- [Indexing](ref/indexing.md)
- [Properties](ref/getters-setters.md)
- [Methods](ref/methods.md)
- [If Statement](ref/if.md)
- [Switch Statement](ref/switch.md)
- [While Loop](ref/while.md)
- [Do Loop](ref/do.md)
- [Infinite Loop](ref/loop.md)
- [For Loop](ref/for.md)
- [Return Value](ref/return.md)
- [Throw Exception on Error](ref/throw.md)
- [Catch Exceptions](ref/try-catch.md)
- [Functions](ref/functions.md)
- [Method Calls](ref/fn-method.md)
- [Overloading](ref/overload.md)
- [Function Pointers](ref/fn-ptr.md)
- [Closures](ref/fn-closure.md)
- [Metadata](ref/fn-metadata.md)
- [Print and Debug](ref/print-debug.md)
- [Modules](ref/modules/index.md)
- [Export Variables, Functions and Sub-Modules from Script](ref/modules/export.md)
- [Import Modules](ref/modules/import.md)
- [Eval Function](ref/eval.md)
----------------------
Appendix
========
- [External Tools](tools/index.md)
- [Online Playground](tools/playground.md)
- [Language Server](tools/lsp.md)
- [`rhai-doc`](tools/rhai-doc.md)
- [Dynamic Loadable Libraries](lib/rhai-dylib.md)
- [Generate MarkDown/MDX API Documentation](lib/rhai-autodocs.md)
- [Keywords](appendix/keywords.md)
- [Operators and Symbols](appendix/operators.md)
- [Literals](appendix/literals.md)