51 lines
3.8 KiB
Markdown
51 lines
3.8 KiB
Markdown
Rust Examples
|
|
============
|
|
|
|
{{#include ../../links.md}}
|
|
|
|
A number of examples can be found in the `examples` directory:
|
|
|
|
| Example | Description |
|
|
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| [`arrays_and_structs`]({{repoTree}}/examples/arrays_and_structs.rs) | shows how to register a custom Rust type and using [arrays] on it |
|
|
| [`custom_types_and_methods`]({{repoTree}}/examples/custom_types_and_methods.rs) | shows how to register a custom Rust type and methods for it |
|
|
| [`hello`]({{repoTree}}/examples/hello.rs) | simple example that evaluates an expression and prints the result |
|
|
| [`reuse_scope`]({{repoTree}}/examples/reuse_scope.rs) | evaluates two pieces of code in separate runs, but using a common [`Scope`] |
|
|
| [`rhai_runner`]({{repoTree}}/examples/rhai_runner.rs) | runs each filename passed to it as a Rhai script |
|
|
| [`serde`]({{repoTree}}/examples/serde.rs) | example to serialize and deserialize Rust types with [`serde`](https://crates.io/crates/serde).<br/>The [`serde`] feature is required to run |
|
|
| [`simple_fn`]({{repoTree}}/examples/simple_fn.rs) | shows how to register a simple function |
|
|
| [`strings`]({{repoTree}}/examples/strings.rs) | shows different ways to register functions taking string arguments |
|
|
| [`repl`]({{repoTree}}/examples/repl.rs) | a simple REPL, interactively evaluate statements from stdin |
|
|
|
|
The `repl` example is a particularly good one as it allows one to interactively try out Rhai's
|
|
language features in a standard REPL (**R**ead-**E**val-**P**rint **L**oop).
|
|
|
|
|
|
Running Examples
|
|
----------------
|
|
|
|
Examples can be run with the following command:
|
|
|
|
```bash
|
|
cargo run --example {example_name}
|
|
```
|
|
|
|
`no-std` Samples
|
|
----------------
|
|
|
|
To illustrate `no-std` builds, a number of sample applications are available under the `no_std` directory:
|
|
|
|
| Sample | Description | Optimization | Allocator | Panics |
|
|
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | :----------: | :-----------------------------------------------: | :----: |
|
|
| [`no_std_test`]({{repoTree}}/no_std/no_std_test) | bare-bones test application that evaluates a Rhai expression and sets the result as the return value | size | [`wee_alloc`](https://crates.io/crates/wee_alloc) | abort |
|
|
|
|
`cargo run` cannot be used to run a `no-std` sample. It must first be built:
|
|
|
|
```bash
|
|
cd no_std/no_std_test
|
|
|
|
cargo +nightly build --release
|
|
|
|
./target/release/no_std_test
|
|
```
|