Wrap up 0.19.10.

This commit is contained in:
Stephen Chung 2021-01-14 19:07:03 +08:00
parent fe65bf6137
commit 3f44e2893c
5 changed files with 16 additions and 20 deletions

View File

@ -11,7 +11,7 @@ edition = "2018"
authors = ["Jonathan Turner", "Lukáš Hozda", "Stephen Chung", "jhwgh1968"] authors = ["Jonathan Turner", "Lukáš Hozda", "Stephen Chung", "jhwgh1968"]
description = "Embedded scripting for Rust" description = "Embedded scripting for Rust"
homepage = "https://rhaiscript.github.io/book" homepage = "https://rhaiscript.github.io/book"
repository = "https://github.com/rhaiscript/rhai" repository = "https://github.com/rhaiscript"
readme = "README.md" readme = "README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
include = [ include = [

View File

@ -70,15 +70,13 @@ Documentation
See [The Rhai Book](https://rhaiscript.github.io/book) for details on the Rhai scripting engine and language. See [The Rhai Book](https://rhaiscript.github.io/book) for details on the Rhai scripting engine and language.
To build _The Book_, first install [`mdbook`](https://github.com/rust-lang/mdBook)
and [`mdbook-tera`](https://github.com/avitex/mdbook-tera) (for templating).
Running `mdbook build` builds it.
Playground Playground
---------- ----------
An [Online Playground](https://rhaiscript.github.io/playground) is available with syntax-highlighting editor. An [Online Playground](https://rhaiscript.github.io/playground) is available with
syntax-highlighting editor, powered by WebAssembly.
Scripts can be evaluated directly from the editor. Scripts can be evaluated directly from the editor.

View File

@ -7,8 +7,9 @@ Version 0.19.10
Bug fixes Bug fixes
--------- ---------
* `no_std` feature now compiles correctly (bug introduced in `0.19.9`).
* Bug in `FileModuleResolver::clear_cache_for_path` path mapping fixed. * Bug in `FileModuleResolver::clear_cache_for_path` path mapping fixed.
* Some optimizer fringe cases is fixed - related to constants propagation when the evil `eval` is present. * Some optimizer fringe cases are fixed - related to constants propagation when the evil `eval` is present.
Breaking changes Breaking changes
---------------- ----------------

View File

@ -1058,13 +1058,13 @@ impl Stmt {
} }
} }
/// _(INTERNALS)_ A custom syntax definition. /// _(INTERNALS)_ A custom syntax expression.
/// Exported under the `internals` feature only. /// Exported under the `internals` feature only.
/// ///
/// # WARNING /// # WARNING
/// ///
/// This type is volatile and may change. /// This type is volatile and may change.
#[derive(Clone, Hash)] #[derive(Debug, Clone, Hash)]
pub struct CustomExpr { pub struct CustomExpr {
/// List of keywords. /// List of keywords.
pub keywords: StaticVec<Expr>, pub keywords: StaticVec<Expr>,
@ -1074,17 +1074,6 @@ pub struct CustomExpr {
pub scope_delta: isize, pub scope_delta: isize,
} }
impl fmt::Debug for CustomExpr {
#[inline(always)]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str("CustomExpr { keywords:")?;
fmt::Debug::fmt(&self.keywords, f)?;
f.write_str(", tokens:")?;
fmt::Debug::fmt(&self.tokens, f)?;
f.write_str("}")
}
}
/// _(INTERNALS)_ A binary expression. /// _(INTERNALS)_ A binary expression.
/// Exported under the `internals` feature only. /// Exported under the `internals` feature only.
/// ///

View File

@ -101,6 +101,14 @@ impl Engine {
/// * `keywords` holds a slice of strings that define the custom syntax. /// * `keywords` holds a slice of strings that define the custom syntax.
/// * `new_vars` is the number of new variables declared by this custom syntax, or the number of variables removed (if negative). /// * `new_vars` is the number of new variables declared by this custom syntax, or the number of variables removed (if negative).
/// * `func` is the implementation function. /// * `func` is the implementation function.
///
/// # Notes
///
/// If `new_vars` is positive, then a number of new variables are expected to be pushed into the
/// current [`Scope`][crate::Scope].
///
/// If `new_vars` is negative, then it is expected that only the top `new_vars` variables in the
/// current [`Scope`][crate::Scope] will be _popped_. Do not randomly remove variables.
pub fn register_custom_syntax<S: AsRef<str> + Into<ImmutableString>>( pub fn register_custom_syntax<S: AsRef<str> + Into<ImmutableString>>(
&mut self, &mut self,
keywords: impl AsRef<[S]>, keywords: impl AsRef<[S]>,