From d61798a53b28b4be178a0e8a6cfadbc4d3148616 Mon Sep 17 00:00:00 2001 From: Berrysoft Date: Tue, 19 Dec 2023 14:00:27 +0000 Subject: [PATCH] deploy: ef31c8a74a7d28ad0da868c6a8f319263184317c --- doc/ayaka_bindings/all.html | 3 +- doc/ayaka_bindings/attr.export.html | 3 +- doc/ayaka_bindings/attr.import.html | 3 +- doc/ayaka_bindings/fs/index.html | 3 +- doc/ayaka_bindings/fs/struct.HostFS.html | 21 +- doc/ayaka_bindings/index.html | 5 +- doc/ayaka_bindings_impl/all.html | 3 +- doc/ayaka_bindings_impl/attr.export.html | 3 +- doc/ayaka_bindings_impl/attr.import.html | 3 +- doc/ayaka_bindings_impl/index.html | 5 +- doc/ayaka_bindings_types/all.html | 3 +- doc/ayaka_bindings_types/enum.Action.html | 35 +- .../enum.ActionSubText.html | 37 +- .../enum.FileSeekFrom.html | 35 +- doc/ayaka_bindings_types/enum.FileType.html | 35 +- .../enum.FrontendType.html | 31 +- doc/ayaka_bindings_types/index.html | 11 +- .../struct.ActionProcessContext.html | 35 +- .../struct.ActionProcessResult.html | 29 +- .../struct.ActionText.html | 53 +- .../struct.FileMetadata.html | 31 +- .../struct.GameProcessContext.html | 33 +- .../struct.GameProcessResult.html | 29 +- .../struct.LineProcessContext.html | 39 +- .../struct.LineProcessResult.html | 31 +- .../struct.PluginType.html | 39 +- .../struct.PluginTypeBuilder.html | 23 +- .../struct.RawContext.html | 37 +- doc/ayaka_bindings_types/struct.Switch.html | 37 +- .../struct.TextProcessContext.html | 35 +- .../struct.TextProcessResult.html | 29 +- doc/ayaka_bindings_types/type.VarMap.html | 5 +- doc/ayaka_model/all.html | 3 +- doc/ayaka_model/enum.OpenGameStatus.html | 41 +- doc/ayaka_model/index.html | 9 +- doc/ayaka_model/struct.ActionRecord.html | 39 +- doc/ayaka_model/struct.GameViewModel.html | 35 +- doc/ayaka_model/struct.GlobalRecord.html | 39 +- doc/ayaka_model/struct.Settings.html | 45 +- doc/ayaka_model/trait.SettingsManager.html | 15 +- doc/ayaka_plugin/all.html | 3 +- doc/ayaka_plugin/constant.ABI_ALLOC_NAME.html | 3 +- doc/ayaka_plugin/constant.ABI_FREE_NAME.html | 3 +- doc/ayaka_plugin/constant.MEMORY_NAME.html | 3 +- doc/ayaka_plugin/index.html | 7 +- doc/ayaka_plugin/struct.PluginModule.html | 35 +- doc/ayaka_plugin/trait.Linker.html | 17 +- doc/ayaka_plugin/trait.LinkerHandle.html | 7 +- doc/ayaka_plugin/trait.RawModule.html | 9 +- doc/ayaka_plugin_wasmer/all.html | 3 +- doc/ayaka_plugin_wasmer/index.html | 7 +- .../struct.WasmerFunction.html | 31 +- .../struct.WasmerLinker.html | 47 +- .../struct.WasmerLinkerHandle.html | 31 +- .../struct.WasmerModule.html | 53 +- doc/ayaka_plugin_wasmi/all.html | 3 +- doc/ayaka_plugin_wasmi/index.html | 7 +- .../struct.WasmiLinker.html | 41 +- .../struct.WasmiLinkerHandle.html | 31 +- .../struct.WasmiModule.html | 45 +- doc/ayaka_plugin_wasmtime/all.html | 3 +- doc/ayaka_plugin_wasmtime/index.html | 7 +- .../struct.WasmtimeLinker.html | 33 +- .../struct.WasmtimeLinkerHandle.html | 23 +- .../struct.WasmtimeModule.html | 37 +- doc/ayaka_primitive/all.html | 3 +- doc/ayaka_primitive/enum.Line.html | 35 +- doc/ayaka_primitive/enum.RawValue.html | 67 +- doc/ayaka_primitive/enum.SubText.html | 29 +- doc/ayaka_primitive/enum.ValueType.html | 39 +- doc/ayaka_primitive/index.html | 7 +- doc/ayaka_primitive/struct.Text.html | 37 +- doc/ayaka_runtime/all.html | 3 +- doc/ayaka_runtime/enum.OpenStatus.html | 41 +- doc/ayaka_runtime/fn.version.html | 3 +- doc/ayaka_runtime/index.html | 11 +- doc/ayaka_runtime/macro.locale.html | 7 +- doc/ayaka_runtime/plugin/enum.LoadStatus.html | 31 +- doc/ayaka_runtime/plugin/index.html | 5 +- doc/ayaka_runtime/plugin/struct.Module.html | 39 +- doc/ayaka_runtime/plugin/struct.Runtime.html | 35 +- doc/ayaka_runtime/struct.Context.html | 29 +- doc/ayaka_runtime/struct.ContextBuilder.html | 39 +- .../struct.ContextBuilderWithPaths.html | 35 +- doc/ayaka_runtime/struct.Game.html | 35 +- doc/ayaka_runtime/struct.GameConfig.html | 47 +- doc/ayaka_runtime/struct.Paragraph.html | 39 +- doc/ayaka_runtime/struct.PluginConfig.html | 35 +- doc/ayaka_script/all.html | 3 +- doc/ayaka_script/enum.BinaryOp.html | 35 +- doc/ayaka_script/enum.Expr.html | 35 +- doc/ayaka_script/enum.LogicBinaryOp.html | 35 +- doc/ayaka_script/enum.Ref.html | 35 +- doc/ayaka_script/enum.UnaryOp.html | 35 +- doc/ayaka_script/enum.ValBinaryOp.html | 35 +- doc/ayaka_script/index.html | 7 +- doc/ayaka_script/struct.ConstParser.html | 21 +- doc/ayaka_script/struct.ExprParser.html | 21 +- doc/ayaka_script/struct.Program.html | 33 +- doc/ayaka_script/struct.ProgramParser.html | 21 +- doc/ayaka_script/struct.RefParser.html | 21 +- doc/help.html | 3 +- doc/implementors/core/clone/trait.Clone.js | 8 - doc/implementors/core/cmp/trait.Eq.js | 7 - doc/implementors/core/cmp/trait.PartialEq.js | 7 - doc/implementors/core/cmp/trait.PartialOrd.js | 3 - doc/implementors/core/fmt/trait.Debug.js | 8 - .../core/marker/trait.StructuralEq.js | 7 - .../core/marker/trait.StructuralPartialEq.js | 7 - .../serde/de/trait.Deserialize.js | 7 - doc/implementors/serde/ser/trait.Serialize.js | 7 - doc/search-index.js | 30 +- doc/settings.html | 3 +- doc/src-files.js | 26 +- doc/src/ayaka_bindings/fs.rs.html | 7 +- doc/src/ayaka_bindings/lib.rs.html | 17 +- doc/src/ayaka_bindings/logger.rs.html | 9 +- doc/src/ayaka_bindings_impl/lib.rs.html | 13 +- doc/src/ayaka_bindings_types/config.rs.html | 23 +- doc/src/ayaka_bindings_types/fs.rs.html | 3 +- doc/src/ayaka_bindings_types/lib.rs.html | 3 +- doc/src/ayaka_bindings_types/logger.rs.html | 5 +- doc/src/ayaka_bindings_types/plugin.rs.html | 39 +- doc/src/ayaka_model/lib.rs.html | 3 +- doc/src/ayaka_model/settings.rs.html | 5 +- doc/src/ayaka_model/view_model.rs.html | 63 +- doc/src/ayaka_plugin/lib.rs.html | 19 +- doc/src/ayaka_plugin_wasmer/lib.rs.html | 19 +- doc/src/ayaka_plugin_wasmi/lib.rs.html | 49 +- doc/src/ayaka_plugin_wasmtime/lib.rs.html | 35 +- doc/src/ayaka_primitive/lib.rs.html | 3 +- doc/src/ayaka_primitive/line.rs.html | 19 +- doc/src/ayaka_primitive/raw_value.rs.html | 59 +- doc/src/ayaka_primitive/text.rs.html | 77 +- doc/src/ayaka_runtime/config.rs.html | 5 +- doc/src/ayaka_runtime/context.rs.html | 81 +- doc/src/ayaka_runtime/lib.rs.html | 9 +- doc/src/ayaka_runtime/locale.rs.html | 47 +- doc/src/ayaka_runtime/plugin.rs.html | 35 +- .../ayaka_runtime/plugin/fs_interop.rs.html | 19 +- .../ayaka_runtime/plugin/log_interop.rs.html | 13 +- .../plugin/plugin_interop.rs.html | 15 +- .../ayaka_runtime/plugin/rand_interop.rs.html | 7 +- .../plugin/script_interop.rs.html | 7 +- .../out/grammer.rs.html | 16001 ++++++++-------- doc/src/ayaka_script/lib.rs.html | 7 +- doc/src/ayaka_script/parser.rs.html | 57 +- doc/static.files/main-305769736d49e732.js | 11 + doc/static.files/main-5f34af1a0ee6bacd.js | 12 - .../noscript-5d8b3c7633ad77ba.css | 1 - .../noscript-feafe1bb7466e4bd.css | 1 + doc/static.files/rustdoc-804b98a1284a310a.css | 18 + doc/static.files/rustdoc-9ee3a5e31a2afa3e.css | 10 - doc/static.files/search-2b6ce74ff89ae146.js | 5 + doc/static.files/search-8fbf244ebcf71464.js | 5 - doc/static.files/settings-4313503d2e1961c2.js | 17 + doc/static.files/settings-74424d7eec62a23e.js | 17 - .../src-script-3280b574d94e47b4.js | 1 - .../src-script-39ed315d46fb705f.js | 1 + doc/static.files/storage-f2adc0d6ca4d09fb.js | 1 + doc/static.files/storage-fec3eaa3851e447d.js | 1 - .../ayaka_plugin/trait.Linker.js | 2 +- .../ayaka_plugin/trait.LinkerHandle.js | 2 +- .../ayaka_plugin/trait.RawModule.js | 2 +- doc/trait.impl/core/clone/trait.Clone.js | 8 + doc/trait.impl/core/cmp/trait.Eq.js | 7 + .../core/cmp/trait.Ord.js | 0 doc/trait.impl/core/cmp/trait.PartialEq.js | 7 + doc/trait.impl/core/cmp/trait.PartialOrd.js | 3 + .../core/convert/trait.From.js | 2 +- .../core/convert/trait.TryFrom.js | 0 .../core/default/trait.Default.js | 2 +- doc/trait.impl/core/fmt/trait.Debug.js | 8 + .../core/fmt/trait.Display.js | 0 .../core/hash/trait.Hash.js | 0 .../core/marker/trait.Copy.js | 2 +- .../core/marker/trait.Freeze.js | 6 +- .../core/marker/trait.Send.js | 6 +- .../core/marker/trait.StructuralEq.js | 7 + .../core/marker/trait.StructuralPartialEq.js | 7 + .../core/marker/trait.Sync.js | 6 +- .../core/marker/trait.Unpin.js | 6 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 4 +- .../panic/unwind_safe/trait.UnwindSafe.js | 4 +- .../core/str/traits/trait.FromStr.js | 0 .../fallback/trait.FallbackSpec.js | 0 doc/trait.impl/serde/de/trait.Deserialize.js | 7 + doc/trait.impl/serde/ser/trait.Serialize.js | 7 + .../vfs/filesystem/trait.FileSystem.js | 0 .../collections/hash/map/struct.HashMap.js | 3 + en/404.html | 4 +- en/config/character.html | 4 +- en/config/i18n.html | 4 +- en/config/resources.html | 4 +- en/config/script.html | 4 +- en/config/structure.html | 4 +- en/config/summary.html | 4 +- en/config/switches.html | 4 +- en/cook/01-install-rust.html | 4 +- en/cook/02-install-makefile.html | 4 +- en/cook/summary.html | 4 +- en/css/chrome.css | 35 +- en/css/print.css | 2 +- en/css/variables.css | 2 + en/gui/live2d.html | 4 +- en/gui/summary.html | 4 +- en/highlight.js | 49 +- en/index.html | 4 +- en/intro.html | 4 +- en/packaging.html | 4 +- en/platforms.html | 4 +- en/plugin/action_plugin.html | 4 +- en/plugin/game_plugin.html | 4 +- en/plugin/line_plugin.html | 4 +- en/plugin/script_plugin.html | 4 +- en/plugin/summary.html | 4 +- en/plugin/text_plugin.html | 4 +- en/print.html | 4 +- en/quick_start.html | 4 +- en/runtime/run.html | 4 +- en/runtime/summary.html | 4 +- zh-Hans/404.html | 4 +- zh-Hans/config/character.html | 4 +- zh-Hans/config/i18n.html | 4 +- zh-Hans/config/resources.html | 4 +- zh-Hans/config/script.html | 4 +- zh-Hans/config/structure.html | 4 +- zh-Hans/config/summary.html | 4 +- zh-Hans/config/switches.html | 4 +- zh-Hans/cook/01-install-rust.html | 4 +- zh-Hans/cook/02-install-makefile.html | 4 +- zh-Hans/cook/summary.html | 4 +- zh-Hans/css/chrome.css | 35 +- zh-Hans/css/print.css | 2 +- zh-Hans/css/variables.css | 2 + zh-Hans/gui/live2d.html | 4 +- zh-Hans/gui/summary.html | 4 +- zh-Hans/highlight.js | 49 +- zh-Hans/index.html | 4 +- zh-Hans/intro.html | 4 +- zh-Hans/packaging.html | 4 +- zh-Hans/platforms.html | 4 +- zh-Hans/plugin/action_plugin.html | 4 +- zh-Hans/plugin/game_plugin.html | 4 +- zh-Hans/plugin/line_plugin.html | 4 +- zh-Hans/plugin/script_plugin.html | 4 +- zh-Hans/plugin/summary.html | 4 +- zh-Hans/plugin/text_plugin.html | 4 +- zh-Hans/print.html | 4 +- zh-Hans/quick_start.html | 4 +- zh-Hans/runtime/run.html | 4 +- zh-Hans/runtime/summary.html | 4 +- 252 files changed, 10157 insertions(+), 9767 deletions(-) delete mode 100644 doc/implementors/core/clone/trait.Clone.js delete mode 100644 doc/implementors/core/cmp/trait.Eq.js delete mode 100644 doc/implementors/core/cmp/trait.PartialEq.js delete mode 100644 doc/implementors/core/cmp/trait.PartialOrd.js delete mode 100644 doc/implementors/core/fmt/trait.Debug.js delete mode 100644 doc/implementors/core/marker/trait.StructuralEq.js delete mode 100644 doc/implementors/core/marker/trait.StructuralPartialEq.js delete mode 100644 doc/implementors/serde/de/trait.Deserialize.js delete mode 100644 doc/implementors/serde/ser/trait.Serialize.js rename doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/{ayaka-script-a76246b28ecc79aa => ayaka-script-040a41c5ed4539b4}/out/grammer.rs.html (92%) create mode 100644 doc/static.files/main-305769736d49e732.js delete mode 100644 doc/static.files/main-5f34af1a0ee6bacd.js delete mode 100644 doc/static.files/noscript-5d8b3c7633ad77ba.css create mode 100644 doc/static.files/noscript-feafe1bb7466e4bd.css create mode 100644 doc/static.files/rustdoc-804b98a1284a310a.css delete mode 100644 doc/static.files/rustdoc-9ee3a5e31a2afa3e.css create mode 100644 doc/static.files/search-2b6ce74ff89ae146.js delete mode 100644 doc/static.files/search-8fbf244ebcf71464.js create mode 100644 doc/static.files/settings-4313503d2e1961c2.js delete mode 100644 doc/static.files/settings-74424d7eec62a23e.js delete mode 100644 doc/static.files/src-script-3280b574d94e47b4.js create mode 100644 doc/static.files/src-script-39ed315d46fb705f.js create mode 100644 doc/static.files/storage-f2adc0d6ca4d09fb.js delete mode 100644 doc/static.files/storage-fec3eaa3851e447d.js rename doc/{implementors => trait.impl}/ayaka_plugin/trait.Linker.js (68%) rename doc/{implementors => trait.impl}/ayaka_plugin/trait.LinkerHandle.js (68%) rename doc/{implementors => trait.impl}/ayaka_plugin/trait.RawModule.js (69%) create mode 100644 doc/trait.impl/core/clone/trait.Clone.js create mode 100644 doc/trait.impl/core/cmp/trait.Eq.js rename doc/{implementors => trait.impl}/core/cmp/trait.Ord.js (100%) create mode 100644 doc/trait.impl/core/cmp/trait.PartialEq.js create mode 100644 doc/trait.impl/core/cmp/trait.PartialOrd.js rename doc/{implementors => trait.impl}/core/convert/trait.From.js (54%) rename doc/{implementors => trait.impl}/core/convert/trait.TryFrom.js (100%) rename doc/{implementors => trait.impl}/core/default/trait.Default.js (63%) create mode 100644 doc/trait.impl/core/fmt/trait.Debug.js rename doc/{implementors => trait.impl}/core/fmt/trait.Display.js (100%) rename doc/{implementors => trait.impl}/core/hash/trait.Hash.js (100%) rename doc/{implementors => trait.impl}/core/marker/trait.Copy.js (63%) rename doc/{implementors => trait.impl}/core/marker/trait.Freeze.js (88%) rename doc/{implementors => trait.impl}/core/marker/trait.Send.js (88%) create mode 100644 doc/trait.impl/core/marker/trait.StructuralEq.js create mode 100644 doc/trait.impl/core/marker/trait.StructuralPartialEq.js rename doc/{implementors => trait.impl}/core/marker/trait.Sync.js (88%) rename doc/{implementors => trait.impl}/core/marker/trait.Unpin.js (87%) rename doc/{implementors => trait.impl}/core/panic/unwind_safe/trait.RefUnwindSafe.js (89%) rename doc/{implementors => trait.impl}/core/panic/unwind_safe/trait.UnwindSafe.js (89%) rename doc/{implementors => trait.impl}/core/str/traits/trait.FromStr.js (100%) rename doc/{implementors => trait.impl}/fallback/trait.FallbackSpec.js (100%) create mode 100644 doc/trait.impl/serde/de/trait.Deserialize.js create mode 100644 doc/trait.impl/serde/ser/trait.Serialize.js rename doc/{implementors => trait.impl}/vfs/filesystem/trait.FileSystem.js (100%) create mode 100644 doc/type.impl/std/collections/hash/map/struct.HashMap.js diff --git a/doc/ayaka_bindings/all.html b/doc/ayaka_bindings/all.html index 198c0405..94986784 100644 --- a/doc/ayaka_bindings/all.html +++ b/doc/ayaka_bindings/all.html @@ -1 +1,2 @@ -List of all items in this crate

List of all items

Structs

Attribute Macros

\ No newline at end of file +List of all items in this crate +

List of all items

Structs

Attribute Macros

\ No newline at end of file diff --git a/doc/ayaka_bindings/attr.export.html b/doc/ayaka_bindings/attr.export.html index f0d80f5c..731bf965 100644 --- a/doc/ayaka_bindings/attr.export.html +++ b/doc/ayaka_bindings/attr.export.html @@ -1 +1,2 @@ -export in ayaka_bindings - Rust

Attribute Macro ayaka_bindings::export

#[export]
\ No newline at end of file +export in ayaka_bindings - Rust +

Attribute Macro ayaka_bindings::export

#[export]
\ No newline at end of file diff --git a/doc/ayaka_bindings/attr.import.html b/doc/ayaka_bindings/attr.import.html index 905edae9..30224d96 100644 --- a/doc/ayaka_bindings/attr.import.html +++ b/doc/ayaka_bindings/attr.import.html @@ -1 +1,2 @@ -import in ayaka_bindings - Rust

Attribute Macro ayaka_bindings::import

#[import]
\ No newline at end of file +import in ayaka_bindings - Rust +

Attribute Macro ayaka_bindings::import

#[import]
\ No newline at end of file diff --git a/doc/ayaka_bindings/fs/index.html b/doc/ayaka_bindings/fs/index.html index 803028db..caa74d36 100644 --- a/doc/ayaka_bindings/fs/index.html +++ b/doc/ayaka_bindings/fs/index.html @@ -1 +1,2 @@ -ayaka_bindings::fs - Rust
\ No newline at end of file +ayaka_bindings::fs - Rust +
\ No newline at end of file diff --git a/doc/ayaka_bindings/fs/struct.HostFS.html b/doc/ayaka_bindings/fs/struct.HostFS.html index 62beaf91..32289a9f 100644 --- a/doc/ayaka_bindings/fs/struct.HostFS.html +++ b/doc/ayaka_bindings/fs/struct.HostFS.html @@ -1,15 +1,16 @@ -HostFS in ayaka_bindings::fs - Rust

Struct ayaka_bindings::fs::HostFS

source ·
pub struct HostFS;

Trait Implementations§

source§

impl Debug for HostFS

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for HostFS

source§

fn default() -> HostFS

Returns the “default value” for a type. Read more
source§

impl FileSystem for HostFS

source§

fn read_dir( +HostFS in ayaka_bindings::fs - Rust +

Struct ayaka_bindings::fs::HostFS

source ·
pub struct HostFS;

Trait Implementations§

source§

impl Debug for HostFS

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for HostFS

source§

fn default() -> HostFS

Returns the “default value” for a type. Read more
source§

impl FileSystem for HostFS

source§

fn read_dir( &self, path: &str ) -> VfsResult<Box<dyn Iterator<Item = String> + Send>>

Iterates over all direct children of this directory path -NOTE: the returned String items denote the local bare filenames, i.e. they should not contain “/” anywhere
source§

fn create_dir(&self, _path: &str) -> VfsResult<()>

Creates the directory at this path Read more
source§

fn open_file(&self, path: &str) -> VfsResult<Box<dyn SeekAndRead + Send>>

Opens the file at this path for reading
source§

fn create_file(&self, _path: &str) -> VfsResult<Box<dyn Write + Send>>

Creates a file at this path for writing
source§

fn append_file(&self, _path: &str) -> VfsResult<Box<dyn Write + Send>>

Opens the file at this path for appending
source§

fn metadata(&self, path: &str) -> VfsResult<VfsMetadata>

Returns the file metadata for the file at this path
source§

fn exists(&self, path: &str) -> VfsResult<bool>

Returns true if a file or directory at path exists, false otherwise
source§

fn remove_file(&self, _path: &str) -> VfsResult<()>

Removes the file at this path
source§

fn remove_dir(&self, _path: &str) -> VfsResult<()>

Removes the directory at this path
§

fn copy_file(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Copies the src path to the destination path within the same filesystem (optional)
§

fn move_file(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Moves the src path to the destination path within the same filesystem (optional)
§

fn move_dir(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Moves the src directory to the destination path within the same filesystem (optional)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+NOTE: the returned String items denote the local bare filenames, i.e. they should not contain “/” anywhere
source§

fn create_dir(&self, _path: &str) -> VfsResult<()>

Creates the directory at this path Read more
source§

fn open_file(&self, path: &str) -> VfsResult<Box<dyn SeekAndRead + Send>>

Opens the file at this path for reading
source§

fn create_file(&self, _path: &str) -> VfsResult<Box<dyn Write + Send>>

Creates a file at this path for writing
source§

fn append_file(&self, _path: &str) -> VfsResult<Box<dyn Write + Send>>

Opens the file at this path for appending
source§

fn metadata(&self, path: &str) -> VfsResult<VfsMetadata>

Returns the file metadata for the file at this path
source§

fn exists(&self, path: &str) -> VfsResult<bool>

Returns true if a file or directory at path exists, false otherwise
source§

fn remove_file(&self, _path: &str) -> VfsResult<()>

Removes the file at this path
source§

fn remove_dir(&self, _path: &str) -> VfsResult<()>

Removes the directory at this path
§

fn copy_file(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Copies the src path to the destination path within the same filesystem (optional)
§

fn move_file(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Moves the src path to the destination path within the same filesystem (optional)
§

fn move_dir(&self, _src: &str, _dest: &str) -> Result<(), VfsError>

Moves the src directory to the destination path within the same filesystem (optional)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +

source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_bindings/index.html b/doc/ayaka_bindings/index.html index f9782443..dcfe2898 100644 --- a/doc/ayaka_bindings/index.html +++ b/doc/ayaka_bindings/index.html @@ -1,2 +1,3 @@ -ayaka_bindings - Rust

Crate ayaka_bindings

source ·

Re-exports

  • pub use ayaka_primitive::RawValue;
  • pub use ayaka_primitive::ValueType;
  • pub use log;
  • pub use vfs;
  • pub use ayaka_bindings_types::*;

Modules

Attribute Macros

\ No newline at end of file +ayaka_bindings - Rust +

Crate ayaka_bindings

source ·

Re-exports

  • pub use ayaka_primitive::RawValue;
  • pub use ayaka_primitive::ValueType;
  • pub use log;
  • pub use vfs;
  • pub use ayaka_bindings_types::*;

Modules

Attribute Macros

\ No newline at end of file diff --git a/doc/ayaka_bindings_impl/all.html b/doc/ayaka_bindings_impl/all.html index c11939ba..77a5835d 100644 --- a/doc/ayaka_bindings_impl/all.html +++ b/doc/ayaka_bindings_impl/all.html @@ -1 +1,2 @@ -List of all items in this crate

List of all items

Attribute Macros

\ No newline at end of file +List of all items in this crate +

List of all items

Attribute Macros

\ No newline at end of file diff --git a/doc/ayaka_bindings_impl/attr.export.html b/doc/ayaka_bindings_impl/attr.export.html index 085f1849..0cc75391 100644 --- a/doc/ayaka_bindings_impl/attr.export.html +++ b/doc/ayaka_bindings_impl/attr.export.html @@ -1 +1,2 @@ -export in ayaka_bindings_impl - Rust

Attribute Macro ayaka_bindings_impl::export

source ·
#[export]
\ No newline at end of file +export in ayaka_bindings_impl - Rust +

Attribute Macro ayaka_bindings_impl::export

source ·
#[export]
\ No newline at end of file diff --git a/doc/ayaka_bindings_impl/attr.import.html b/doc/ayaka_bindings_impl/attr.import.html index 7e94aa97..6fc78bac 100644 --- a/doc/ayaka_bindings_impl/attr.import.html +++ b/doc/ayaka_bindings_impl/attr.import.html @@ -1 +1,2 @@ -import in ayaka_bindings_impl - Rust

Attribute Macro ayaka_bindings_impl::import

source ·
#[import]
\ No newline at end of file +import in ayaka_bindings_impl - Rust +

Attribute Macro ayaka_bindings_impl::import

source ·
#[import]
\ No newline at end of file diff --git a/doc/ayaka_bindings_impl/index.html b/doc/ayaka_bindings_impl/index.html index b1bd51ed..1e7d18ec 100644 --- a/doc/ayaka_bindings_impl/index.html +++ b/doc/ayaka_bindings_impl/index.html @@ -1,2 +1,3 @@ -ayaka_bindings_impl - Rust
\ No newline at end of file +ayaka_bindings_impl - Rust +
\ No newline at end of file diff --git a/doc/ayaka_bindings_types/all.html b/doc/ayaka_bindings_types/all.html index b3cf444d..796733cb 100644 --- a/doc/ayaka_bindings_types/all.html +++ b/doc/ayaka_bindings_types/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_bindings_types/enum.Action.html b/doc/ayaka_bindings_types/enum.Action.html index 31ecf479..5a24d851 100644 --- a/doc/ayaka_bindings_types/enum.Action.html +++ b/doc/ayaka_bindings_types/enum.Action.html @@ -1,28 +1,29 @@ -Action in ayaka_bindings_types - Rust
pub enum Action {
+Action in ayaka_bindings_types - Rust
+    
pub enum Action {
     Empty,
     Text(ActionText),
     Switches(Vec<Switch>),
     Custom(VarMap),
 }
Expand description

The full action information in one line of config. It provides the full texts and other properties exacted from [ayaka_primitive::Text].

-

Variants§

§

Empty

An empty action usually means an exec or custom action.

+

Variants§

§

Empty

An empty action usually means an exec or custom action.

§

Text(ActionText)

A text action, display some texts.

§

Switches(Vec<Switch>)

A switch action, display switches and let player to choose.

§

Custom(VarMap)

A custom action.

-

Trait Implementations§

source§

impl Clone for Action

source§

fn clone(&self) -> Action

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Action

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Action

source§

fn default() -> Action

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Action

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<Action> for Action

source§

fn eq(&self, other: &Action) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Action

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for Action

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for Action

source§

fn clone(&self) -> Action

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Action

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Action

source§

fn default() -> Action

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Action

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Action

source§

fn eq(&self, other: &Action) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Action

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for Action

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/enum.ActionSubText.html b/doc/ayaka_bindings_types/enum.ActionSubText.html index 841f7d45..8ddc086c 100644 --- a/doc/ayaka_bindings_types/enum.ActionSubText.html +++ b/doc/ayaka_bindings_types/enum.ActionSubText.html @@ -1,32 +1,33 @@ -ActionSubText in ayaka_bindings_types - Rust
pub enum ActionSubText {
+ActionSubText in ayaka_bindings_types - Rust
+    
pub enum ActionSubText {
     Chars(String),
     Block(String),
 }
Expand description

The unit of one line in an action.

If a frontend supports animation, the characters in ActionSubText::Chars should be printed one by one, while the characters in ActionSubText::Block should be printed together.

-

Variants§

§

Chars(String)

Characters printed one by one. +

Variants§

§

Chars(String)

Characters printed one by one. Usually they are meaningful texts.

§

Block(String)

Characters printed together. Usually they are HTML tags or other control characters.

-

Implementations§

source§

impl ActionSubText

source

pub fn chars(s: impl Into<String>) -> Self

Implementations§

source§

impl ActionSubText

source

pub fn chars(s: impl Into<String>) -> Self

source

pub fn block(s: impl Into<String>) -> Self

source

pub fn as_str(&self) -> &str

Gets a reference of str.

source

pub fn into_string(self) -> String

Gets the inner String.

-

Trait Implementations§

source§

impl Clone for ActionSubText

source§

fn clone(&self) -> ActionSubText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionSubText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ActionSubText

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<ActionSubText> for ActionSubText

source§

fn eq(&self, other: &ActionSubText) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ActionSubText

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for ActionSubText

source§

impl StructuralEq for ActionSubText

source§

impl StructuralPartialEq for ActionSubText

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ActionSubText

source§

fn clone(&self) -> ActionSubText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionSubText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ActionSubText

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for ActionSubText

source§

fn eq(&self, other: &ActionSubText) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ActionSubText

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for ActionSubText

source§

impl StructuralEq for ActionSubText

source§

impl StructuralPartialEq for ActionSubText

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/enum.FileSeekFrom.html b/doc/ayaka_bindings_types/enum.FileSeekFrom.html index ab16efcd..bf669849 100644 --- a/doc/ayaka_bindings_types/enum.FileSeekFrom.html +++ b/doc/ayaka_bindings_types/enum.FileSeekFrom.html @@ -1,25 +1,26 @@ -FileSeekFrom in ayaka_bindings_types - Rust
pub enum FileSeekFrom {
+FileSeekFrom in ayaka_bindings_types - Rust
+    
pub enum FileSeekFrom {
     Start(u64),
     End(i64),
     Current(i64),
 }
Expand description

A SeekFrom type which implements serde.

-

Variants§

§

Start(u64)

Seek from start.

+

Variants§

§

Start(u64)

Seek from start.

§

End(i64)

Seek from end.

§

Current(i64)

Seek from current position.

-

Trait Implementations§

source§

impl Clone for FileSeekFrom

source§

fn clone(&self) -> FileSeekFrom

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileSeekFrom

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileSeekFrom

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileSeekFrom> for SeekFrom

source§

fn from(value: FileSeekFrom) -> Self

Converts to this type from the input type.
source§

impl From<SeekFrom> for FileSeekFrom

source§

fn from(value: SeekFrom) -> Self

Converts to this type from the input type.
source§

impl PartialEq<FileSeekFrom> for FileSeekFrom

source§

fn eq(&self, other: &FileSeekFrom) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FileSeekFrom

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FileSeekFrom

source§

impl Eq for FileSeekFrom

source§

impl StructuralEq for FileSeekFrom

source§

impl StructuralPartialEq for FileSeekFrom

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for FileSeekFrom

source§

fn clone(&self) -> FileSeekFrom

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileSeekFrom

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileSeekFrom

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileSeekFrom> for SeekFrom

source§

fn from(value: FileSeekFrom) -> Self

Converts to this type from the input type.
source§

impl From<SeekFrom> for FileSeekFrom

source§

fn from(value: SeekFrom) -> Self

Converts to this type from the input type.
source§

impl PartialEq for FileSeekFrom

source§

fn eq(&self, other: &FileSeekFrom) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FileSeekFrom

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FileSeekFrom

source§

impl Eq for FileSeekFrom

source§

impl StructuralEq for FileSeekFrom

source§

impl StructuralPartialEq for FileSeekFrom

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/enum.FileType.html b/doc/ayaka_bindings_types/enum.FileType.html index 8f982bf8..6e75ad11 100644 --- a/doc/ayaka_bindings_types/enum.FileType.html +++ b/doc/ayaka_bindings_types/enum.FileType.html @@ -1,23 +1,24 @@ -FileType in ayaka_bindings_types - Rust
pub enum FileType {
+FileType in ayaka_bindings_types - Rust
+    
pub enum FileType {
     File,
     Dir,
 }
Expand description

Type of a file.

-

Variants§

§

File

A file.

+

Variants§

§

File

A file.

§

Dir

A directory.

-

Trait Implementations§

source§

impl Clone for FileType

source§

fn clone(&self) -> FileType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileType> for VfsFileType

source§

fn from(value: FileType) -> Self

Converts to this type from the input type.
source§

impl From<VfsFileType> for FileType

source§

fn from(value: VfsFileType) -> Self

Converts to this type from the input type.
source§

impl PartialEq<FileType> for FileType

source§

fn eq(&self, other: &FileType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FileType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FileType

source§

impl Eq for FileType

source§

impl StructuralEq for FileType

source§

impl StructuralPartialEq for FileType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for FileType

source§

fn clone(&self) -> FileType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FileType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileType> for VfsFileType

source§

fn from(value: FileType) -> Self

Converts to this type from the input type.
source§

impl From<VfsFileType> for FileType

source§

fn from(value: VfsFileType) -> Self

Converts to this type from the input type.
source§

impl PartialEq for FileType

source§

fn eq(&self, other: &FileType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FileType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FileType

source§

impl Eq for FileType

source§

impl StructuralEq for FileType

source§

impl StructuralPartialEq for FileType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/enum.FrontendType.html b/doc/ayaka_bindings_types/enum.FrontendType.html index e536e5e1..abd9f8d5 100644 --- a/doc/ayaka_bindings_types/enum.FrontendType.html +++ b/doc/ayaka_bindings_types/enum.FrontendType.html @@ -1,23 +1,24 @@ -FrontendType in ayaka_bindings_types - Rust
pub enum FrontendType {
+FrontendType in ayaka_bindings_types - Rust
+    
pub enum FrontendType {
     Text,
     Html,
     Latex,
 }
Expand description

The type of current frontend.

-

Variants§

§

Text

The frontend only accepts raw texts.

+

Variants§

§

Text

The frontend only accepts raw texts.

§

Html

The frontend renders HTML.

§

Latex

The frontend renders LaTeX.

-

Trait Implementations§

source§

impl Clone for FrontendType

source§

fn clone(&self) -> FrontendType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FrontendType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FrontendType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FrontendType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FrontendType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for FrontendType

source§

fn clone(&self) -> FrontendType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FrontendType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FrontendType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FrontendType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for FrontendType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/index.html b/doc/ayaka_bindings_types/index.html index 5c21c78f..5222e1f2 100644 --- a/doc/ayaka_bindings_types/index.html +++ b/doc/ayaka_bindings_types/index.html @@ -1,9 +1,10 @@ -ayaka_bindings_types - Rust
Expand description

The types used in both runtime and plugins.

-

Structs

Enums

  • The full action information in one line of config. +It provides the full texts and other properties exacted from [ayaka_primitive::Text].
  • The unit of one line in an action.
  • A SeekFrom type which implements serde.
  • Type of a file.
  • The type of current frontend.

Type Aliases

  • A map from variable name to [RawValue].
\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.ActionProcessContext.html b/doc/ayaka_bindings_types/struct.ActionProcessContext.html index 0dc1da96..f255db61 100644 --- a/doc/ayaka_bindings_types/struct.ActionProcessContext.html +++ b/doc/ayaka_bindings_types/struct.ActionProcessContext.html @@ -1,4 +1,5 @@ -ActionProcessContext in ayaka_bindings_types - Rust
pub struct ActionProcessContext {
+ActionProcessContext in ayaka_bindings_types - Rust
+    
pub struct ActionProcessContext {
     pub game_props: HashMap<String, String>,
     pub frontend: FrontendType,
     pub ctx: RawContext,
@@ -13,21 +14,21 @@
     // Process the action...
     ActionProcessResult { action: ctx.action }
 }
-

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

-
§frontend: FrontendType

The frontend type.

-
§ctx: RawContext

The current context.

-
§action: ActionText

The current action.

-

Trait Implementations§

source§

impl Debug for ActionProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ActionProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

+
§frontend: FrontendType

The frontend type.

+
§ctx: RawContext

The current context.

+
§action: ActionText

The current action.

+

Trait Implementations§

source§

impl Debug for ActionProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ActionProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.ActionProcessResult.html b/doc/ayaka_bindings_types/struct.ActionProcessResult.html index 2fc303a9..fe1ee974 100644 --- a/doc/ayaka_bindings_types/struct.ActionProcessResult.html +++ b/doc/ayaka_bindings_types/struct.ActionProcessResult.html @@ -1,19 +1,20 @@ -ActionProcessResult in ayaka_bindings_types - Rust
pub struct ActionProcessResult {
+ActionProcessResult in ayaka_bindings_types - Rust
+    
pub struct ActionProcessResult {
     pub action: ActionText,
 }
Expand description

The result of action plugins. See examples at ActionProcessContext.

-

Fields§

§action: ActionText

The processed action text.

-

Trait Implementations§

source§

impl Debug for ActionProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionProcessResult

source§

fn default() -> ActionProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§action: ActionText

The processed action text.

+

Trait Implementations§

source§

impl Debug for ActionProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionProcessResult

source§

fn default() -> ActionProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.ActionText.html b/doc/ayaka_bindings_types/struct.ActionText.html index 9f5de9f9..2a423602 100644 --- a/doc/ayaka_bindings_types/struct.ActionText.html +++ b/doc/ayaka_bindings_types/struct.ActionText.html @@ -1,4 +1,5 @@ -ActionText in ayaka_bindings_types - Rust
pub struct ActionText {
+ActionText in ayaka_bindings_types - Rust
+    
pub struct ActionText {
     pub text: VecDeque<ActionSubText>,
     pub ch_key: Option<String>,
     pub character: Option<String>,
@@ -10,33 +11,33 @@
 push_back_chars and push_back_block.

let mut text = ActionText::default();
-text.push_back_chars("Hello ");
-assert_eq!(text.text[0], ActionSubText::chars("Hello "));
-text.push_back_chars("world!");
-assert_eq!(text.text[0], ActionSubText::chars("Hello world!"));
-

Fields§

§text: VecDeque<ActionSubText>

The full texts.

-
§ch_key: Option<String>

The key of current character.

-
§character: Option<String>

The current character.

-
§vars: VarMap

The temp variables.

-

Implementations§

source§

impl ActionText

source

pub fn push_back_chars<'a>(&mut self, s: impl Into<Cow<'a, str>>)

Push the string as ActionSubText::Chars to the back. +text.push_back_chars("Hello "); +assert_eq!(text.text[0], ActionSubText::chars("Hello ")); +text.push_back_chars("world!"); +assert_eq!(text.text[0], ActionSubText::chars("Hello world!"));

+

Fields§

§text: VecDeque<ActionSubText>

The full texts.

+
§ch_key: Option<String>

The key of current character.

+
§character: Option<String>

The current character.

+
§vars: VarMap

The temp variables.

+

Implementations§

source§

impl ActionText

source

pub fn push_back_chars<'a>(&mut self, s: impl Into<Cow<'a, str>>)

Push the string as ActionSubText::Chars to the back. If the back element is also ActionSubText::Chars, the string is appended.

source

pub fn push_back_block<'a>(&mut self, s: impl Into<Cow<'a, str>>)

Push the string as ActionSubText::Block to the back. If the back element is also ActionSubText::Block, the string is appended.

-

Trait Implementations§

source§

impl Clone for ActionText

source§

fn clone(&self) -> ActionText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionText

source§

fn default() -> ActionText

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionText

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ActionText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FallbackSpec for ActionText

§

type SpecType = __FallbackActionText

The specialized fallback type.
source§

impl PartialEq<ActionText> for ActionText

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ActionText

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ActionText

source§

fn clone(&self) -> ActionText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionText

source§

fn default() -> ActionText

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionText

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ActionText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FallbackSpec for ActionText

§

type SpecType = __FallbackActionText

The specialized fallback type.
source§

impl PartialEq for ActionText

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ActionText

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.FileMetadata.html b/doc/ayaka_bindings_types/struct.FileMetadata.html index a3e833e4..8c961e8a 100644 --- a/doc/ayaka_bindings_types/struct.FileMetadata.html +++ b/doc/ayaka_bindings_types/struct.FileMetadata.html @@ -1,20 +1,21 @@ -FileMetadata in ayaka_bindings_types - Rust
pub struct FileMetadata {
+FileMetadata in ayaka_bindings_types - Rust
+    
pub struct FileMetadata {
     pub file_type: FileType,
     pub len: u64,
 }
Expand description

File metadata.

-

Fields§

§file_type: FileType

Type of file.

-
§len: u64

Length of the file.

-

Trait Implementations§

source§

impl Debug for FileMetadata

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileMetadata

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileMetadata> for VfsMetadata

source§

fn from(value: FileMetadata) -> Self

Converts to this type from the input type.
source§

impl From<VfsMetadata> for FileMetadata

source§

fn from(value: VfsMetadata) -> Self

Converts to this type from the input type.
source§

impl Serialize for FileMetadata

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§file_type: FileType

Type of file.

+
§len: u64

Length of the file.

+

Trait Implementations§

source§

impl Debug for FileMetadata

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FileMetadata

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<FileMetadata> for VfsMetadata

source§

fn from(value: FileMetadata) -> Self

Converts to this type from the input type.
source§

impl From<VfsMetadata> for FileMetadata

source§

fn from(value: VfsMetadata) -> Self

Converts to this type from the input type.
source§

impl Serialize for FileMetadata

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.GameProcessContext.html b/doc/ayaka_bindings_types/struct.GameProcessContext.html index edc116c6..3569d212 100644 --- a/doc/ayaka_bindings_types/struct.GameProcessContext.html +++ b/doc/ayaka_bindings_types/struct.GameProcessContext.html @@ -1,4 +1,5 @@ -GameProcessContext in ayaka_bindings_types - Rust
pub struct GameProcessContext {
+GameProcessContext in ayaka_bindings_types - Rust
+    
pub struct GameProcessContext {
     pub title: String,
     pub author: String,
     pub props: HashMap<String, String>,
@@ -12,20 +13,20 @@
     // Process the game...
     GameProcessResult { props: ctx.props }
 }
-

Fields§

§title: String

The title of the game.

-
§author: String

The author of the game.

-
§props: HashMap<String, String>

The global properties of the game.

-

Trait Implementations§

source§

impl Debug for GameProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for GameProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GameProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§title: String

The title of the game.

+
§author: String

The author of the game.

+
§props: HashMap<String, String>

The global properties of the game.

+

Trait Implementations§

source§

impl Debug for GameProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for GameProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GameProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.GameProcessResult.html b/doc/ayaka_bindings_types/struct.GameProcessResult.html index 09a857a2..ecacad23 100644 --- a/doc/ayaka_bindings_types/struct.GameProcessResult.html +++ b/doc/ayaka_bindings_types/struct.GameProcessResult.html @@ -1,19 +1,20 @@ -GameProcessResult in ayaka_bindings_types - Rust
pub struct GameProcessResult {
+GameProcessResult in ayaka_bindings_types - Rust
+    
pub struct GameProcessResult {
     pub props: HashMap<String, String>,
 }
Expand description

The result of game plugins. See examples at GameProcessContext.

-

Fields§

§props: HashMap<String, String>

The updated properties.

-

Trait Implementations§

source§

impl Debug for GameProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for GameProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GameProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§props: HashMap<String, String>

The updated properties.

+

Trait Implementations§

source§

impl Debug for GameProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for GameProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GameProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.LineProcessContext.html b/doc/ayaka_bindings_types/struct.LineProcessContext.html index 7b570a33..1420ddbc 100644 --- a/doc/ayaka_bindings_types/struct.LineProcessContext.html +++ b/doc/ayaka_bindings_types/struct.LineProcessContext.html @@ -1,4 +1,5 @@ -LineProcessContext in ayaka_bindings_types - Rust
pub struct LineProcessContext {
+LineProcessContext in ayaka_bindings_types - Rust
+    
pub struct LineProcessContext {
     pub game_props: HashMap<String, String>,
     pub frontend: FrontendType,
     pub ctx: RawContext,
@@ -9,30 +10,30 @@
 
 #[export]
 fn plugin_type() -> PluginType {
-    PluginType::builder().line(&["hello"]).build()
+    PluginType::builder().line(&["hello"]).build()
 }
 
 #[export]
 fn hello(_ctx: LineProcessContext) -> LineProcessResult {
     let mut res = LineProcessResult::default();
-    res.locals.insert("hello".to_string(), RawValue::Str("world".to_string()));
+    res.locals.insert("hello".to_string(), RawValue::Str("world".to_string()));
     res
 }
-

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

-
§frontend: FrontendType

The frontend type.

-
§ctx: RawContext

The current context.

-
§props: VarMap

The full properties of the custom command.

-

Trait Implementations§

source§

impl Debug for LineProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LineProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for LineProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

+
§frontend: FrontendType

The frontend type.

+
§ctx: RawContext

The current context.

+
§props: VarMap

The full properties of the custom command.

+

Trait Implementations§

source§

impl Debug for LineProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LineProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for LineProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.LineProcessResult.html b/doc/ayaka_bindings_types/struct.LineProcessResult.html index 3a8d6484..40a001ed 100644 --- a/doc/ayaka_bindings_types/struct.LineProcessResult.html +++ b/doc/ayaka_bindings_types/struct.LineProcessResult.html @@ -1,21 +1,22 @@ -LineProcessResult in ayaka_bindings_types - Rust
pub struct LineProcessResult {
+LineProcessResult in ayaka_bindings_types - Rust
+    
pub struct LineProcessResult {
     pub locals: VarMap,
     pub vars: VarMap,
 }
Expand description

The result of commands in line plugins. See examples at LineProcessContext.

-

Fields§

§locals: VarMap

The updated variables.

-
§vars: VarMap

The temp variables.

-

Trait Implementations§

source§

impl Debug for LineProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LineProcessResult

source§

fn default() -> LineProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for LineProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for LineProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§locals: VarMap

The updated variables.

+
§vars: VarMap

The temp variables.

+

Trait Implementations§

source§

impl Debug for LineProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for LineProcessResult

source§

fn default() -> LineProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for LineProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for LineProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.PluginType.html b/doc/ayaka_bindings_types/struct.PluginType.html index 1bc1c83f..a5fc7e2a 100644 --- a/doc/ayaka_bindings_types/struct.PluginType.html +++ b/doc/ayaka_bindings_types/struct.PluginType.html @@ -1,4 +1,5 @@ -PluginType in ayaka_bindings_types - Rust

Fields§

§action: bool

The action plugin. +

Fields§

§action: bool

The action plugin. This plugin processes the action after they are parsed.

-
§text: Vec<String>

The text plugin. +

§text: Vec<String>

The text plugin. The custom text commands are dealt with this type of plugin.

-
§line: Vec<String>

The line plugin. +

§line: Vec<String>

The line plugin. The custom line types are dealt with this type of plugin.

-
§game: bool

The game plugin. +

§game: bool

The game plugin. This plugin processes the game properties after it is loaded.

-

Implementations§

source§

impl PluginType

source

pub fn builder() -> PluginTypeBuilder

Creates a PluginTypeBuilder instance to build a PluginType.

-

Trait Implementations§

source§

impl Clone for PluginType

source§

fn clone(&self) -> PluginType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PluginType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for PluginType

source§

fn default() -> PluginType

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for PluginType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for PluginType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Implementations§

source§

impl PluginType

source

pub fn builder() -> PluginTypeBuilder

Creates a PluginTypeBuilder instance to build a PluginType.

+

Trait Implementations§

source§

impl Clone for PluginType

source§

fn clone(&self) -> PluginType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PluginType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for PluginType

source§

fn default() -> PluginType

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for PluginType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for PluginType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.PluginTypeBuilder.html b/doc/ayaka_bindings_types/struct.PluginTypeBuilder.html index cfeac829..57029c0f 100644 --- a/doc/ayaka_bindings_types/struct.PluginTypeBuilder.html +++ b/doc/ayaka_bindings_types/struct.PluginTypeBuilder.html @@ -1,17 +1,18 @@ -PluginTypeBuilder in ayaka_bindings_types - Rust
pub struct PluginTypeBuilder { /* private fields */ }
Expand description

The builder of PluginType.

-

Implementations§

source§

impl PluginTypeBuilder

source

pub fn action(self) -> Self

An action plugin.

+PluginTypeBuilder in ayaka_bindings_types - Rust +
pub struct PluginTypeBuilder { /* private fields */ }
Expand description

The builder of PluginType.

+

Implementations§

source§

impl PluginTypeBuilder

source

pub fn action(self) -> Self

An action plugin.

source

pub fn text(self, cmds: impl IntoIterator<Item = impl Into<String>>) -> Self

A text plugin, which provides commands.

source

pub fn line(self, cmds: impl IntoIterator<Item = impl Into<String>>) -> Self

A line plugins, which provides custom line types.

source

pub fn game(self) -> Self

A game plugin.

source

pub fn build(self) -> PluginType

Build a PluginType.

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.RawContext.html b/doc/ayaka_bindings_types/struct.RawContext.html index 0fe16048..7c1dc60c 100644 --- a/doc/ayaka_bindings_types/struct.RawContext.html +++ b/doc/ayaka_bindings_types/struct.RawContext.html @@ -1,25 +1,26 @@ -RawContext in ayaka_bindings_types - Rust
pub struct RawContext {
+RawContext in ayaka_bindings_types - Rust
+    
pub struct RawContext {
     pub cur_base_para: String,
     pub cur_para: String,
     pub cur_act: usize,
     pub locals: VarMap,
 }
Expand description

The serializable context.

-

Fields§

§cur_base_para: String

Current base paragraph tag.

-
§cur_para: String

Current paragraph tag.

-
§cur_act: usize

Current text index.

-
§locals: VarMap

Current local variables.

-

Trait Implementations§

source§

impl Clone for RawContext

source§

fn clone(&self) -> RawContext

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RawContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RawContext

source§

fn default() -> RawContext

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RawContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RawContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§cur_base_para: String

Current base paragraph tag.

+
§cur_para: String

Current paragraph tag.

+
§cur_act: usize

Current text index.

+
§locals: VarMap

Current local variables.

+

Trait Implementations§

source§

impl Clone for RawContext

source§

fn clone(&self) -> RawContext

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RawContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RawContext

source§

fn default() -> RawContext

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RawContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RawContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.Switch.html b/doc/ayaka_bindings_types/struct.Switch.html index 0cc99350..aec34cc8 100644 --- a/doc/ayaka_bindings_types/struct.Switch.html +++ b/doc/ayaka_bindings_types/struct.Switch.html @@ -1,23 +1,24 @@ -Switch in ayaka_bindings_types - Rust
pub struct Switch {
+Switch in ayaka_bindings_types - Rust
+    
pub struct Switch {
     pub text: String,
     pub enabled: bool,
 }
Expand description

One switch in the switches of an Action.

-

Fields§

§text: String

The switch text.

-
§enabled: bool

Whether the switch is enabled.

-

Trait Implementations§

source§

impl Clone for Switch

source§

fn clone(&self) -> Switch

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Switch

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Switch

source§

fn default() -> Switch

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Switch

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FallbackSpec for Switch

§

type SpecType = __FallbackSwitch

The specialized fallback type.
source§

impl PartialEq<Switch> for Switch

source§

fn eq(&self, other: &Switch) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Switch

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Switch

source§

impl StructuralEq for Switch

source§

impl StructuralPartialEq for Switch

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§text: String

The switch text.

+
§enabled: bool

Whether the switch is enabled.

+

Trait Implementations§

source§

impl Clone for Switch

source§

fn clone(&self) -> Switch

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Switch

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Switch

source§

fn default() -> Switch

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Switch

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FallbackSpec for Switch

§

type SpecType = __FallbackSwitch

The specialized fallback type.
source§

impl PartialEq for Switch

source§

fn eq(&self, other: &Switch) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Switch

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Switch

source§

impl StructuralEq for Switch

source§

impl StructuralPartialEq for Switch

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.TextProcessContext.html b/doc/ayaka_bindings_types/struct.TextProcessContext.html index fa928d37..12b1852d 100644 --- a/doc/ayaka_bindings_types/struct.TextProcessContext.html +++ b/doc/ayaka_bindings_types/struct.TextProcessContext.html @@ -1,4 +1,5 @@ -TextProcessContext in ayaka_bindings_types - Rust
pub struct TextProcessContext {
+TextProcessContext in ayaka_bindings_types - Rust
+    
pub struct TextProcessContext {
     pub game_props: HashMap<String, String>,
     pub frontend: FrontendType,
 }
Expand description

The argument to text plugin.

@@ -7,28 +8,28 @@ #[export] fn plugin_type() -> PluginType { - PluginType::builder().text(&["hello"]).build() + PluginType::builder().text(&["hello"]).build() } #[export] fn hello(_args: Vec<String>, _ctx: TextProcessContext) -> TextProcessResult { let mut res = TextProcessResult::default(); - res.line.push_back_chars("hello"); + res.line.push_back_chars("hello"); res }
-

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

-
§frontend: FrontendType

The frontend type.

-

Trait Implementations§

source§

impl Debug for TextProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TextProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TextProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§game_props: HashMap<String, String>

The global properties of the game profile.

+
§frontend: FrontendType

The frontend type.

+

Trait Implementations§

source§

impl Debug for TextProcessContext

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for TextProcessContext

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TextProcessContext

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/struct.TextProcessResult.html b/doc/ayaka_bindings_types/struct.TextProcessResult.html index 78ba03a6..56a72f89 100644 --- a/doc/ayaka_bindings_types/struct.TextProcessResult.html +++ b/doc/ayaka_bindings_types/struct.TextProcessResult.html @@ -1,19 +1,20 @@ -TextProcessResult in ayaka_bindings_types - Rust
pub struct TextProcessResult {
+TextProcessResult in ayaka_bindings_types - Rust
+    
pub struct TextProcessResult {
     pub text: ActionText,
 }
Expand description

The result of commands in text plugins. See examples at TextProcessContext.

-

Fields§

§text: ActionText

The lines to append.

-

Trait Implementations§

source§

impl Debug for TextProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for TextProcessResult

source§

fn default() -> TextProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for TextProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TextProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§text: ActionText

The lines to append.

+

Trait Implementations§

source§

impl Debug for TextProcessResult

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for TextProcessResult

source§

fn default() -> TextProcessResult

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for TextProcessResult

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TextProcessResult

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_bindings_types/type.VarMap.html b/doc/ayaka_bindings_types/type.VarMap.html index 09d31786..0c956383 100644 --- a/doc/ayaka_bindings_types/type.VarMap.html +++ b/doc/ayaka_bindings_types/type.VarMap.html @@ -1,2 +1,3 @@ -VarMap in ayaka_bindings_types - Rust

Type Alias ayaka_bindings_types::VarMap

source ·
pub type VarMap = HashMap<String, RawValue>;
Expand description

A map from variable name to [RawValue].

-

Aliased Type§

struct VarMap { /* private fields */ }
\ No newline at end of file +VarMap in ayaka_bindings_types - Rust +

Type Alias ayaka_bindings_types::VarMap

source ·
pub type VarMap = HashMap<String, RawValue>;
Expand description

A map from variable name to [RawValue].

+

Aliased Type§

struct VarMap { /* private fields */ }
\ No newline at end of file diff --git a/doc/ayaka_model/all.html b/doc/ayaka_model/all.html index 36a7640f..fc6f2555 100644 --- a/doc/ayaka_model/all.html +++ b/doc/ayaka_model/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_model/enum.OpenGameStatus.html b/doc/ayaka_model/enum.OpenGameStatus.html index 3105e1e3..d72e92d8 100644 --- a/doc/ayaka_model/enum.OpenGameStatus.html +++ b/doc/ayaka_model/enum.OpenGameStatus.html @@ -1,32 +1,33 @@ -OpenGameStatus in ayaka_model - Rust
pub enum OpenGameStatus {
+OpenGameStatus in ayaka_model - Rust
+    
pub enum OpenGameStatus {
     LoadSettings,
     LoadGlobalRecords,
     LoadRecords,
     Loaded,
 }
Expand description

The status when calling GameViewModel::open_game.

-

Variants§

§

LoadSettings

Loading the settings.

+

Variants§

§

LoadSettings

Loading the settings.

§

LoadGlobalRecords

Loading the global records.

§

LoadRecords

Loading the records.

§

Loaded

The game is loaded.

-

Trait Implementations§

source§

impl Clone for OpenGameStatus

source§

fn clone(&self) -> OpenGameStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenGameStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq<OpenGameStatus> for OpenGameStatus

source§

fn eq(&self, other: &OpenGameStatus) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for OpenGameStatus

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for OpenGameStatus

source§

impl StructuralEq for OpenGameStatus

source§

impl StructuralPartialEq for OpenGameStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere +

Trait Implementations§

source§

impl Clone for OpenGameStatus

source§

fn clone(&self) -> OpenGameStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenGameStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for OpenGameStatus

source§

fn eq(&self, other: &OpenGameStatus) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for OpenGameStatus

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for OpenGameStatus

source§

impl StructuralEq for OpenGameStatus

source§

impl StructuralPartialEq for OpenGameStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_model/index.html b/doc/ayaka_model/index.html index 065a8a31..742637a4 100644 --- a/doc/ayaka_model/index.html +++ b/doc/ayaka_model/index.html @@ -1,7 +1,8 @@ -ayaka_model - Rust

Crate ayaka_model

source ·
Expand description

The high level wrapper model of Ayaka.

+ayaka_model - Rust +

Crate ayaka_model

source ·
Expand description

The high level wrapper model of Ayaka.

This crate provides a view model for a full-functionality frontend, and a abstract trait of settings manager.

It re-exports the types of [ayaka_runtime].

-

Re-exports

  • pub use ayaka_runtime::*;

Structs

Enums

Traits

\ No newline at end of file +

Re-exports

  • pub use ayaka_runtime::*;

Structs

Enums

Traits

\ No newline at end of file diff --git a/doc/ayaka_model/struct.ActionRecord.html b/doc/ayaka_model/struct.ActionRecord.html index e8986322..a788abad 100644 --- a/doc/ayaka_model/struct.ActionRecord.html +++ b/doc/ayaka_model/struct.ActionRecord.html @@ -1,25 +1,26 @@ -ActionRecord in ayaka_model - Rust
pub struct ActionRecord {
+ActionRecord in ayaka_model - Rust
+    
pub struct ActionRecord {
     pub history: Vec<RawContext>,
 }
Expand description

The specific record.

-

Fields§

§history: Vec<RawContext>

The history actions.

-

Implementations§

source§

impl ActionRecord

source

pub fn last_ctx(&self) -> Option<&RawContext>

Get the [RawContext] object from the last [Action] in the history.

+

Fields§

§history: Vec<RawContext>

The history actions.

+

Implementations§

source§

impl ActionRecord

source

pub fn last_ctx(&self) -> Option<&RawContext>

Get the [RawContext] object from the last [Action] in the history.

source

pub fn last_ctx_with_game(&self, game: &Game) -> RawContext

Get the [RawContext] object from the last [Action] in the history, and if the history is empty, create a new [RawContext] from the game.

-

Trait Implementations§

source§

impl Clone for ActionRecord

source§

fn clone(&self) -> ActionRecord

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionRecord

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionRecord

source§

fn default() -> ActionRecord

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionRecord

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionRecord

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ActionRecord

source§

fn clone(&self) -> ActionRecord

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ActionRecord

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ActionRecord

source§

fn default() -> ActionRecord

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ActionRecord

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ActionRecord

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_model/struct.GameViewModel.html b/doc/ayaka_model/struct.GameViewModel.html index 03f76e29..21472468 100644 --- a/doc/ayaka_model/struct.GameViewModel.html +++ b/doc/ayaka_model/struct.GameViewModel.html @@ -1,6 +1,7 @@ -GameViewModel in ayaka_model - Rust
pub struct GameViewModel<S: SettingsManager, M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

A view model of Ayaka. +GameViewModel in ayaka_model - Rust

+
pub struct GameViewModel<S: SettingsManager, M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

A view model of Ayaka. It manages all settings and provides high-level APIs.

-

Implementations§

source§

impl<S: SettingsManager, M: RawModule + Send + Sync + 'static> GameViewModel<S, M>

source

pub fn new(settings_manager: S) -> Self

Create a GameViewModel with a settings manager.

+

Implementations§

source§

impl<S: SettingsManager, M: RawModule + Send + Sync + 'static> GameViewModel<S, M>

source

pub fn new(settings_manager: S) -> Self

Create a GameViewModel with a settings manager.

source

pub fn open_game<'a>( &'a mut self, context: Context<M> @@ -35,20 +36,20 @@

source

pub fn current_history( &self ) -> impl DoubleEndedIterator<Item = (Action, Option<Action>)> + '_

Get the current history by language and secondary language.

-

Auto Trait Implementations§

§

impl<S, M> !RefUnwindSafe for GameViewModel<S, M>

§

impl<S, M> Send for GameViewModel<S, M>where - S: Send,

§

impl<S, M> Sync for GameViewModel<S, M>where - S: Sync,

§

impl<S, M> Unpin for GameViewModel<S, M>where - S: Unpin,

§

impl<S, M> !UnwindSafe for GameViewModel<S, M>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<S, M> !RefUnwindSafe for GameViewModel<S, M>

§

impl<S, M> Send for GameViewModel<S, M>
where + S: Send,

§

impl<S, M> Sync for GameViewModel<S, M>
where + S: Sync,

§

impl<S, M> Unpin for GameViewModel<S, M>
where + S: Unpin,

§

impl<S, M> !UnwindSafe for GameViewModel<S, M>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_model/struct.GlobalRecord.html b/doc/ayaka_model/struct.GlobalRecord.html index 59cfee96..9ae673f0 100644 --- a/doc/ayaka_model/struct.GlobalRecord.html +++ b/doc/ayaka_model/struct.GlobalRecord.html @@ -1,26 +1,27 @@ -GlobalRecord in ayaka_model - Rust
pub struct GlobalRecord {
+GlobalRecord in ayaka_model - Rust
+    
pub struct GlobalRecord {
     pub record: HashMap<String, usize>,
 }
Expand description

The global record.

-

Fields§

§record: HashMap<String, usize>

The key is the tag of paragraphs, +

Fields§

§record: HashMap<String, usize>

The key is the tag of paragraphs, the value is the maximum text index.

-

Implementations§

source§

impl GlobalRecord

source

pub fn visited(&self, ctx: &RawContext) -> bool

Determine if an [RawContext] has been visited, +

Implementations§

source§

impl GlobalRecord

source

pub fn visited(&self, ctx: &RawContext) -> bool

Determine if an [RawContext] has been visited, by the paragraph tag and action index.

source

pub fn update(&mut self, ctx: &RawContext)

Update the global record with the latest [RawContext].

-

Trait Implementations§

source§

impl Clone for GlobalRecord

source§

fn clone(&self) -> GlobalRecord

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for GlobalRecord

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GlobalRecord

source§

fn default() -> GlobalRecord

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalRecord

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GlobalRecord

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for GlobalRecord

source§

fn clone(&self) -> GlobalRecord

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for GlobalRecord

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GlobalRecord

source§

fn default() -> GlobalRecord

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalRecord

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GlobalRecord

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_model/struct.Settings.html b/doc/ayaka_model/struct.Settings.html index 066776df..765a4236 100644 --- a/doc/ayaka_model/struct.Settings.html +++ b/doc/ayaka_model/struct.Settings.html @@ -1,30 +1,31 @@ -Settings in ayaka_model - Rust

Struct ayaka_model::Settings

source ·
pub struct Settings {
+Settings in ayaka_model - Rust
+    

Struct ayaka_model::Settings

source ·
pub struct Settings {
     pub lang: Locale,
     pub sub_lang: Option<Locale>,
     pub bgm_volume: u8,
     pub voice_volume: u8,
     pub video_volume: u8,
 }
Expand description

The settings of the game.

-

Fields§

§lang: Locale

The display language.

-
§sub_lang: Option<Locale>

The secondary display language.

-
§bgm_volume: u8

Volume of background music.

-
§voice_volume: u8

Volume of voices.

-
§video_volume: u8

Volume of videos.

-

Trait Implementations§

source§

impl Clone for Settings

source§

fn clone(&self) -> Settings

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Settings

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Settings

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Settings

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Settings

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§lang: Locale

The display language.

+
§sub_lang: Option<Locale>

The secondary display language.

+
§bgm_volume: u8

Volume of background music.

+
§voice_volume: u8

Volume of voices.

+
§video_volume: u8

Volume of videos.

+

Trait Implementations§

source§

impl Clone for Settings

source§

fn clone(&self) -> Settings

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Settings

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Settings

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Settings

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Settings

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_model/trait.SettingsManager.html b/doc/ayaka_model/trait.SettingsManager.html index 7fe1b872..b2dfb12c 100644 --- a/doc/ayaka_model/trait.SettingsManager.html +++ b/doc/ayaka_model/trait.SettingsManager.html @@ -1,10 +1,11 @@ -SettingsManager in ayaka_model - Rust
pub trait SettingsManager {
+SettingsManager in ayaka_model - Rust
+    
pub trait SettingsManager {
     // Required methods
-    fn load_file<T: DeserializeOwned>(
+    fn load_file<T: DeserializeOwned>(
         &self,
         path: impl AsRef<Path>
     ) -> Result<T>;
-    fn save_file<T: Serialize>(
+    fn save_file<T: Serialize>(
         &self,
         path: impl AsRef<Path>,
         data: &T,
@@ -28,8 +29,8 @@
 }
Expand description

A settings manager trait.

This type should handle the file loading and saving, and manage the paths of the files.

-

Required Methods§

source

fn load_file<T: DeserializeOwned>(&self, path: impl AsRef<Path>) -> Result<T>

Load a file from specified path.

-
source

fn save_file<T: Serialize>( +

Required Methods§

source

fn load_file<T: DeserializeOwned>(&self, path: impl AsRef<Path>) -> Result<T>

Load a file from specified path.

+
source

fn save_file<T: Serialize>( &self, path: impl AsRef<Path>, data: &T, @@ -42,10 +43,10 @@ game: &str ) -> Result<impl Iterator<Item = Result<PathBuf>>>

Get an iterator of record paths.

source

fn record_path(&self, game: &str, i: usize) -> Result<PathBuf>

Get the record path from index.

-

Provided Methods§

Provided Methods§

source

fn load_settings(&self) -> Result<Settings>

Load Settings.

source

fn save_settings(&self, data: &Settings) -> Result<()>

Save Settings.

source

fn load_global_record(&self, game: &str) -> Result<GlobalRecord>

source

fn save_global_record(&self, game: &str, data: &GlobalRecord) -> Result<()>

source

fn load_records(&self, game: &str) -> Result<Vec<ActionRecord>>

Load all ActionRecord.

source

fn save_records(&self, game: &str, contexts: &[ActionRecord]) -> Result<()>

Save all ActionRecord.

-

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/doc/ayaka_plugin/all.html b/doc/ayaka_plugin/all.html index 96af3a2f..b09f2538 100644 --- a/doc/ayaka_plugin/all.html +++ b/doc/ayaka_plugin/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_plugin/constant.ABI_ALLOC_NAME.html b/doc/ayaka_plugin/constant.ABI_ALLOC_NAME.html index a9b994f1..100b4919 100644 --- a/doc/ayaka_plugin/constant.ABI_ALLOC_NAME.html +++ b/doc/ayaka_plugin/constant.ABI_ALLOC_NAME.html @@ -1,2 +1,3 @@ -ABI_ALLOC_NAME in ayaka_plugin - Rust
pub const ABI_ALLOC_NAME: &str = "__abi_alloc";
Expand description

The exported method __abi_alloc.

+ABI_ALLOC_NAME in ayaka_plugin - Rust +
pub const ABI_ALLOC_NAME: &str = "__abi_alloc";
Expand description

The exported method __abi_alloc.

\ No newline at end of file diff --git a/doc/ayaka_plugin/constant.ABI_FREE_NAME.html b/doc/ayaka_plugin/constant.ABI_FREE_NAME.html index fdc3b36b..83fee807 100644 --- a/doc/ayaka_plugin/constant.ABI_FREE_NAME.html +++ b/doc/ayaka_plugin/constant.ABI_FREE_NAME.html @@ -1,2 +1,3 @@ -ABI_FREE_NAME in ayaka_plugin - Rust
pub const ABI_FREE_NAME: &str = "__abi_free";
Expand description

The exported method __abi_free.

+ABI_FREE_NAME in ayaka_plugin - Rust +
pub const ABI_FREE_NAME: &str = "__abi_free";
Expand description

The exported method __abi_free.

\ No newline at end of file diff --git a/doc/ayaka_plugin/constant.MEMORY_NAME.html b/doc/ayaka_plugin/constant.MEMORY_NAME.html index d3243101..7ea5d68b 100644 --- a/doc/ayaka_plugin/constant.MEMORY_NAME.html +++ b/doc/ayaka_plugin/constant.MEMORY_NAME.html @@ -1,2 +1,3 @@ -MEMORY_NAME in ayaka_plugin - Rust

Constant ayaka_plugin::MEMORY_NAME

source ·
pub const MEMORY_NAME: &str = "memory";
Expand description

The default exported memory name.

+MEMORY_NAME in ayaka_plugin - Rust +

Constant ayaka_plugin::MEMORY_NAME

source ·
pub const MEMORY_NAME: &str = "memory";
Expand description

The default exported memory name.

\ No newline at end of file diff --git a/doc/ayaka_plugin/index.html b/doc/ayaka_plugin/index.html index e8470ba2..853d154c 100644 --- a/doc/ayaka_plugin/index.html +++ b/doc/ayaka_plugin/index.html @@ -1,5 +1,6 @@ -ayaka_plugin - Rust

Crate ayaka_plugin

source ·
Expand description

Base crate for plugin runtimes.

+ayaka_plugin - Rust +

Crate ayaka_plugin

source ·
Expand description

Base crate for plugin runtimes.

This crate provides abstract types and traits for different plugin backends.

-

Re-exports

Structs

Constants

Traits

\ No newline at end of file +

Re-exports

Structs

Constants

Traits

\ No newline at end of file diff --git a/doc/ayaka_plugin/struct.PluginModule.html b/doc/ayaka_plugin/struct.PluginModule.html index 6d11888c..c0d50d39 100644 --- a/doc/ayaka_plugin/struct.PluginModule.html +++ b/doc/ayaka_plugin/struct.PluginModule.html @@ -1,25 +1,26 @@ -PluginModule in ayaka_plugin - Rust
pub struct PluginModule<M: RawModule> { /* private fields */ }
Expand description

High-level wrapper for plugin module.

-

Implementations§

source§

impl<M: RawModule> PluginModule<M>

source

pub fn new(module: M) -> Self

Creates a wrapper on raw module.

-
source

pub fn call<P: Serialize, R: DeserializeOwned>( +PluginModule in ayaka_plugin - Rust +
pub struct PluginModule<M: RawModule> { /* private fields */ }
Expand description

High-level wrapper for plugin module.

+

Implementations§

source§

impl<M: RawModule> PluginModule<M>

source

pub fn new(module: M) -> Self

Creates a wrapper on raw module.

+
source

pub fn call<P: Serialize, R: DeserializeOwned>( &self, name: &str, args: P ) -> Result<R>

Call a method by name.

The args and returns are passed by MessagePack with [rmp_serde].

source

pub fn inner(&self) -> &M

Get inner raw module.

-

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for PluginModule<M>where - M: RefUnwindSafe,

§

impl<M> Send for PluginModule<M>where - M: Send,

§

impl<M> Sync for PluginModule<M>where - M: Sync,

§

impl<M> Unpin for PluginModule<M>where - M: Unpin,

§

impl<M> UnwindSafe for PluginModule<M>where - M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for PluginModule<M>
where + M: RefUnwindSafe,

§

impl<M> Send for PluginModule<M>
where + M: Send,

§

impl<M> Sync for PluginModule<M>
where + M: Sync,

§

impl<M> Unpin for PluginModule<M>
where + M: Unpin,

§

impl<M> UnwindSafe for PluginModule<M>
where + M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +

source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin/trait.Linker.html b/doc/ayaka_plugin/trait.Linker.html index 071a95d0..11cd2d44 100644 --- a/doc/ayaka_plugin/trait.Linker.html +++ b/doc/ayaka_plugin/trait.Linker.html @@ -1,4 +1,5 @@ -Linker in ayaka_plugin - Rust

Trait ayaka_plugin::Linker

source ·
pub trait Linker<M: RawModule>: Sized {
+Linker in ayaka_plugin - Rust
+    

Trait ayaka_plugin::Linker

source ·
pub trait Linker<M: RawModule>: Sized {
     type Config;
 
     // Required methods
@@ -15,17 +16,17 @@
     ) -> M::Func;
 
     // Provided methods
-    fn wrap<P: DeserializeOwned + Tuple, R: Serialize>(
+    fn wrap<P: DeserializeOwned + Tuple, R: Serialize>(
         &self,
         f: impl Fn(P) -> Result<R> + Send + Sync + 'static
     ) -> M::Func { ... }
-    fn wrap_with<P: DeserializeOwned + Tuple, R: Serialize>(
+    fn wrap_with<P: DeserializeOwned + Tuple, R: Serialize>(
         &self,
         f: impl Fn(M::LinkerHandle<'_>, P) -> Result<R> + Send + Sync + 'static
     ) -> M::Func { ... }
 }
Expand description

Represents the linker of plugin modules.

-

Required Associated Types§

source

type Config

Config type to create the linker.

-

Required Methods§

source

fn new(config: Self::Config) -> Result<Self>

Create the linker.

+

Required Associated Types§

source

type Config

Config type to create the linker.

+

Required Methods§

source

fn new(config: Self::Config) -> Result<Self>

Create the linker.

source

fn create(&self, binary: &[u8]) -> Result<M>

Create a raw module from binary.

source

fn import( &mut self, @@ -36,12 +37,12 @@ &self, f: impl Fn(M::LinkerHandle<'_>, i32, i32) -> Result<Vec<u8>> + Send + Sync + 'static ) -> M::Func

Wrap a function with args in bytes.

-

Provided Methods§

Provided Methods§

source

fn wrap<P: DeserializeOwned + Tuple, R: Serialize>( &self, f: impl Fn(P) -> Result<R> + Send + Sync + 'static ) -> M::Func

Wrap a function with args.

-
source

fn wrap_with<P: DeserializeOwned + Tuple, R: Serialize>( +

source

fn wrap_with<P: DeserializeOwned + Tuple, R: Serialize>( &self, f: impl Fn(M::LinkerHandle<'_>, P) -> Result<R> + Send + Sync + 'static ) -> M::Func

Wrap a function with args and linker handle.

-

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/doc/ayaka_plugin/trait.LinkerHandle.html b/doc/ayaka_plugin/trait.LinkerHandle.html index 679f754b..ec618cf3 100644 --- a/doc/ayaka_plugin/trait.LinkerHandle.html +++ b/doc/ayaka_plugin/trait.LinkerHandle.html @@ -1,4 +1,5 @@ -LinkerHandle in ayaka_plugin - Rust
pub trait LinkerHandle<'a, M: RawModule> {
+LinkerHandle in ayaka_plugin - Rust
+    
pub trait LinkerHandle<'a, M: RawModule> {
     // Required methods
     fn call<T>(
         &mut self,
@@ -17,7 +18,7 @@
 }
Expand description

Represents a handle of linker.

Usually it is not easy to call function inside host functions. A handle provides methods to do so.

-

Required Methods§

source

fn call<T>( +

Required Methods§

source

fn call<T>( &mut self, m: &M, name: &str, @@ -31,4 +32,4 @@ len: i32, f: impl FnOnce(&mut [u8]) -> T ) -> T

Get memory mutable slice.

-

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/doc/ayaka_plugin/trait.RawModule.html b/doc/ayaka_plugin/trait.RawModule.html index ce95b9f6..a392e59a 100644 --- a/doc/ayaka_plugin/trait.RawModule.html +++ b/doc/ayaka_plugin/trait.RawModule.html @@ -1,4 +1,5 @@ -RawModule in ayaka_plugin - Rust
pub trait RawModule: Sized {
+RawModule in ayaka_plugin - Rust
+    
pub trait RawModule: Sized {
     type Linker: Linker<Self>;
     type LinkerHandle<'a>: LinkerHandle<'a, Self>;
     type Func;
@@ -11,14 +12,14 @@
         f: impl FnOnce(&[u8]) -> Result<T>
     ) -> Result<T>;
 }
Expand description

Represents a raw plugin module.

-

Required Associated Types§

source

type Linker: Linker<Self>

The linker type that can create raw module.

+

Required Associated Types§

source

type Linker: Linker<Self>

The linker type that can create raw module.

source

type LinkerHandle<'a>: LinkerHandle<'a, Self>

The linker handle type.

source

type Func

The import function type.

-

Required Methods§

source

fn call<T>( +

Required Methods§

source

fn call<T>( &self, name: &str, args: &[u8], f: impl FnOnce(&[u8]) -> Result<T> ) -> Result<T>

Calls a method by name.

The args and returns are bytes.

-

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/all.html b/doc/ayaka_plugin_wasmer/all.html index 53b373e8..15ba93bd 100644 --- a/doc/ayaka_plugin_wasmer/all.html +++ b/doc/ayaka_plugin_wasmer/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/index.html b/doc/ayaka_plugin_wasmer/index.html index 29ad26b6..891863ed 100644 --- a/doc/ayaka_plugin_wasmer/index.html +++ b/doc/ayaka_plugin_wasmer/index.html @@ -1,3 +1,4 @@ -ayaka_plugin_wasmer - Rust
Expand description

Wasmer-based plugin backend.

-

Structs

\ No newline at end of file +ayaka_plugin_wasmer - Rust +
Expand description

Wasmer-based plugin backend.

+

Structs

\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/struct.WasmerFunction.html b/doc/ayaka_plugin_wasmer/struct.WasmerFunction.html index 896bfbab..968e52ac 100644 --- a/doc/ayaka_plugin_wasmer/struct.WasmerFunction.html +++ b/doc/ayaka_plugin_wasmer/struct.WasmerFunction.html @@ -1,27 +1,28 @@ -WasmerFunction in ayaka_plugin_wasmer - Rust
pub struct WasmerFunction(/* private fields */);
Expand description

Represents a wrapped wasmer function.

-

Trait Implementations§

source§

impl Clone for WasmerFunction

source§

fn clone(&self) -> WasmerFunction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( +WasmerFunction in ayaka_plugin_wasmer - Rust +
pub struct WasmerFunction(/* private fields */);
Expand description

Represents a wrapped wasmer function.

+

Trait Implementations§

source§

impl Clone for WasmerFunction

source§

fn clone(&self) -> WasmerFunction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata -) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere +) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, - F: ?Sized,

§

fn deserialize( + F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for Twhere - T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T, Global>) -> Box<dyn Any, Global>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for T
where + T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/struct.WasmerLinker.html b/doc/ayaka_plugin_wasmer/struct.WasmerLinker.html index 82d73a90..d81db6f4 100644 --- a/doc/ayaka_plugin_wasmer/struct.WasmerLinker.html +++ b/doc/ayaka_plugin_wasmer/struct.WasmerLinker.html @@ -1,43 +1,44 @@ -WasmerLinker in ayaka_plugin_wasmer - Rust
pub struct WasmerLinker { /* private fields */ }
Expand description

A Wasmer [Store] with some imports.

-

Trait Implementations§

source§

impl Linker<WasmerModule> for WasmerLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmerModule>

Create a raw module from binary.
source§

fn import( +WasmerLinker in ayaka_plugin_wasmer - Rust +
pub struct WasmerLinker { /* private fields */ }
Expand description

A Wasmer [Store] with some imports.

+

Trait Implementations§

source§

impl Linker<WasmerModule> for WasmerLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmerModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, WasmerFunction> -) -> Result<()>

Import functions by namespace and names.
source§

fn wrap_raw( +) -> Result<()>

Import functions by namespace and names.
source§

fn wrap_raw( &self, f: impl Fn(WasmerLinkerHandle<'_>, i32, i32) -> Result<Vec<u8>> + Send + Sync + 'static -) -> WasmerFunction

Wrap a function with args in bytes.
§

fn wrap<P, R>( +) -> WasmerFunction

Wrap a function with args in bytes.
source§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( &self, - f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( + f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata -) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere +) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, - F: ?Sized,

§

fn deserialize( + F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for Twhere - T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T, Global>) -> Box<dyn Any, Global>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for T
where + T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/struct.WasmerLinkerHandle.html b/doc/ayaka_plugin_wasmer/struct.WasmerLinkerHandle.html index 619fefe2..b2bdc306 100644 --- a/doc/ayaka_plugin_wasmer/struct.WasmerLinkerHandle.html +++ b/doc/ayaka_plugin_wasmer/struct.WasmerLinkerHandle.html @@ -1,36 +1,37 @@ -WasmerLinkerHandle in ayaka_plugin_wasmer - Rust
pub struct WasmerLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmer [StoreMut].

-

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>

source§

fn call<T>( +WasmerLinkerHandle in ayaka_plugin_wasmer - Rust +
pub struct WasmerLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmer [StoreMut].

+

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmerModule, name: &str, data: &[u8], f: impl FnOnce(&[u8]) -> Result<T> -) -> Result<T>

Call methods of a module.
source§

fn slice<T>(&self, start: i32, len: i32, f: impl FnOnce(&[u8]) -> T) -> T

Get memory slice.
source§

fn slice_mut<T>( +) -> Result<T>

Call methods of a module.
source§

fn slice<T>(&self, start: i32, len: i32, f: impl FnOnce(&[u8]) -> T) -> T

Get memory slice.
source§

fn slice_mut<T>( &mut self, start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for WasmerLinkerHandle<'a>

§

impl<'a> !Send for WasmerLinkerHandle<'a>

§

impl<'a> !Sync for WasmerLinkerHandle<'a>

§

impl<'a> Unpin for WasmerLinkerHandle<'a>

§

impl<'a> !UnwindSafe for WasmerLinkerHandle<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( +) -> T

Get memory mutable slice.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for WasmerLinkerHandle<'a>

§

impl<'a> !Send for WasmerLinkerHandle<'a>

§

impl<'a> !Sync for WasmerLinkerHandle<'a>

§

impl<'a> Unpin for WasmerLinkerHandle<'a>

§

impl<'a> !UnwindSafe for WasmerLinkerHandle<'a>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata -) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere +) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, - F: ?Sized,

§

fn deserialize( + F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmer/struct.WasmerModule.html b/doc/ayaka_plugin_wasmer/struct.WasmerModule.html index 0e9c386a..8b52b3af 100644 --- a/doc/ayaka_plugin_wasmer/struct.WasmerModule.html +++ b/doc/ayaka_plugin_wasmer/struct.WasmerModule.html @@ -1,59 +1,60 @@ -WasmerModule in ayaka_plugin_wasmer - Rust
pub struct WasmerModule { /* private fields */ }
Expand description

A Wasmer [Instance].

-

Trait Implementations§

source§

impl Linker<WasmerModule> for WasmerLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmerModule>

Create a raw module from binary.
source§

fn import( +WasmerModule in ayaka_plugin_wasmer - Rust +
pub struct WasmerModule { /* private fields */ }
Expand description

A Wasmer [Instance].

+

Trait Implementations§

source§

impl Linker<WasmerModule> for WasmerLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmerModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, WasmerFunction> -) -> Result<()>

Import functions by namespace and names.
source§

fn wrap_raw( +) -> Result<()>

Import functions by namespace and names.
source§

fn wrap_raw( &self, f: impl Fn(WasmerLinkerHandle<'_>, i32, i32) -> Result<Vec<u8>> + Send + Sync + 'static -) -> WasmerFunction

Wrap a function with args in bytes.
§

fn wrap<P, R>( +) -> WasmerFunction

Wrap a function with args in bytes.
source§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( &self, - f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>

source§

fn call<T>( + f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmerModule, name: &str, data: &[u8], f: impl FnOnce(&[u8]) -> Result<T> -) -> Result<T>

Call methods of a module.
source§

fn slice<T>(&self, start: i32, len: i32, f: impl FnOnce(&[u8]) -> T) -> T

Get memory slice.
source§

fn slice_mut<T>( +) -> Result<T>

Call methods of a module.
source§

fn slice<T>(&self, start: i32, len: i32, f: impl FnOnce(&[u8]) -> T) -> T

Get memory slice.
source§

fn slice_mut<T>( &mut self, start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.
source§

impl RawModule for WasmerModule

§

type Linker = WasmerLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmerLinkerHandle<'a>

The linker handle type.
§

type Func = WasmerFunction

The import function type.
source§

fn call<T>( +) -> T

Get memory mutable slice.
source§

impl RawModule for WasmerModule

§

type Linker = WasmerLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmerLinkerHandle<'a>

The linker handle type.
§

type Func = WasmerFunction

The import function type.
source§

fn call<T>( &self, name: &str, data: &[u8], f: impl FnOnce(&[u8]) -> Result<T> -) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( +) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata -) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere +) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, - F: ?Sized,

§

fn deserialize( + F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for Twhere - T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T, Global>) -> Box<dyn Any, Global>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcastable for T
where + T: Any + Send + Sync + 'static,

§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmi/all.html b/doc/ayaka_plugin_wasmi/all.html index cfc559a0..6bc757ea 100644 --- a/doc/ayaka_plugin_wasmi/all.html +++ b/doc/ayaka_plugin_wasmi/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmi/index.html b/doc/ayaka_plugin_wasmi/index.html index fe911eda..65901fda 100644 --- a/doc/ayaka_plugin_wasmi/index.html +++ b/doc/ayaka_plugin_wasmi/index.html @@ -1,3 +1,4 @@ -ayaka_plugin_wasmi - Rust
Expand description

Wasmi-based plugin backend.

-

Structs

\ No newline at end of file +ayaka_plugin_wasmi - Rust +
Expand description

Wasmi-based plugin backend.

+

Structs

\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmi/struct.WasmiLinker.html b/doc/ayaka_plugin_wasmi/struct.WasmiLinker.html index e9ba3494..182ff207 100644 --- a/doc/ayaka_plugin_wasmi/struct.WasmiLinker.html +++ b/doc/ayaka_plugin_wasmi/struct.WasmiLinker.html @@ -1,5 +1,6 @@ -WasmiLinker in ayaka_plugin_wasmi - Rust
pub struct WasmiLinker { /* private fields */ }
Expand description

A Wasmi [Store] with [Linker].

-

Trait Implementations§

source§

impl Linker<WasmiModule> for WasmiLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmiModule>

Create a raw module from binary.
source§

fn import( +WasmiLinker in ayaka_plugin_wasmi - Rust +
pub struct WasmiLinker { /* private fields */ }
Expand description

A Wasmi [Store] with [Linker].

+

Trait Implementations§

source§

impl Linker<WasmiModule> for WasmiLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmiModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, Func> @@ -9,28 +10,28 @@ ) -> Func

Wrap a function with args in bytes.
§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( &self, f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere - T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Send + Sync, Global>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmi/struct.WasmiLinkerHandle.html b/doc/ayaka_plugin_wasmi/struct.WasmiLinkerHandle.html index de155b3a..514a23d5 100644 --- a/doc/ayaka_plugin_wasmi/struct.WasmiLinkerHandle.html +++ b/doc/ayaka_plugin_wasmi/struct.WasmiLinkerHandle.html @@ -1,5 +1,6 @@ -WasmiLinkerHandle in ayaka_plugin_wasmi - Rust
pub struct WasmiLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmi [StoreContextMut].

-

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a>

source§

fn call<T>( +WasmiLinkerHandle in ayaka_plugin_wasmi - Rust +
pub struct WasmiLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmi [StoreContextMut].

+

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmiModule, name: &str, @@ -10,21 +11,21 @@ start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for WasmiLinkerHandle<'a>

§

impl<'a> Send for WasmiLinkerHandle<'a>

§

impl<'a> Sync for WasmiLinkerHandle<'a>

§

impl<'a> Unpin for WasmiLinkerHandle<'a>

§

impl<'a> !UnwindSafe for WasmiLinkerHandle<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere - T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +) -> T

Get memory mutable slice.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for WasmiLinkerHandle<'a>

§

impl<'a> Send for WasmiLinkerHandle<'a>

§

impl<'a> Sync for WasmiLinkerHandle<'a>

§

impl<'a> Unpin for WasmiLinkerHandle<'a>

§

impl<'a> !UnwindSafe for WasmiLinkerHandle<'a>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Send + Sync, Global>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmi/struct.WasmiModule.html b/doc/ayaka_plugin_wasmi/struct.WasmiModule.html index 235c8416..1cbfd317 100644 --- a/doc/ayaka_plugin_wasmi/struct.WasmiModule.html +++ b/doc/ayaka_plugin_wasmi/struct.WasmiModule.html @@ -1,5 +1,6 @@ -WasmiModule in ayaka_plugin_wasmi - Rust
pub struct WasmiModule { /* private fields */ }
Expand description

A Wasmi [Instance].

-

Trait Implementations§

source§

impl Linker<WasmiModule> for WasmiLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmiModule>

Create a raw module from binary.
source§

fn import( +WasmiModule in ayaka_plugin_wasmi - Rust +
pub struct WasmiModule { /* private fields */ }
Expand description

A Wasmi [Instance].

+

Trait Implementations§

source§

impl Linker<WasmiModule> for WasmiLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmiModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, Func> @@ -9,14 +10,14 @@ ) -> Func

Wrap a function with args in bytes.
§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
§

fn wrap_with<P, R>( &self, f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a>

source§

fn call<T>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmiModule, name: &str, @@ -27,26 +28,26 @@ start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.
source§

impl RawModule for WasmiModule

§

type Linker = WasmiLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmiLinkerHandle<'a>

The linker handle type.
§

type Func = Func

The import function type.
source§

fn call<T>( +) -> T

Get memory mutable slice.
source§

impl RawModule for WasmiModule

§

type Linker = WasmiLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmiLinkerHandle<'a>

The linker handle type.
§

type Func = Func

The import function type.
source§

fn call<T>( &self, name: &str, data: &[u8], f: impl FnOnce(&[u8]) -> Result<T> -) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere - T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Send + Sync, Global>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmtime/all.html b/doc/ayaka_plugin_wasmtime/all.html index 37582dc8..3c05634d 100644 --- a/doc/ayaka_plugin_wasmtime/all.html +++ b/doc/ayaka_plugin_wasmtime/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmtime/index.html b/doc/ayaka_plugin_wasmtime/index.html index 0b884a23..815cb742 100644 --- a/doc/ayaka_plugin_wasmtime/index.html +++ b/doc/ayaka_plugin_wasmtime/index.html @@ -1,3 +1,4 @@ -ayaka_plugin_wasmtime - Rust
Expand description

Wasmtime-based plugin backend.

-

Structs

\ No newline at end of file +ayaka_plugin_wasmtime - Rust +
Expand description

Wasmtime-based plugin backend.

+

Structs

\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinker.html b/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinker.html index cd84bf81..a35e20b2 100644 --- a/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinker.html +++ b/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinker.html @@ -1,5 +1,6 @@ -WasmtimeLinker in ayaka_plugin_wasmtime - Rust
pub struct WasmtimeLinker { /* private fields */ }
Expand description

A Wasmtime [Store] with Linker.

-

Trait Implementations§

source§

impl Linker<WasmtimeModule> for WasmtimeLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmtimeModule>

Create a raw module from binary.
source§

fn import( +WasmtimeLinker in ayaka_plugin_wasmtime - Rust +
pub struct WasmtimeLinker { /* private fields */ }
Expand description

A Wasmtime [Store] with Linker.

+

Trait Implementations§

source§

impl Linker<WasmtimeModule> for WasmtimeLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmtimeModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, Func> @@ -9,21 +10,21 @@ ) -> Func

Wrap a function with args in bytes.
source§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( &self, f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinkerHandle.html b/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinkerHandle.html index 8e1fe4ab..01693850 100644 --- a/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinkerHandle.html +++ b/doc/ayaka_plugin_wasmtime/struct.WasmtimeLinkerHandle.html @@ -1,5 +1,6 @@ -WasmtimeLinkerHandle in ayaka_plugin_wasmtime - Rust
pub struct WasmtimeLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmtime [StoreContextMut].

-

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a>

source§

fn call<T>( +WasmtimeLinkerHandle in ayaka_plugin_wasmtime - Rust +
pub struct WasmtimeLinkerHandle<'a> { /* private fields */ }
Expand description

A Wasmtime [StoreContextMut].

+

Trait Implementations§

source§

impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmtimeModule, name: &str, @@ -10,14 +11,14 @@ start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> T

Get memory mutable slice.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_plugin_wasmtime/struct.WasmtimeModule.html b/doc/ayaka_plugin_wasmtime/struct.WasmtimeModule.html index 676509a1..458fa049 100644 --- a/doc/ayaka_plugin_wasmtime/struct.WasmtimeModule.html +++ b/doc/ayaka_plugin_wasmtime/struct.WasmtimeModule.html @@ -1,5 +1,6 @@ -WasmtimeModule in ayaka_plugin_wasmtime - Rust
pub struct WasmtimeModule { /* private fields */ }
Expand description

A Wasmtime [Instance].

-

Trait Implementations§

source§

impl Linker<WasmtimeModule> for WasmtimeLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmtimeModule>

Create a raw module from binary.
source§

fn import( +WasmtimeModule in ayaka_plugin_wasmtime - Rust +
pub struct WasmtimeModule { /* private fields */ }
Expand description

A Wasmtime [Instance].

+

Trait Implementations§

source§

impl Linker<WasmtimeModule> for WasmtimeLinker

§

type Config = ()

Config type to create the linker.
source§

fn new(_: ()) -> Result<Self>

Create the linker.
source§

fn create(&self, binary: &[u8]) -> Result<WasmtimeModule>

Create a raw module from binary.
source§

fn import( &mut self, ns: impl Into<String>, funcs: HashMap<String, Func> @@ -9,14 +10,14 @@ ) -> Func

Wrap a function with args in bytes.
source§

fn wrap<P, R>( &self, f: impl Fn(P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args.
source§

fn wrap_with<P, R>( &self, f: impl Fn(<M as RawModule>::LinkerHandle<'_>, P) -> Result<R, Error> + Send + Sync + 'static -) -> <M as RawModule>::Funcwhere - P: DeserializeOwned + Tuple, - R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a>

source§

fn call<T>( +) -> <M as RawModule>::Func
where + P: DeserializeOwned + Tuple, + R: Serialize,

Wrap a function with args and linker handle.
source§

impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a>

source§

fn call<T>( &mut self, m: &WasmtimeModule, name: &str, @@ -27,19 +28,19 @@ start: i32, len: i32, f: impl FnOnce(&mut [u8]) -> T -) -> T

Get memory mutable slice.
source§

impl RawModule for WasmtimeModule

§

type Linker = WasmtimeLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmtimeLinkerHandle<'a>

The linker handle type.
§

type Func = Func

The import function type.
source§

fn call<T>( +) -> T

Get memory mutable slice.
source§

impl RawModule for WasmtimeModule

§

type Linker = WasmtimeLinker

The linker type that can create raw module.
§

type LinkerHandle<'a> = WasmtimeLinkerHandle<'a>

The linker handle type.
§

type Func = Func

The import function type.
source§

fn call<T>( &self, name: &str, data: &[u8], f: impl FnOnce(&[u8]) -> Result<T> -) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<T>

Calls a method by name. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_primitive/all.html b/doc/ayaka_primitive/all.html index da115150..025e7d3c 100644 --- a/doc/ayaka_primitive/all.html +++ b/doc/ayaka_primitive/all.html @@ -1 +1,2 @@ -List of all items in this crate

List of all items

Structs

Enums

\ No newline at end of file +List of all items in this crate +

List of all items

Structs

Enums

\ No newline at end of file diff --git a/doc/ayaka_primitive/enum.Line.html b/doc/ayaka_primitive/enum.Line.html index c768184d..d624ec17 100644 --- a/doc/ayaka_primitive/enum.Line.html +++ b/doc/ayaka_primitive/enum.Line.html @@ -1,4 +1,5 @@ -Line in ayaka_primitive - Rust
pub enum Line {
+Line in ayaka_primitive - Rust
+    
pub enum Line {
     Empty,
     Text(Text),
     Switch {
@@ -6,24 +7,24 @@
     },
     Custom(HashMap<String, RawValue>),
 }
Expand description

Represents a line in a prograph.

-

Variants§

§

Empty

An empty line, usually fallbacks to the base language one.

+

Variants§

§

Empty

An empty line, usually fallbacks to the base language one.

§

Text(Text)

A text line.

-
§

Switch

Fields

§switches: Vec<String>

The switch items.

+
§

Switch

Fields

§switches: Vec<String>

The switch items.

Some switches.

§

Custom(HashMap<String, RawValue>)

Custom line types.

-

Trait Implementations§

source§

impl Clone for Line

source§

fn clone(&self) -> Line

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Line

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Line

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<Line> for Line

source§

fn eq(&self, other: &Line) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for Line

source§

impl StructuralEq for Line

source§

impl StructuralPartialEq for Line

Auto Trait Implementations§

§

impl RefUnwindSafe for Line

§

impl Send for Line

§

impl Sync for Line

§

impl Unpin for Line

§

impl UnwindSafe for Line

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for Line

source§

fn clone(&self) -> Line

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Line

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Line

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Line

source§

fn eq(&self, other: &Line) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Eq for Line

source§

impl StructuralEq for Line

source§

impl StructuralPartialEq for Line

Auto Trait Implementations§

§

impl RefUnwindSafe for Line

§

impl Send for Line

§

impl Sync for Line

§

impl Unpin for Line

§

impl UnwindSafe for Line

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_primitive/enum.RawValue.html b/doc/ayaka_primitive/enum.RawValue.html index d37602e0..296ea3cf 100644 --- a/doc/ayaka_primitive/enum.RawValue.html +++ b/doc/ayaka_primitive/enum.RawValue.html @@ -1,19 +1,20 @@ -RawValue in ayaka_primitive - Rust
pub enum RawValue {
+RawValue in ayaka_primitive - Rust
+    
pub enum RawValue {
     Unit,
     Bool(bool),
     Num(i64),
     Str(String),
 }
Expand description

The basic and only type used in scripts.

-
assert_eq!(serde_yaml::from_str::<RawValue>("~").unwrap(), RawValue::Unit);
-assert_eq!(serde_yaml::from_str::<RawValue>("true").unwrap(), RawValue::Bool(true));
-assert_eq!(serde_yaml::from_str::<RawValue>("123").unwrap(), RawValue::Num(123));
-assert_eq!(serde_yaml::from_str::<RawValue>("\"hello\"").unwrap(), RawValue::Str("hello".to_string()));
-

Variants§

§

Unit

The unit type. It is empty, just like None or [()] in Rust.

+
assert_eq!(serde_yaml::from_str::<RawValue>("~").unwrap(), RawValue::Unit);
+assert_eq!(serde_yaml::from_str::<RawValue>("true").unwrap(), RawValue::Bool(true));
+assert_eq!(serde_yaml::from_str::<RawValue>("123").unwrap(), RawValue::Num(123));
+assert_eq!(serde_yaml::from_str::<RawValue>("\"hello\"").unwrap(), RawValue::Str("hello".to_string()));
+

Variants§

§

Unit

The unit type. It is empty, just like None or [()] in Rust.

§

Bool(bool)

The boolean type.

§

Num(i64)

The number type. It’s i64.

§

Str(String)

The string type.

-

Implementations§

source§

impl RawValue

source

pub fn get_type(&self) -> ValueType

Gets ValueType.

+

Implementations§

source§

impl RawValue

source

pub fn get_type(&self) -> ValueType

Gets ValueType.

source

pub fn get_bool(&self) -> bool

Gets a boolean from the value:

  • A RawValue::Unit converts to false.
  • @@ -25,7 +26,7 @@ assert!(!unit_value.get_bool()); let num_value = RawValue::Num(123); assert!(num_value.get_bool()); -let str_value = RawValue::Str("hello".to_string()); +let str_value = RawValue::Str("hello".to_string()); assert!(str_value.get_bool()); let empty_str_value = RawValue::Str(String::default()); assert!(!empty_str_value.get_bool());
@@ -40,7 +41,7 @@ assert_eq!(unit_value.get_num(), 0); let bool_value = RawValue::Bool(true); assert_eq!(bool_value.get_num(), 1); -let str_value = RawValue::Str("hello".to_string()); +let str_value = RawValue::Str("hello".to_string()); assert_eq!(str_value.get_num(), 5);
source

pub fn get_str(&self) -> Cow<'_, str>

Gets a string from the value:

    @@ -51,38 +52,38 @@

    Be careful to use get_str().into_owned(), if possible, use into_str() instead.

    let unit_value = RawValue::Unit;
    -assert_eq!(unit_value.get_str(), "");
    +assert_eq!(unit_value.get_str(), "");
     let bool_value = RawValue::Bool(true);
    -assert_eq!(bool_value.get_str(), "true");
    +assert_eq!(bool_value.get_str(), "true");
     let num_value = RawValue::Num(123);
    -assert_eq!(num_value.get_str(), "123");
    +assert_eq!(num_value.get_str(), "123");
source

pub fn into_str(self) -> String

Gets a string from the value:

-

Trait Implementations§

source§

impl Clone for RawValue

source§

fn clone(&self) -> RawValue

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RawValue

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RawValue

source§

fn default() -> RawValue

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RawValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for RawValue

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +

Trait Implementations§

source§

impl Clone for RawValue

source§

fn clone(&self) -> RawValue

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RawValue

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RawValue

source§

fn default() -> RawValue

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RawValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for RawValue

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for RawValue

source§

fn cmp(&self, other: &RawValue) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere - Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<RawValue> for RawValue

source§

fn eq(&self, other: &RawValue) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<RawValue> for RawValue

source§

fn partial_cmp(&self, other: &RawValue) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Serialize for RawValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for RawValue

source§

impl StructuralEq for RawValue

source§

impl StructuralPartialEq for RawValue

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for RawValue

source§

fn cmp(&self, other: &RawValue) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for RawValue

source§

fn eq(&self, other: &RawValue) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for RawValue

source§

fn partial_cmp(&self, other: &RawValue) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Serialize for RawValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for RawValue

source§

impl StructuralEq for RawValue

source§

impl StructuralPartialEq for RawValue

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_primitive/enum.SubText.html b/doc/ayaka_primitive/enum.SubText.html index 8798077e..f7453531 100644 --- a/doc/ayaka_primitive/enum.SubText.html +++ b/doc/ayaka_primitive/enum.SubText.html @@ -1,22 +1,23 @@ -SubText in ayaka_primitive - Rust
pub enum SubText {
+SubText in ayaka_primitive - Rust
+    
pub enum SubText {
     Char(char),
     Str(String),
     Cmd(String, Vec<SubText>),
 }
Expand description

A part of a line, either some texts or a command.

-

Variants§

§

Char(char)

Special character

+

Variants§

§

Char(char)

Special character

§

Str(String)

Raw texts.

§

Cmd(String, Vec<SubText>)

A TeX-like command in the text.

-

Trait Implementations§

source§

impl Clone for SubText

source§

fn clone(&self) -> SubText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq<SubText> for SubText

source§

fn eq(&self, other: &SubText) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for SubText

source§

impl StructuralEq for SubText

source§

impl StructuralPartialEq for SubText

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for SubText

source§

fn clone(&self) -> SubText

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubText

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for SubText

source§

fn eq(&self, other: &SubText) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Eq for SubText

source§

impl StructuralEq for SubText

source§

impl StructuralPartialEq for SubText

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_primitive/enum.ValueType.html b/doc/ayaka_primitive/enum.ValueType.html index d4a02d0e..b9834837 100644 --- a/doc/ayaka_primitive/enum.ValueType.html +++ b/doc/ayaka_primitive/enum.ValueType.html @@ -1,29 +1,30 @@ -ValueType in ayaka_primitive - Rust
pub enum ValueType {
+ValueType in ayaka_primitive - Rust
+    
pub enum ValueType {
     Unit,
     Bool,
     Num,
     Str,
 }
Expand description

Represents the type of RawValue.

-

Variants§

§

Unit

The unit type.

+

Variants§

§

Unit

The unit type.

§

Bool

The boolean type.

§

Num

The number type.

§

Str

The string type.

-

Trait Implementations§

source§

impl Clone for ValueType

source§

fn clone(&self) -> ValueType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValueType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for ValueType

source§

fn cmp(&self, other: &ValueType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere - Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<ValueType> for ValueType

source§

fn eq(&self, other: &ValueType) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<ValueType> for ValueType

source§

fn partial_cmp(&self, other: &ValueType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Copy for ValueType

source§

impl Eq for ValueType

source§

impl StructuralEq for ValueType

source§

impl StructuralPartialEq for ValueType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ValueType

source§

fn clone(&self) -> ValueType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValueType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Ord for ValueType

source§

fn cmp(&self, other: &ValueType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for ValueType

source§

fn eq(&self, other: &ValueType) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for ValueType

source§

fn partial_cmp(&self, other: &ValueType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for ValueType

source§

impl Eq for ValueType

source§

impl StructuralEq for ValueType

source§

impl StructuralPartialEq for ValueType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_primitive/index.html b/doc/ayaka_primitive/index.html index e956ec7b..327199c7 100644 --- a/doc/ayaka_primitive/index.html +++ b/doc/ayaka_primitive/index.html @@ -1,3 +1,4 @@ -ayaka_primitive - Rust

Crate ayaka_primitive

source ·
Expand description

Primitive types.

-

Structs

Enums

  • Represents a line in a prograph.
  • The basic and only type used in scripts.
  • A part of a line, either some texts or a command.
  • Represents the type of RawValue.
\ No newline at end of file +ayaka_primitive - Rust +

Crate ayaka_primitive

source ·
Expand description

Primitive types.

+

Structs

Enums

  • Represents a line in a prograph.
  • The basic and only type used in scripts.
  • A part of a line, either some texts or a command.
  • Represents the type of RawValue.
\ No newline at end of file diff --git a/doc/ayaka_primitive/struct.Text.html b/doc/ayaka_primitive/struct.Text.html index 70c63dde..5385e541 100644 --- a/doc/ayaka_primitive/struct.Text.html +++ b/doc/ayaka_primitive/struct.Text.html @@ -1,24 +1,25 @@ -Text in ayaka_primitive - Rust

Struct ayaka_primitive::Text

source ·
pub struct Text {
+Text in ayaka_primitive - Rust
+    

Struct ayaka_primitive::Text

source ·
pub struct Text {
     pub ch_tag: Option<String>,
     pub ch_alias: Option<String>,
     pub sub_texts: Vec<SubText>,
 }
Expand description

A collection of SubText.

-

Fields§

§ch_tag: Option<String>

The tag of current character.

-
§ch_alias: Option<String>

The alias of current character.

-
§sub_texts: Vec<SubText>

The texts.

-

Trait Implementations§

source§

impl Clone for Text

source§

fn clone(&self) -> Text

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Text

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Text

source§

fn default() -> Text

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Text

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<Text> for Text

source§

fn eq(&self, other: &Text) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<'a> TryFrom<&'a str> for Text

§

type Error = VerboseError<&'a str>

The type returned in the event of a conversion error.
source§

fn try_from(value: &'a str) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for Text

source§

impl StructuralEq for Text

source§

impl StructuralPartialEq for Text

Auto Trait Implementations§

§

impl RefUnwindSafe for Text

§

impl Send for Text

§

impl Sync for Text

§

impl Unpin for Text

§

impl UnwindSafe for Text

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§ch_tag: Option<String>

The tag of current character.

+
§ch_alias: Option<String>

The alias of current character.

+
§sub_texts: Vec<SubText>

The texts.

+

Trait Implementations§

source§

impl Clone for Text

source§

fn clone(&self) -> Text

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Text

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Text

source§

fn default() -> Text

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Text

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Text

source§

fn eq(&self, other: &Text) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl<'a> TryFrom<&'a str> for Text

§

type Error = VerboseError<&'a str>

The type returned in the event of a conversion error.
source§

fn try_from(value: &'a str) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for Text

source§

impl StructuralEq for Text

source§

impl StructuralPartialEq for Text

Auto Trait Implementations§

§

impl RefUnwindSafe for Text

§

impl Send for Text

§

impl Sync for Text

§

impl Unpin for Text

§

impl UnwindSafe for Text

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_runtime/all.html b/doc/ayaka_runtime/all.html index a362186d..9194eff1 100644 --- a/doc/ayaka_runtime/all.html +++ b/doc/ayaka_runtime/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_runtime/enum.OpenStatus.html b/doc/ayaka_runtime/enum.OpenStatus.html index d99b995b..dab662c4 100644 --- a/doc/ayaka_runtime/enum.OpenStatus.html +++ b/doc/ayaka_runtime/enum.OpenStatus.html @@ -1,4 +1,5 @@ -OpenStatus in ayaka_runtime - Rust
pub enum OpenStatus {
+OpenStatus in ayaka_runtime - Rust
+    
pub enum OpenStatus {
     LoadProfile,
     CreateRuntime,
     LoadPlugin(String, usize, usize),
@@ -6,31 +7,31 @@
     LoadResource,
     LoadParagraph,
 }
Expand description

The open status when creating Context.

-

Variants§

§

LoadProfile

Start loading config file.

+

Variants§

§

LoadProfile

Start loading config file.

§

CreateRuntime

Start creating plugin runtime.

§

LoadPlugin(String, usize, usize)

Loading the plugin.

§

GamePlugin

Executing game plugins.

§

LoadResource

Loading the resources.

§

LoadParagraph

Loading the paragraphs.

-

Trait Implementations§

source§

impl Clone for OpenStatus

source§

fn clone(&self) -> OpenStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<LoadStatus> for OpenStatus

source§

fn from(value: LoadStatus) -> Self

Converts to this type from the input type.
source§

impl PartialEq<OpenStatus> for OpenStatus

source§

fn eq(&self, other: &OpenStatus) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for OpenStatus

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for OpenStatus

source§

impl StructuralEq for OpenStatus

source§

impl StructuralPartialEq for OpenStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere +

Trait Implementations§

source§

impl Clone for OpenStatus

source§

fn clone(&self) -> OpenStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OpenStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<LoadStatus> for OpenStatus

source§

fn from(value: LoadStatus) -> Self

Converts to this type from the input type.
source§

impl PartialEq for OpenStatus

source§

fn eq(&self, other: &OpenStatus) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for OpenStatus

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for OpenStatus

source§

impl StructuralEq for OpenStatus

source§

impl StructuralPartialEq for OpenStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/fn.version.html b/doc/ayaka_runtime/fn.version.html index 75171d82..fcf5f47e 100644 --- a/doc/ayaka_runtime/fn.version.html +++ b/doc/ayaka_runtime/fn.version.html @@ -1,3 +1,4 @@ -version in ayaka_runtime - Rust

Function ayaka_runtime::version

source ·
pub fn version() -> &'static str
Expand description

Get the version of Ayaka runtime. +version in ayaka_runtime - Rust

+

Function ayaka_runtime::version

source ·
pub fn version() -> &'static str
Expand description

Get the version of Ayaka runtime. This version string is exacted from CARGO_PKG_VERSION.

\ No newline at end of file diff --git a/doc/ayaka_runtime/index.html b/doc/ayaka_runtime/index.html index ba4a4340..e87b3b19 100644 --- a/doc/ayaka_runtime/index.html +++ b/doc/ayaka_runtime/index.html @@ -1,10 +1,11 @@ -ayaka_runtime - Rust

Crate ayaka_runtime

source ·
Expand description

The runtime of Ayaka project.

+ayaka_runtime - Rust +

Crate ayaka_runtime

source ·
Expand description

The runtime of Ayaka project.

This runtime provides the game config, running context, plugin system and settings system. It can be treated as the “backend” of the game engine.

-

Re-exports

  • pub use anyhow;
  • pub use ayaka_plugin::Linker;
  • pub use ayaka_plugin::RawModule;
  • pub use futures_util::StreamExt;
  • pub use futures_util::TryStreamExt;
  • pub use log;
  • pub use vfs;
  • pub use ayaka_bindings_types::*;
  • pub use ayaka_primitive::*;
  • pub use locale::*;

Modules

Macros

  • A macro allowing for compile-time construction of valid [Locale]. -See [icu_locid::langid!].

Structs

Re-exports

  • pub use anyhow;
  • pub use ayaka_plugin::Linker;
  • pub use ayaka_plugin::RawModule;
  • pub use futures_util::StreamExt;
  • pub use futures_util::TryStreamExt;
  • pub use log;
  • pub use vfs;
  • pub use ayaka_bindings_types::*;
  • pub use ayaka_primitive::*;
  • pub use locale::*;

Modules

Macros

  • A macro allowing for compile-time construction of valid [Locale]. +See [icu_locid::langid!].

Structs

Enums

Functions

  • Get the version of Ayaka runtime. +It should be deserialized from a YAML file.
  • The paragraph in a paragraph config.
  • The plugin config.

Enums

Functions

  • Get the version of Ayaka runtime. This version string is exacted from CARGO_PKG_VERSION.
\ No newline at end of file diff --git a/doc/ayaka_runtime/macro.locale.html b/doc/ayaka_runtime/macro.locale.html index bb2dd9c5..5b4a297d 100644 --- a/doc/ayaka_runtime/macro.locale.html +++ b/doc/ayaka_runtime/macro.locale.html @@ -1,9 +1,10 @@ -locale in ayaka_runtime - Rust

Macro ayaka_runtime::locale

source ·
macro_rules! locale {
+locale in ayaka_runtime - Rust
+    

Macro ayaka_runtime::locale

source ·
macro_rules! locale {
     ($langid:literal) => { ... };
 }
Expand description

A macro allowing for compile-time construction of valid [Locale]. See [icu_locid::langid!].

-
const ZH_CN: Locale = locale!("zh_CN");
-let zh_cn: Locale = "zh_CN".parse().unwrap();
+
const ZH_CN: Locale = locale!("zh_CN");
+let zh_cn: Locale = "zh_CN".parse().unwrap();
 assert_eq!(ZH_CN, zh_cn);
\ No newline at end of file diff --git a/doc/ayaka_runtime/plugin/enum.LoadStatus.html b/doc/ayaka_runtime/plugin/enum.LoadStatus.html index 685f5184..cb06171e 100644 --- a/doc/ayaka_runtime/plugin/enum.LoadStatus.html +++ b/doc/ayaka_runtime/plugin/enum.LoadStatus.html @@ -1,21 +1,22 @@ -LoadStatus in ayaka_runtime::plugin - Rust

Variants§

§

CreateEngine

Start creating the engine.

§

LoadPlugin(String, usize, usize)

Loading the plugin.

-

Trait Implementations§

source§

impl Clone for LoadStatus

source§

fn clone(&self) -> LoadStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LoadStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<LoadStatus> for OpenStatus

source§

fn from(value: LoadStatus) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for LoadStatus

source§

fn clone(&self) -> LoadStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LoadStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<LoadStatus> for OpenStatus

source§

fn from(value: LoadStatus) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/plugin/index.html b/doc/ayaka_runtime/plugin/index.html index f520eed8..5fe5f0bb 100644 --- a/doc/ayaka_runtime/plugin/index.html +++ b/doc/ayaka_runtime/plugin/index.html @@ -1,2 +1,3 @@ -ayaka_runtime::plugin - Rust

Module ayaka_runtime::plugin

source ·
Expand description

The plugin utilities.

-

Structs

  • The plugin module with high-level interfaces.
  • The plugin runtime.

Enums

\ No newline at end of file +ayaka_runtime::plugin - Rust +

Module ayaka_runtime::plugin

source ·
Expand description

The plugin utilities.

+

Structs

  • The plugin module with high-level interfaces.
  • The plugin runtime.

Enums

\ No newline at end of file diff --git a/doc/ayaka_runtime/plugin/struct.Module.html b/doc/ayaka_runtime/plugin/struct.Module.html index 4c71788a..606bf397 100644 --- a/doc/ayaka_runtime/plugin/struct.Module.html +++ b/doc/ayaka_runtime/plugin/struct.Module.html @@ -1,5 +1,6 @@ -Module in ayaka_runtime::plugin - Rust
pub struct Module<M: RawModule> { /* private fields */ }
Expand description

The plugin module with high-level interfaces.

-

Implementations§

source§

impl<M: RawModule> Module<M>

source

pub fn plugin_type(&self) -> Result<PluginType>

Gets the [PluginType].

+Module in ayaka_runtime::plugin - Rust +
pub struct Module<M: RawModule> { /* private fields */ }
Expand description

The plugin module with high-level interfaces.

+

Implementations§

source§

impl<M: RawModule> Module<M>

source

pub fn plugin_type(&self) -> Result<PluginType>

Gets the [PluginType].

source

pub fn process_action( &self, ctx: ActionProcessContextRef<'_> @@ -19,22 +20,22 @@ &self, ctx: GameProcessContextRef<'_> ) -> Result<GameProcessResult>

Processes Game when opening the config file.

-

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Module<M>where - M: RefUnwindSafe,

§

impl<M> Send for Module<M>where - M: Send,

§

impl<M> Sync for Module<M>where - M: Sync,

§

impl<M> Unpin for Module<M>where - M: Unpin,

§

impl<M> UnwindSafe for Module<M>where - M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Module<M>
where + M: RefUnwindSafe,

§

impl<M> Send for Module<M>
where + M: Send,

§

impl<M> Sync for Module<M>
where + M: Sync,

§

impl<M> Unpin for Module<M>
where + M: Unpin,

§

impl<M> UnwindSafe for Module<M>
where + M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/plugin/struct.Runtime.html b/doc/ayaka_runtime/plugin/struct.Runtime.html index 74721511..c836a0bf 100644 --- a/doc/ayaka_runtime/plugin/struct.Runtime.html +++ b/doc/ayaka_runtime/plugin/struct.Runtime.html @@ -1,5 +1,6 @@ -Runtime in ayaka_runtime::plugin - Rust
pub struct Runtime<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

The plugin runtime.

-

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> Runtime<M>

source

pub fn load<'a>( +Runtime in ayaka_runtime::plugin - Rust +
pub struct Runtime<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

The plugin runtime.

+

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> Runtime<M>

source

pub fn load<'a>( dir: impl AsRef<str> + 'a, root_path: &'a VfsPath, names: &'a [impl AsRef<str>], @@ -12,20 +13,20 @@

source

pub fn text_module(&self, cmd: &str) -> Option<&Module<M>>

Gets text module from command.

source

pub fn line_module(&self, cmd: &str) -> Option<&Module<M>>

Gets line module from command.

source

pub fn game_modules(&self) -> impl Iterator<Item = &Module<M>>

Iterates game modules.

-

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Runtime<M>where - M: RefUnwindSafe,

§

impl<M> Send for Runtime<M>

§

impl<M> Sync for Runtime<M>

§

impl<M> Unpin for Runtime<M>where - M: Unpin,

§

impl<M> UnwindSafe for Runtime<M>where - M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Runtime<M>
where + M: RefUnwindSafe,

§

impl<M> Send for Runtime<M>

§

impl<M> Sync for Runtime<M>

§

impl<M> Unpin for Runtime<M>
where + M: Unpin,

§

impl<M> UnwindSafe for Runtime<M>
where + M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.Context.html b/doc/ayaka_runtime/struct.Context.html index b0a232ee..026f7536 100644 --- a/doc/ayaka_runtime/struct.Context.html +++ b/doc/ayaka_runtime/struct.Context.html @@ -1,5 +1,6 @@ -Context in ayaka_runtime - Rust

Struct ayaka_runtime::Context

source ·
pub struct Context<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

The game running context.

-

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> Context<M>

source

pub fn set_start_context(&mut self)

Initialize the [RawContext] at the start of the game.

+Context in ayaka_runtime - Rust +

Struct ayaka_runtime::Context

source ·
pub struct Context<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

The game running context.

+

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> Context<M>

source

pub fn set_start_context(&mut self)

Initialize the [RawContext] at the start of the game.

source

pub fn set_context(&mut self, ctx: RawContext)

Initialize the [RawContext] with given record.

source

pub fn game(&self) -> &Game

The inner Game object.

source

pub fn root_path(&self) -> &VfsPath

The root path of config.

@@ -8,17 +9,17 @@
source

pub fn get_action(&self, loc: &Locale, ctx: &RawContext) -> Result<Action>

Get the [Action] from [Locale] and [RawContext].

source

pub fn next_run(&mut self) -> Option<RawContext>

Step to next line.

source

pub fn current_paragraph_title(&self, loc: &Locale) -> Option<&String>

Get current paragraph title.

-

Auto Trait Implementations§

§

impl<M> !RefUnwindSafe for Context<M>

§

impl<M> Send for Context<M>

§

impl<M> Sync for Context<M>

§

impl<M> Unpin for Context<M>

§

impl<M> !UnwindSafe for Context<M>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<M> !RefUnwindSafe for Context<M>

§

impl<M> Send for Context<M>

§

impl<M> Sync for Context<M>

§

impl<M> Unpin for Context<M>

§

impl<M> !UnwindSafe for Context<M>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.ContextBuilder.html b/doc/ayaka_runtime/struct.ContextBuilder.html index f4079c4e..88fcd5a6 100644 --- a/doc/ayaka_runtime/struct.ContextBuilder.html +++ b/doc/ayaka_runtime/struct.ContextBuilder.html @@ -1,5 +1,6 @@ -ContextBuilder in ayaka_runtime - Rust
pub struct ContextBuilder<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

Builder of Context.

-

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> ContextBuilder<M>

source

pub fn new(frontend: FrontendType, linker: M::Linker) -> Self

Create a new ContextBuilder with frontend type and plugin runtime linker.

+ContextBuilder in ayaka_runtime - Rust +
pub struct ContextBuilder<M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

Builder of Context.

+

Implementations§

source§

impl<M: RawModule + Send + Sync + 'static> ContextBuilder<M>

source

pub fn new(frontend: FrontendType, linker: M::Linker) -> Self

Create a new ContextBuilder with frontend type and plugin runtime linker.

source

pub fn with_paths( self, paths: &[impl AsRef<Path>] @@ -11,22 +12,22 @@ self, paths: &[VfsPath] ) -> Result<ContextBuilderWithPaths<'static, M>>

Open a context with config paths.

-

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for ContextBuilder<M>where - <M as RawModule>::Linker: RefUnwindSafe,

§

impl<M> Send for ContextBuilder<M>where - <M as RawModule>::Linker: Send,

§

impl<M> Sync for ContextBuilder<M>where - <M as RawModule>::Linker: Sync,

§

impl<M> Unpin for ContextBuilder<M>where - <M as RawModule>::Linker: Unpin,

§

impl<M> UnwindSafe for ContextBuilder<M>where - <M as RawModule>::Linker: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for ContextBuilder<M>
where + <M as RawModule>::Linker: RefUnwindSafe,

§

impl<M> Send for ContextBuilder<M>
where + <M as RawModule>::Linker: Send,

§

impl<M> Sync for ContextBuilder<M>
where + <M as RawModule>::Linker: Sync,

§

impl<M> Unpin for ContextBuilder<M>
where + <M as RawModule>::Linker: Unpin,

§

impl<M> UnwindSafe for ContextBuilder<M>
where + <M as RawModule>::Linker: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.ContextBuilderWithPaths.html b/doc/ayaka_runtime/struct.ContextBuilderWithPaths.html index 95d363ee..0a377bb1 100644 --- a/doc/ayaka_runtime/struct.ContextBuilderWithPaths.html +++ b/doc/ayaka_runtime/struct.ContextBuilderWithPaths.html @@ -1,21 +1,22 @@ -ContextBuilderWithPaths in ayaka_runtime - Rust
pub struct ContextBuilderWithPaths<'a, M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

Builder of Context.

-

Implementations§

source§

impl<'a, M: RawModule + Send + Sync + 'static> ContextBuilderWithPaths<'a, M>

source

pub fn open( +ContextBuilderWithPaths in ayaka_runtime - Rust +
pub struct ContextBuilderWithPaths<'a, M: RawModule + Send + Sync + 'static> { /* private fields */ }
Expand description

Builder of Context.

+

Implementations§

source§

impl<'a, M: RawModule + Send + Sync + 'static> ContextBuilderWithPaths<'a, M>

source

pub fn open( self ) -> impl Future<Output = Result<Context<M>>> + Stream<Item = OpenStatus> + 'a

Open the config and load the Context.

-

Auto Trait Implementations§

§

impl<'a, M> !RefUnwindSafe for ContextBuilderWithPaths<'a, M>

§

impl<'a, M> Send for ContextBuilderWithPaths<'a, M>where - <M as RawModule>::Linker: Send,

§

impl<'a, M> Sync for ContextBuilderWithPaths<'a, M>where - <M as RawModule>::Linker: Sync,

§

impl<'a, M> Unpin for ContextBuilderWithPaths<'a, M>where - <M as RawModule>::Linker: Unpin,

§

impl<'a, M> !UnwindSafe for ContextBuilderWithPaths<'a, M>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl<'a, M> !RefUnwindSafe for ContextBuilderWithPaths<'a, M>

§

impl<'a, M> Send for ContextBuilderWithPaths<'a, M>
where + <M as RawModule>::Linker: Send,

§

impl<'a, M> Sync for ContextBuilderWithPaths<'a, M>
where + <M as RawModule>::Linker: Sync,

§

impl<'a, M> Unpin for ContextBuilderWithPaths<'a, M>
where + <M as RawModule>::Linker: Unpin,

§

impl<'a, M> !UnwindSafe for ContextBuilderWithPaths<'a, M>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +

source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.Game.html b/doc/ayaka_runtime/struct.Game.html index aecce092..ac1d59f8 100644 --- a/doc/ayaka_runtime/struct.Game.html +++ b/doc/ayaka_runtime/struct.Game.html @@ -1,14 +1,15 @@ -Game in ayaka_runtime - Rust

Struct ayaka_runtime::Game

source ·
pub struct Game {
+Game in ayaka_runtime - Rust
+    

Struct ayaka_runtime::Game

source ·
pub struct Game {
     pub config: GameConfig,
     pub paras: HashMap<Locale, HashMap<String, Vec<Paragraph>>>,
     pub res: HashMap<Locale, VarMap>,
 }
Expand description

The full Ayaka game. It consists of global config and all paragraphs.

-

Fields§

§config: GameConfig

The game config.

-
§paras: HashMap<Locale, HashMap<String, Vec<Paragraph>>>

The paragraphs, indexed by locale. +

Fields§

§config: GameConfig

The game config.

+
§paras: HashMap<Locale, HashMap<String, Vec<Paragraph>>>

The paragraphs, indexed by locale. The inner is the paragraphs indexed by file names.

-
§res: HashMap<Locale, VarMap>

The resources, indexed by locale.

-

Implementations§

source§

impl Game

source

pub fn start_context(&self) -> RawContext

Create a [RawContext] at the start of the game.

+
§res: HashMap<Locale, VarMap>

The resources, indexed by locale.

+

Implementations§

source§

impl Game

source

pub fn start_context(&self) -> RawContext

Create a [RawContext] at the start of the game.

source

pub fn find_para( &self, loc: &Locale, @@ -22,17 +23,17 @@ tag: &str ) -> Fallback<&Paragraph>

Find a paragraph by tag, with specified locale.

source

pub fn find_res_fallback(&self, loc: &Locale) -> Fallback<&VarMap>

Find the resource map with specified locale.

-

Auto Trait Implementations§

§

impl RefUnwindSafe for Game

§

impl Send for Game

§

impl Sync for Game

§

impl Unpin for Game

§

impl UnwindSafe for Game

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Auto Trait Implementations§

§

impl RefUnwindSafe for Game

§

impl Send for Game

§

impl Sync for Game

§

impl Unpin for Game

§

impl UnwindSafe for Game

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.GameConfig.html b/doc/ayaka_runtime/struct.GameConfig.html index 8fee339e..fee6effb 100644 --- a/doc/ayaka_runtime/struct.GameConfig.html +++ b/doc/ayaka_runtime/struct.GameConfig.html @@ -1,4 +1,5 @@ -GameConfig in ayaka_runtime - Rust
pub struct GameConfig {
+GameConfig in ayaka_runtime - Rust
+    
pub struct GameConfig {
     pub title: String,
     pub author: String,
     pub paras: String,
@@ -9,29 +10,29 @@
     pub base_lang: Locale,
 }
Expand description

The Ayaka config. It should be deserialized from a YAML file.

-

Fields§

§title: String

The title of the game.

-
§author: String

The author of the game.

-
§paras: String

The paragraphs path.

-
§start: String

The start paragraph tag.

-
§plugins: PluginConfig

The plugin config.

-
§props: HashMap<String, String>

The global game properties.

-
§res: Option<String>

The resources path.

-
§base_lang: Locale

The base language. +

Fields§

§title: String

The title of the game.

+
§author: String

The author of the game.

+
§paras: String

The paragraphs path.

+
§start: String

The start paragraph tag.

+
§plugins: PluginConfig

The plugin config.

+
§props: HashMap<String, String>

The global game properties.

+
§res: Option<String>

The resources path.

+
§base_lang: Locale

The base language. If the runtime fails to choose a best match, it fallbacks to this one.

-

Trait Implementations§

source§

impl Debug for GameConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GameConfig

source§

fn default() -> GameConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GameConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Debug for GameConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GameConfig

source§

fn default() -> GameConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GameConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.Paragraph.html b/doc/ayaka_runtime/struct.Paragraph.html index c632670a..42cfaf2c 100644 --- a/doc/ayaka_runtime/struct.Paragraph.html +++ b/doc/ayaka_runtime/struct.Paragraph.html @@ -1,30 +1,31 @@ -Paragraph in ayaka_runtime - Rust
pub struct Paragraph {
+Paragraph in ayaka_runtime - Rust
+    
pub struct Paragraph {
     pub tag: String,
     pub title: Option<String>,
     pub texts: Vec<Line>,
     pub next: Option<Text>,
 }
Expand description

The paragraph in a paragraph config.

-

Fields§

§tag: String

The tag and key of a paragraph. +

Fields§

§tag: String

The tag and key of a paragraph. They are referenced in next.

-
§title: Option<String>

The title of a paragraph. +

§title: Option<String>

The title of a paragraph. It can be None, but better with a human-readable one.

-
§texts: Vec<Line>

The texts. +

§texts: Vec<Line>

The texts. They will be parsed into [ayaka_primitive::Text] later.

-
§next: Option<Text>

The next paragraph. +

§next: Option<Text>

The next paragraph. If None, the game meets the end.

-

Trait Implementations§

source§

impl Debug for Paragraph

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Paragraph

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Debug for Paragraph

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Paragraph

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_runtime/struct.PluginConfig.html b/doc/ayaka_runtime/struct.PluginConfig.html index 70ac32b0..5bec85b6 100644 --- a/doc/ayaka_runtime/struct.PluginConfig.html +++ b/doc/ayaka_runtime/struct.PluginConfig.html @@ -1,22 +1,23 @@ -PluginConfig in ayaka_runtime - Rust
pub struct PluginConfig {
+PluginConfig in ayaka_runtime - Rust
+    
pub struct PluginConfig {
     pub dir: String,
     pub modules: Vec<String>,
 }
Expand description

The plugin config.

-

Fields§

§dir: String

The directory of the plugins.

-
§modules: Vec<String>

The names of the plugins, without extension.

-

Trait Implementations§

source§

impl Debug for PluginConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for PluginConfig

source§

fn default() -> PluginConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for PluginConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§dir: String

The directory of the plugins.

+
§modules: Vec<String>

The names of the plugins, without extension.

+

Trait Implementations§

source§

impl Debug for PluginConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for PluginConfig

source§

fn default() -> PluginConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for PluginConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for Twhere - T: 'static,

§

impl<T> MaybeSendSync for Twhere - T: Send + Sync,

\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where + T: 'static,

§

impl<T> MaybeSendSync for T
where + T: Send + Sync,

\ No newline at end of file diff --git a/doc/ayaka_script/all.html b/doc/ayaka_script/all.html index 4e477a6e..bffbe5cf 100644 --- a/doc/ayaka_script/all.html +++ b/doc/ayaka_script/all.html @@ -1 +1,2 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate +
\ No newline at end of file diff --git a/doc/ayaka_script/enum.BinaryOp.html b/doc/ayaka_script/enum.BinaryOp.html index 90f5f995..8ddda297 100644 --- a/doc/ayaka_script/enum.BinaryOp.html +++ b/doc/ayaka_script/enum.BinaryOp.html @@ -1,27 +1,28 @@ -BinaryOp in ayaka_script - Rust
pub enum BinaryOp {
+BinaryOp in ayaka_script - Rust
+    
pub enum BinaryOp {
     Val(ValBinaryOp),
     Logic(LogicBinaryOp),
     Assign,
     Inplace(ValBinaryOp),
 }
Expand description

Binary operations.

-

Variants§

§

Val(ValBinaryOp)

Value operations.

+

Variants§

§

Val(ValBinaryOp)

Value operations.

§

Logic(LogicBinaryOp)

Logical operations.

§

Assign

Assignment.

§

Inplace(ValBinaryOp)

Inplace value operations.

-

Trait Implementations§

source§

impl Clone for BinaryOp

source§

fn clone(&self) -> BinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<BinaryOp> for BinaryOp

source§

fn eq(&self, other: &BinaryOp) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BinaryOp

source§

impl Eq for BinaryOp

source§

impl StructuralEq for BinaryOp

source§

impl StructuralPartialEq for BinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for BinaryOp

source§

fn clone(&self) -> BinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for BinaryOp

source§

fn eq(&self, other: &BinaryOp) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for BinaryOp

source§

impl Eq for BinaryOp

source§

impl StructuralEq for BinaryOp

source§

impl StructuralPartialEq for BinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/enum.Expr.html b/doc/ayaka_script/enum.Expr.html index f47672a3..7a090533 100644 --- a/doc/ayaka_script/enum.Expr.html +++ b/doc/ayaka_script/enum.Expr.html @@ -1,4 +1,5 @@ -Expr in ayaka_script - Rust

Enum ayaka_script::Expr

source ·
pub enum Expr {
+Expr in ayaka_script - Rust
+    

Enum ayaka_script::Expr

source ·
pub enum Expr {
     Ref(Ref),
     Const(RawValue),
     Unary(UnaryOp, Box<Expr>),
@@ -6,25 +7,25 @@
     Call(String, String, Vec<Expr>),
 }
Expand description

An expression.

Two expressions should be splited with ;.

-

Variants§

§

Ref(Ref)

A reference to a variable.

+

Variants§

§

Ref(Ref)

A reference to a variable.

§

Const(RawValue)

A const value.

§

Unary(UnaryOp, Box<Expr>)

A unary operation.

§

Binary(Box<Expr>, BinaryOp, Box<Expr>)

A binary operation.

§

Call(String, String, Vec<Expr>)

A call to a function.

-

Trait Implementations§

source§

impl Clone for Expr

source§

fn clone(&self) -> Expr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Expr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<Expr> for Expr

source§

fn eq(&self, other: &Expr) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Expr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Expr

source§

impl StructuralEq for Expr

source§

impl StructuralPartialEq for Expr

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for Expr

source§

fn clone(&self) -> Expr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Expr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Expr

source§

fn eq(&self, other: &Expr) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Expr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Expr

source§

impl StructuralEq for Expr

source§

impl StructuralPartialEq for Expr

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/enum.LogicBinaryOp.html b/doc/ayaka_script/enum.LogicBinaryOp.html index b860ddd0..214c2545 100644 --- a/doc/ayaka_script/enum.LogicBinaryOp.html +++ b/doc/ayaka_script/enum.LogicBinaryOp.html @@ -1,4 +1,5 @@ -LogicBinaryOp in ayaka_script - Rust
pub enum LogicBinaryOp {
+LogicBinaryOp in ayaka_script - Rust
+    
pub enum LogicBinaryOp {
     And,
     Or,
     Eq,
@@ -8,7 +9,7 @@
     Gt,
     Ge,
 }
Expand description

Logical operations.

-

Variants§

§

And

&&

+

Variants§

§

And

&&

§

Or

||

§

Eq

==

§

Neq

!=

@@ -16,20 +17,20 @@
§

Le

<=

§

Gt

>

§

Ge

>=

-

Trait Implementations§

source§

impl Clone for LogicBinaryOp

source§

fn clone(&self) -> LogicBinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LogicBinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LogicBinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<LogicBinaryOp> for LogicBinaryOp

source§

fn eq(&self, other: &LogicBinaryOp) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for LogicBinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for LogicBinaryOp

source§

impl Eq for LogicBinaryOp

source§

impl StructuralEq for LogicBinaryOp

source§

impl StructuralPartialEq for LogicBinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for LogicBinaryOp

source§

fn clone(&self) -> LogicBinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LogicBinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for LogicBinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for LogicBinaryOp

source§

fn eq(&self, other: &LogicBinaryOp) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for LogicBinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for LogicBinaryOp

source§

impl Eq for LogicBinaryOp

source§

impl StructuralEq for LogicBinaryOp

source§

impl StructuralPartialEq for LogicBinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/enum.Ref.html b/doc/ayaka_script/enum.Ref.html index 0e13e391..531a9a75 100644 --- a/doc/ayaka_script/enum.Ref.html +++ b/doc/ayaka_script/enum.Ref.html @@ -1,26 +1,27 @@ -Ref in ayaka_script - Rust

Enum ayaka_script::Ref

source ·
pub enum Ref {
+Ref in ayaka_script - Rust
+    

Enum ayaka_script::Ref

source ·
pub enum Ref {
     Var(String),
     Ctx(String),
 }
Expand description

Reference of a variable.

-

Variants§

§

Var(String)

A local variable. +

Variants§

§

Var(String)

A local variable. It is only accessible in current program.

§

Ctx(String)

A context variable. It is stored in the context. The variable name is prefixed with $.

-

Trait Implementations§

source§

impl Clone for Ref

source§

fn clone(&self) -> Ref

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ref

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Ref

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<Ref> for Ref

source§

fn eq(&self, other: &Ref) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Ref

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Ref

source§

impl StructuralEq for Ref

source§

impl StructuralPartialEq for Ref

Auto Trait Implementations§

§

impl RefUnwindSafe for Ref

§

impl Send for Ref

§

impl Sync for Ref

§

impl Unpin for Ref

§

impl UnwindSafe for Ref

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for Ref

source§

fn clone(&self) -> Ref

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ref

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Ref

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Ref

source§

fn eq(&self, other: &Ref) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Ref

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Ref

source§

impl StructuralEq for Ref

source§

impl StructuralPartialEq for Ref

Auto Trait Implementations§

§

impl RefUnwindSafe for Ref

§

impl Send for Ref

§

impl Sync for Ref

§

impl Unpin for Ref

§

impl UnwindSafe for Ref

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/enum.UnaryOp.html b/doc/ayaka_script/enum.UnaryOp.html index b35e93ef..bbcc9cda 100644 --- a/doc/ayaka_script/enum.UnaryOp.html +++ b/doc/ayaka_script/enum.UnaryOp.html @@ -1,25 +1,26 @@ -UnaryOp in ayaka_script - Rust
pub enum UnaryOp {
+UnaryOp in ayaka_script - Rust
+    
pub enum UnaryOp {
     Positive,
     Negative,
     Not,
 }
Expand description

Unary operations.

-

Variants§

§

Positive

+

+

Variants§

§

Positive

+

§

Negative

-

§

Not

!

-

Trait Implementations§

source§

impl Clone for UnaryOp

source§

fn clone(&self) -> UnaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for UnaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for UnaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<UnaryOp> for UnaryOp

source§

fn eq(&self, other: &UnaryOp) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for UnaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for UnaryOp

source§

impl Eq for UnaryOp

source§

impl StructuralEq for UnaryOp

source§

impl StructuralPartialEq for UnaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for UnaryOp

source§

fn clone(&self) -> UnaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for UnaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for UnaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for UnaryOp

source§

fn eq(&self, other: &UnaryOp) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for UnaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for UnaryOp

source§

impl Eq for UnaryOp

source§

impl StructuralEq for UnaryOp

source§

impl StructuralPartialEq for UnaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/enum.ValBinaryOp.html b/doc/ayaka_script/enum.ValBinaryOp.html index a0cdc076..f00b7382 100644 --- a/doc/ayaka_script/enum.ValBinaryOp.html +++ b/doc/ayaka_script/enum.ValBinaryOp.html @@ -1,4 +1,5 @@ -ValBinaryOp in ayaka_script - Rust
pub enum ValBinaryOp {
+ValBinaryOp in ayaka_script - Rust
+    
pub enum ValBinaryOp {
     Add,
     Minus,
     Mul,
@@ -8,7 +9,7 @@
     Or,
     Xor,
 }
Expand description

Value binary operations.

-

Variants§

§

Add

+

+

Variants§

§

Add

+

§

Minus

-

§

Mul

*

§

Div

/

@@ -16,20 +17,20 @@
§

And

&

§

Or

|

§

Xor

^

-

Trait Implementations§

source§

impl Clone for ValBinaryOp

source§

fn clone(&self) -> ValBinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValBinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ValBinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<ValBinaryOp> for ValBinaryOp

source§

fn eq(&self, other: &ValBinaryOp) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ValBinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ValBinaryOp

source§

impl Eq for ValBinaryOp

source§

impl StructuralEq for ValBinaryOp

source§

impl StructuralPartialEq for ValBinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ValBinaryOp

source§

fn clone(&self) -> ValBinaryOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValBinaryOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ValBinaryOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for ValBinaryOp

source§

fn eq(&self, other: &ValBinaryOp) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ValBinaryOp

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for ValBinaryOp

source§

impl Eq for ValBinaryOp

source§

impl StructuralEq for ValBinaryOp

source§

impl StructuralPartialEq for ValBinaryOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/index.html b/doc/ayaka_script/index.html index 984aa16f..e549cea9 100644 --- a/doc/ayaka_script/index.html +++ b/doc/ayaka_script/index.html @@ -1,3 +1,4 @@ -ayaka_script - Rust

Crate ayaka_script

source ·
Expand description

The script parsers.

-

Re-exports

  • pub use ayaka_primitive::RawValue;
  • pub use ayaka_primitive::ValueType;

Structs

Enums

\ No newline at end of file +ayaka_script - Rust +

Crate ayaka_script

source ·
Expand description

The script parsers.

+

Re-exports

  • pub use ayaka_primitive::RawValue;
  • pub use ayaka_primitive::ValueType;

Structs

Enums

\ No newline at end of file diff --git a/doc/ayaka_script/struct.ConstParser.html b/doc/ayaka_script/struct.ConstParser.html index 34e627ba..485973f8 100644 --- a/doc/ayaka_script/struct.ConstParser.html +++ b/doc/ayaka_script/struct.ConstParser.html @@ -1,14 +1,15 @@ -ConstParser in ayaka_script - Rust
pub struct ConstParser { /* private fields */ }

Implementations§

source§

impl ConstParser

source

pub fn new() -> ConstParser

source

pub fn parse<'input>( +ConstParser in ayaka_script - Rust +
pub struct ConstParser { /* private fields */ }

Implementations§

source§

impl ConstParser

source

pub fn new() -> ConstParser

source

pub fn parse<'input>( &self, input: &'input str -) -> Result<RawValue, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<RawValue, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_script/struct.ExprParser.html b/doc/ayaka_script/struct.ExprParser.html index 82d2c5f3..c23990db 100644 --- a/doc/ayaka_script/struct.ExprParser.html +++ b/doc/ayaka_script/struct.ExprParser.html @@ -1,14 +1,15 @@ -ExprParser in ayaka_script - Rust
pub struct ExprParser { /* private fields */ }

Implementations§

source§

impl ExprParser

source

pub fn new() -> ExprParser

source

pub fn parse<'input>( +ExprParser in ayaka_script - Rust +
pub struct ExprParser { /* private fields */ }

Implementations§

source§

impl ExprParser

source

pub fn new() -> ExprParser

source

pub fn parse<'input>( &self, input: &'input str -) -> Result<Expr, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Expr, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_script/struct.Program.html b/doc/ayaka_script/struct.Program.html index f726c1cf..963d5143 100644 --- a/doc/ayaka_script/struct.Program.html +++ b/doc/ayaka_script/struct.Program.html @@ -1,19 +1,20 @@ -Program in ayaka_script - Rust

Struct ayaka_script::Program

source ·
pub struct Program(pub Vec<Expr>);
Expand description

A full script, a collection of expressions.

+Program in ayaka_script - Rust +

Struct ayaka_script::Program

source ·
pub struct Program(pub Vec<Expr>);
Expand description

A full script, a collection of expressions.

The last expression is the final value of the script.

-

Tuple Fields§

§0: Vec<Expr>

Trait Implementations§

source§

impl Clone for Program

source§

fn clone(&self) -> Program

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Program

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Program

source§

fn default() -> Program

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Program

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FromStr for Program

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq<Program> for Program

source§

fn eq(&self, other: &Program) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Program

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Program

source§

impl StructuralEq for Program

source§

impl StructuralPartialEq for Program

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Tuple Fields§

§0: Vec<Expr>

Trait Implementations§

source§

impl Clone for Program

source§

fn clone(&self) -> Program

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Program

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Program

source§

fn default() -> Program

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Program

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FromStr for Program

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for Program

source§

fn eq(&self, other: &Program) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Program

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Program

source§

impl StructuralEq for Program

source§

impl StructuralPartialEq for Program

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/doc/ayaka_script/struct.ProgramParser.html b/doc/ayaka_script/struct.ProgramParser.html index 630eb386..84856cf9 100644 --- a/doc/ayaka_script/struct.ProgramParser.html +++ b/doc/ayaka_script/struct.ProgramParser.html @@ -1,14 +1,15 @@ -ProgramParser in ayaka_script - Rust
pub struct ProgramParser { /* private fields */ }

Implementations§

source§

impl ProgramParser

source

pub fn new() -> ProgramParser

source

pub fn parse<'input>( +ProgramParser in ayaka_script - Rust +
pub struct ProgramParser { /* private fields */ }

Implementations§

source§

impl ProgramParser

source

pub fn new() -> ProgramParser

source

pub fn parse<'input>( &self, input: &'input str -) -> Result<Program, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Program, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/ayaka_script/struct.RefParser.html b/doc/ayaka_script/struct.RefParser.html index e6501d19..373d80e0 100644 --- a/doc/ayaka_script/struct.RefParser.html +++ b/doc/ayaka_script/struct.RefParser.html @@ -1,14 +1,15 @@ -RefParser in ayaka_script - Rust

Struct ayaka_script::RefParser

source ·
pub struct RefParser { /* private fields */ }

Implementations§

source§

impl RefParser

source

pub fn new() -> RefParser

source

pub fn parse<'input>( +RefParser in ayaka_script - Rust +

Struct ayaka_script::RefParser

source ·
pub struct RefParser { /* private fields */ }

Implementations§

source§

impl RefParser

source

pub fn new() -> RefParser

source

pub fn parse<'input>( &self, input: &'input str -) -> Result<Ref, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<Ref, ParseError<usize, Token<'input>, &'static str>>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file +
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/doc/help.html b/doc/help.html index 781f442f..680ebf46 100644 --- a/doc/help.html +++ b/doc/help.html @@ -1 +1,2 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help +

Rustdoc help

Back
\ No newline at end of file diff --git a/doc/implementors/core/clone/trait.Clone.js b/doc/implementors/core/clone/trait.Clone.js deleted file mode 100644 index 3b1b8bc5..00000000 --- a/doc/implementors/core/clone/trait.Clone.js +++ /dev/null @@ -1,8 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl Clone for Action"],["impl Clone for FileSeekFrom"],["impl Clone for RawContext"],["impl Clone for Switch"],["impl Clone for FileType"],["impl Clone for ActionText"],["impl Clone for PluginType"],["impl Clone for ActionSubText"],["impl Clone for FrontendType"]], -"ayaka_model":[["impl Clone for GlobalRecord"],["impl Clone for Settings"],["impl Clone for ActionRecord"],["impl Clone for OpenGameStatus"]], -"ayaka_plugin_wasmer":[["impl Clone for WasmerFunction"]], -"ayaka_primitive":[["impl Clone for Text"],["impl Clone for SubText"],["impl Clone for ValueType"],["impl Clone for Line"],["impl Clone for RawValue"]], -"ayaka_runtime":[["impl Clone for OpenStatus"],["impl Clone for LoadStatus"]], -"ayaka_script":[["impl Clone for BinaryOp"],["impl Clone for Expr"],["impl Clone for LogicBinaryOp"],["impl Clone for UnaryOp"],["impl Clone for Ref"],["impl Clone for ValBinaryOp"],["impl Clone for Program"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/cmp/trait.Eq.js b/doc/implementors/core/cmp/trait.Eq.js deleted file mode 100644 index c2248b0d..00000000 --- a/doc/implementors/core/cmp/trait.Eq.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl Eq for FileType"],["impl Eq for FileSeekFrom"],["impl Eq for Switch"],["impl Eq for ActionSubText"]], -"ayaka_model":[["impl Eq for OpenGameStatus"]], -"ayaka_primitive":[["impl Eq for Line"],["impl Eq for ValueType"],["impl Eq for Text"],["impl Eq for RawValue"],["impl Eq for SubText"]], -"ayaka_runtime":[["impl Eq for OpenStatus"]], -"ayaka_script":[["impl Eq for Program"],["impl Eq for Ref"],["impl Eq for UnaryOp"],["impl Eq for BinaryOp"],["impl Eq for Expr"],["impl Eq for ValBinaryOp"],["impl Eq for LogicBinaryOp"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/cmp/trait.PartialEq.js b/doc/implementors/core/cmp/trait.PartialEq.js deleted file mode 100644 index eb17cb97..00000000 --- a/doc/implementors/core/cmp/trait.PartialEq.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl PartialEq<ActionSubText> for ActionSubText"],["impl PartialEq<ActionText> for ActionText"],["impl PartialEq<Action> for Action"],["impl PartialEq<FileSeekFrom> for FileSeekFrom"],["impl PartialEq<FileType> for FileType"],["impl PartialEq<Switch> for Switch"]], -"ayaka_model":[["impl PartialEq<OpenGameStatus> for OpenGameStatus"]], -"ayaka_primitive":[["impl PartialEq<ValueType> for ValueType"],["impl PartialEq<Line> for Line"],["impl PartialEq<SubText> for SubText"],["impl PartialEq<Text> for Text"],["impl PartialEq<RawValue> for RawValue"]], -"ayaka_runtime":[["impl PartialEq<OpenStatus> for OpenStatus"]], -"ayaka_script":[["impl PartialEq<LogicBinaryOp> for LogicBinaryOp"],["impl PartialEq<Program> for Program"],["impl PartialEq<UnaryOp> for UnaryOp"],["impl PartialEq<ValBinaryOp> for ValBinaryOp"],["impl PartialEq<Expr> for Expr"],["impl PartialEq<Ref> for Ref"],["impl PartialEq<BinaryOp> for BinaryOp"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/cmp/trait.PartialOrd.js b/doc/implementors/core/cmp/trait.PartialOrd.js deleted file mode 100644 index cdfa1d07..00000000 --- a/doc/implementors/core/cmp/trait.PartialOrd.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"ayaka_primitive":[["impl PartialOrd<RawValue> for RawValue"],["impl PartialOrd<ValueType> for ValueType"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/fmt/trait.Debug.js b/doc/implementors/core/fmt/trait.Debug.js deleted file mode 100644 index 81e2254a..00000000 --- a/doc/implementors/core/fmt/trait.Debug.js +++ /dev/null @@ -1,8 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings":[["impl Debug for HostFS"]], -"ayaka_bindings_types":[["impl Debug for GameProcessResult"],["impl Debug for FileType"],["impl Debug for Switch"],["impl Debug for FrontendType"],["impl Debug for ActionProcessResult"],["impl Debug for GameProcessContext"],["impl Debug for Action"],["impl Debug for TextProcessContext"],["impl Debug for FileSeekFrom"],["impl Debug for ActionSubText"],["impl Debug for LineProcessResult"],["impl Debug for LineProcessContext"],["impl Debug for ActionText"],["impl Debug for RawContext"],["impl Debug for FileMetadata"],["impl Debug for PluginType"],["impl Debug for ActionProcessContext"],["impl Debug for TextProcessResult"]], -"ayaka_model":[["impl Debug for OpenGameStatus"],["impl Debug for GlobalRecord"],["impl Debug for ActionRecord"],["impl Debug for Settings"]], -"ayaka_primitive":[["impl Debug for SubText"],["impl Debug for Line"],["impl Debug for ValueType"],["impl Debug for RawValue"],["impl Debug for Text"]], -"ayaka_runtime":[["impl Debug for GameConfig"],["impl Debug for OpenStatus"],["impl Debug for PluginConfig"],["impl Debug for Paragraph"],["impl Debug for LoadStatus"]], -"ayaka_script":[["impl Debug for UnaryOp"],["impl Debug for Expr"],["impl Debug for ValBinaryOp"],["impl Debug for BinaryOp"],["impl Debug for Program"],["impl Debug for LogicBinaryOp"],["impl Debug for Ref"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.StructuralEq.js b/doc/implementors/core/marker/trait.StructuralEq.js deleted file mode 100644 index 6ffb9ebe..00000000 --- a/doc/implementors/core/marker/trait.StructuralEq.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl StructuralEq for FileSeekFrom"],["impl StructuralEq for FileType"],["impl StructuralEq for ActionSubText"],["impl StructuralEq for Switch"]], -"ayaka_model":[["impl StructuralEq for OpenGameStatus"]], -"ayaka_primitive":[["impl StructuralEq for RawValue"],["impl StructuralEq for ValueType"],["impl StructuralEq for Line"],["impl StructuralEq for SubText"],["impl StructuralEq for Text"]], -"ayaka_runtime":[["impl StructuralEq for OpenStatus"]], -"ayaka_script":[["impl StructuralEq for Ref"],["impl StructuralEq for LogicBinaryOp"],["impl StructuralEq for ValBinaryOp"],["impl StructuralEq for BinaryOp"],["impl StructuralEq for Expr"],["impl StructuralEq for Program"],["impl StructuralEq for UnaryOp"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.StructuralPartialEq.js b/doc/implementors/core/marker/trait.StructuralPartialEq.js deleted file mode 100644 index 870dc0bc..00000000 --- a/doc/implementors/core/marker/trait.StructuralPartialEq.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl StructuralPartialEq for FileType"],["impl StructuralPartialEq for FileSeekFrom"],["impl StructuralPartialEq for ActionSubText"],["impl StructuralPartialEq for Action"],["impl StructuralPartialEq for Switch"]], -"ayaka_model":[["impl StructuralPartialEq for OpenGameStatus"]], -"ayaka_primitive":[["impl StructuralPartialEq for Line"],["impl StructuralPartialEq for Text"],["impl StructuralPartialEq for ValueType"],["impl StructuralPartialEq for SubText"],["impl StructuralPartialEq for RawValue"]], -"ayaka_runtime":[["impl StructuralPartialEq for OpenStatus"]], -"ayaka_script":[["impl StructuralPartialEq for Program"],["impl StructuralPartialEq for Expr"],["impl StructuralPartialEq for ValBinaryOp"],["impl StructuralPartialEq for BinaryOp"],["impl StructuralPartialEq for Ref"],["impl StructuralPartialEq for UnaryOp"],["impl StructuralPartialEq for LogicBinaryOp"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/serde/de/trait.Deserialize.js b/doc/implementors/serde/de/trait.Deserialize.js deleted file mode 100644 index 764d610f..00000000 --- a/doc/implementors/serde/de/trait.Deserialize.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl<'de> Deserialize<'de> for TextProcessContext"],["impl<'de> Deserialize<'de> for ActionSubText"],["impl<'de> Deserialize<'de> for ActionText"],["impl<'de> Deserialize<'de> for PluginType"],["impl<'de> Deserialize<'de> for FileType"],["impl<'de> Deserialize<'de> for GameProcessContext"],["impl<'de> Deserialize<'de> for TextProcessResult"],["impl<'de> Deserialize<'de> for FileMetadata"],["impl<'de> Deserialize<'de> for RawContext"],["impl<'de> Deserialize<'de> for Action"],["impl<'de> Deserialize<'de> for FileSeekFrom"],["impl<'de> Deserialize<'de> for Switch"],["impl<'de> Deserialize<'de> for GameProcessResult"],["impl<'de> Deserialize<'de> for ActionProcessContext"],["impl<'de> Deserialize<'de> for ActionProcessResult"],["impl<'de> Deserialize<'de> for FrontendType"],["impl<'de> Deserialize<'de> for LineProcessContext"],["impl<'de> Deserialize<'de> for LineProcessResult"]], -"ayaka_model":[["impl<'de> Deserialize<'de> for Settings"],["impl<'de> Deserialize<'de> for ActionRecord"],["impl<'de> Deserialize<'de> for GlobalRecord"]], -"ayaka_primitive":[["impl<'de> Deserialize<'de> for RawValue"],["impl<'de> Deserialize<'de> for Line"],["impl<'de> Deserialize<'de> for Text"]], -"ayaka_runtime":[["impl<'de> Deserialize<'de> for Paragraph"],["impl<'de> Deserialize<'de> for PluginConfig"],["impl<'de> Deserialize<'de> for GameConfig"]], -"ayaka_script":[["impl<'de> Deserialize<'de> for LogicBinaryOp"],["impl<'de> Deserialize<'de> for Program"],["impl<'de> Deserialize<'de> for ValBinaryOp"],["impl<'de> Deserialize<'de> for BinaryOp"],["impl<'de> Deserialize<'de> for Ref"],["impl<'de> Deserialize<'de> for Expr"],["impl<'de> Deserialize<'de> for UnaryOp"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/serde/ser/trait.Serialize.js b/doc/implementors/serde/ser/trait.Serialize.js deleted file mode 100644 index daf03602..00000000 --- a/doc/implementors/serde/ser/trait.Serialize.js +++ /dev/null @@ -1,7 +0,0 @@ -(function() {var implementors = { -"ayaka_bindings_types":[["impl Serialize for LineProcessResult"],["impl Serialize for FileSeekFrom"],["impl Serialize for ActionProcessResult"],["impl Serialize for GameProcessContext"],["impl Serialize for FileMetadata"],["impl Serialize for Switch"],["impl Serialize for RawContext"],["impl Serialize for TextProcessResult"],["impl Serialize for FileType"],["impl Serialize for ActionSubText"],["impl Serialize for Action"],["impl Serialize for TextProcessContext"],["impl Serialize for ActionText"],["impl Serialize for PluginType"],["impl Serialize for GameProcessResult"],["impl Serialize for FrontendType"],["impl Serialize for ActionProcessContext"],["impl Serialize for LineProcessContext"]], -"ayaka_model":[["impl Serialize for ActionRecord"],["impl Serialize for GlobalRecord"],["impl Serialize for OpenGameStatus"],["impl Serialize for Settings"]], -"ayaka_primitive":[["impl Serialize for RawValue"]], -"ayaka_runtime":[["impl Serialize for OpenStatus"]], -"ayaka_script":[["impl Serialize for Expr"],["impl Serialize for UnaryOp"],["impl Serialize for BinaryOp"],["impl Serialize for Ref"],["impl Serialize for LogicBinaryOp"],["impl Serialize for ValBinaryOp"],["impl Serialize for Program"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/search-index.js b/doc/search-index.js index 0b7f7134..5afae5b9 100644 --- a/doc/search-index.js +++ b/doc/search-index.js @@ -1,15 +1,15 @@ -var searchIndex = JSON.parse('{\ -"ayaka_bindings":{"doc":"","t":"CCXAXCCDLLLLLLLLLLLLLLLLLL","n":["RawValue","ValueType","export","fs","import","log","vfs","HostFS","append_file","borrow","borrow_mut","create_dir","create_file","default","exists","fmt","from","into","metadata","open_file","read_dir","remove_dir","remove_file","try_from","try_into","type_id"],"q":[[0,"ayaka_bindings"],[7,"ayaka_bindings::fs"],[26,"std::io"],[27,"alloc::boxed"],[28,"vfs::error"],[29,"core::fmt"],[30,"core::fmt"],[31,"vfs::path"],[32,"core::result"],[33,"core::any"]],"d":["","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,0,0,0,0,0,0,0,[[1,2],[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2],[[5,[6]]]],[[1,2],[[5,[[4,[3]]]]]],[[],1],[[1,2],[[5,[7]]]],[[1,8],9],[-1,-1,[]],[-1,-2,[],[]],[[1,2],[[5,[10]]]],[[1,2],[[5,[[4,[11]]]]]],[[1,2],[[5,[[4,[12]]]]]],[[1,2],[[5,[6]]]],[[1,2],[[5,[6]]]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]]],"c":[],"p":[[3,"HostFS",7],[15,"str"],[8,"Write",26],[3,"Box",27],[6,"VfsResult",28],[15,"tuple"],[15,"bool"],[3,"Formatter",29],[6,"Result",29],[3,"VfsMetadata",30],[8,"SeekAndRead",30],[8,"Iterator",31],[4,"Result",32],[3,"TypeId",33]],"b":[]},\ -"ayaka_bindings_impl":{"doc":"","t":"XX","n":["export","import"],"q":[[0,"ayaka_bindings_impl"]],"d":["",""],"i":[0,0],"f":[0,0],"c":[],"p":[],"b":[]},\ -"ayaka_bindings_types":{"doc":"The types used in both runtime and plugins.","t":"EDDEDNNNNNNNNDEEEDDNNDDDDDNDNNNDDGLMMMLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMLMMMMLLLLLLLLLLLLLLLLLLLLMLMMMMMMLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMM","n":["Action","ActionProcessContext","ActionProcessResult","ActionSubText","ActionText","Block","Chars","Current","Custom","Dir","Empty","End","File","FileMetadata","FileSeekFrom","FileType","FrontendType","GameProcessContext","GameProcessResult","Html","Latex","LineProcessContext","LineProcessResult","PluginType","PluginTypeBuilder","RawContext","Start","Switch","Switches","Text","Text","TextProcessContext","TextProcessResult","VarMap","action","action","action","action","as_str","author","block","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","ch_key","character","chars","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","ctx","ctx","cur_act","cur_base_para","cur_para","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","enabled","eq","eq","eq","eq","eq","eq","file_type","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","frontend","frontend","frontend","game","game","game_props","game_props","game_props","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_string","len","line","line","locals","locals","props","props","props","push_back_block","push_back_chars","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","text","text","text","text","text","title","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vars","vars"],"q":[[0,"ayaka_bindings_types"],[313,"alloc::string"],[314,"core::convert"],[315,"core::result"],[316,"serde::de"],[317,"core::fmt"],[318,"core::fmt"],[319,"vfs::path"],[320,"core::iter::traits::collect"],[321,"alloc::borrow"],[322,"serde::ser"],[323,"core::any"]],"d":["The full action information in one line of config. It …","The argument to action plugin.","The result of action plugins. See examples at …","The unit of one line in an action.","The text is a VecDeque<ActionSubText>. The ActionSubText …","Characters printed together. Usually they are HTML tags or …","Characters printed one by one. Usually they are meaningful …","Seek from current position.","A custom action.","A directory.","An empty action usually means an exec or custom action.","Seek from end.","A file.","File metadata.","A SeekFrom type which implements serde.","Type of a file.","The type of current frontend.","The argument to game plugin.","The result of game plugins. See examples at …","The frontend renders HTML.","The frontend renders LaTeX.","The argument to line plugin.","The result of commands in line plugins. See examples at …","The bit flags to describe plugin type.","The builder of PluginType.","The serializable context.","Seek from start.","One switch in the switches of an Action.","A switch action, display switches and let player to choose.","The frontend only accepts raw texts.","A text action, display some texts.","The argument to text plugin.","The result of commands in text plugins. See examples at …","A map from variable name to RawValue.","An action plugin.","The action plugin. This plugin processes the action after …","The current action.","The processed action text.","Gets a reference of str.","The author of the game.","Creates ActionSubText::Block.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a PluginType.","Creates a PluginTypeBuilder instance to build a PluginType.","The key of current character.","The current character.","Creates ActionSubText::Chars.","","","","","","","","","","","","","","","","","","","The current context.","The current context.","Current text index.","Current base paragraph tag.","Current paragraph tag.","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the switch is enabled.","","","","","","","Type of file.","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","The frontend type.","The frontend type.","The frontend type.","A game plugin.","The game plugin. This plugin processes the game properties …","The global properties of the game profile.","The global properties of the game profile.","The global properties of the game profile.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets the inner String.","Length of the file.","A line plugins, which provides custom line types.","The line plugin. The custom line types are dealt with this …","The updated variables.","Current local variables.","The global properties of the game.","The updated properties.","The full properties of the custom command.","Push the string as ActionSubText::Block to the back. If …","Push the string as ActionSubText::Chars to the back. If …","","","","","","","","","","","","","","","","","","","A text plugin, which provides commands.","The text plugin. The custom text commands are dealt with …","The lines to append.","The full texts.","The switch text.","The title of the game.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The temp variables.","The temp variables."],"i":[0,0,0,0,0,2,2,13,10,12,10,13,12,0,0,0,0,0,0,7,7,0,0,0,0,0,13,0,10,7,10,0,0,0,1,6,20,15,2,22,2,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,9,9,2,6,7,2,8,9,10,11,12,13,6,7,2,8,9,10,11,12,13,20,24,8,8,8,6,15,16,17,8,9,10,11,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,11,2,9,10,11,12,13,25,6,7,20,15,21,16,22,23,24,17,2,8,9,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,12,25,25,13,13,20,21,24,1,6,20,21,24,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,2,25,1,6,17,8,22,23,24,9,9,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,16,9,11,22,6,7,2,8,9,10,11,12,13,9,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,17,9],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],0,0,0,[2,3],0,[-1,2,[[5,[4]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[1,6],[[],1],0,0,[-1,2,[[5,[4]]]],[6,6],[7,7],[2,2],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,0,0,0,0,[[],6],[[],15],[[],16],[[],17],[[],8],[[],9],[[],10],[[],11],[-1,[[18,[6]]],19],[-1,[[18,[7]]],19],[-1,[[18,[20]]],19],[-1,[[18,[15]]],19],[-1,[[18,[21]]],19],[-1,[[18,[16]]],19],[-1,[[18,[22]]],19],[-1,[[18,[23]]],19],[-1,[[18,[24]]],19],[-1,[[18,[17]]],19],[-1,[[18,[2]]],19],[-1,[[18,[8]]],19],[-1,[[18,[9]]],19],[-1,[[18,[10]]],19],[-1,[[18,[11]]],19],[-1,[[18,[12]]],19],[-1,[[18,[25]]],19],[-1,[[18,[13]]],19],0,[[2,2],26],[[9,9],26],[[10,10],26],[[11,11],26],[[12,12],26],[[13,13],26],0,[[6,27],28],[[7,27],28],[[20,27],28],[[15,27],28],[[21,27],28],[[16,27],28],[[22,27],28],[[23,27],28],[[24,27],28],[[17,27],28],[[2,27],28],[[8,27],28],[[9,27],28],[[9,27],28],[[10,27],28],[[11,27],28],[[12,27],28],[[25,27],28],[[13,27],28],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[29,12],[30,25],[-1,-1,[]],[-1,-1,[]],[31,13],0,0,0,[1,1],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[2,4],0,[[1,-1],1,32],0,0,0,0,0,0,[[9,-1],14,[[5,[[33,[3]]]]]],[[9,-1],14,[[5,[[33,[3]]]]]],[[6,-1],18,34],[[7,-1],18,34],[[20,-1],18,34],[[15,-1],18,34],[[21,-1],18,34],[[16,-1],18,34],[[22,-1],18,34],[[23,-1],18,34],[[24,-1],18,34],[[17,-1],18,34],[[2,-1],18,34],[[8,-1],18,34],[[9,-1],18,34],[[10,-1],18,34],[[11,-1],18,34],[[12,-1],18,34],[[25,-1],18,34],[[13,-1],18,34],[[1,-1],1,32],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],[-1,35,[]],0,0],"c":[],"p":[[3,"PluginTypeBuilder",0],[4,"ActionSubText",0],[15,"str"],[3,"String",313],[8,"Into",314],[3,"PluginType",0],[4,"FrontendType",0],[3,"RawContext",0],[3,"ActionText",0],[4,"Action",0],[3,"Switch",0],[4,"FileType",0],[4,"FileSeekFrom",0],[15,"tuple"],[3,"ActionProcessResult",0],[3,"TextProcessResult",0],[3,"LineProcessResult",0],[4,"Result",315],[8,"Deserializer",316],[3,"ActionProcessContext",0],[3,"TextProcessContext",0],[3,"GameProcessContext",0],[3,"GameProcessResult",0],[3,"LineProcessContext",0],[3,"FileMetadata",0],[15,"bool"],[3,"Formatter",317],[6,"Result",317],[4,"VfsFileType",318],[3,"VfsMetadata",318],[4,"SeekFrom",319],[8,"IntoIterator",320],[4,"Cow",321],[8,"Serializer",322],[3,"TypeId",323]],"b":[[153,"impl-Debug-for-ActionText"],[154,"impl-Display-for-ActionText"]]},\ -"ayaka_model":{"doc":"The high level wrapper model of Ayaka.","t":"DDDNNNNEDILMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKMLLLLLLLLMLLKLLLLLLLLLLLMKLKLLKLLLLLLLLLLLLLKMLLLLLLLLLLLLLLLLLLLLLMLMLLLLL","n":["ActionRecord","GameViewModel","GlobalRecord","LoadGlobalRecords","LoadRecords","LoadSettings","Loaded","OpenGameStatus","Settings","SettingsManager","avaliable_locale","bgm_volume","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","context","context_mut","current_action","current_actions","current_history","current_run","current_title","current_visited","default","default","default","deserialize","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","global_record","global_record_mut","global_record_path","history","init_context","init_context_by_index","init_new","into","into","into","into","into","lang","last_ctx","last_ctx_with_game","load_file","load_global_record","load_global_record","load_records","load_records","load_settings","load_settings","new","next_back_run","next_run","open_game","record","record","record_path","records","records_path","records_text","save_current_to","save_file","save_global_record","save_global_record","save_records","save_records","save_settings","save_settings","save_settings","serialize","serialize","serialize","serialize","set_settings","settings","settings_path","sub_lang","switch","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","video_volume","visited","voice_volume","vzip","vzip","vzip","vzip","vzip"],"q":[[0,"ayaka_model"],[135,"core::iter::traits::iterator"],[136,"ayaka_plugin"],[137,"core::marker"],[138,"core::marker"],[139,"ayaka_bindings_types::config"],[140,"core::option"],[141,"core::iter::traits::double_ended"],[142,"ayaka_bindings_types::config"],[143,"core::result"],[144,"serde::de"],[145,"core::fmt"],[146,"core::fmt"],[147,"anyhow"],[148,"ayaka_runtime::config"],[149,"std::path"],[150,"serde::de"],[151,"core::future::future"],[152,"futures_core::stream"],[153,"serde::ser"],[154,"serde::ser"]],"d":["The specific record.","A view model of Ayaka. It manages all settings and …","The global record.","Loading the global records.","Loading the records.","Loading the settings.","The game is loaded.","The status when calling GameViewModel::open_game.","The settings of the game.","A settings manager trait.","Get the avaliable locales from paragraphs.","Volume of background music.","","","","","","","","","","","","","","","","","","","The Context, should be called after Self::open_game.","The Context, should be called after Self::open_game.","Get the current action by language.","Get the current action by language and secondary language.","Get the current history by language and secondary language.","Get the current RawContext.","Get the current paragraph title.","Determine if current run has been visited.","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The loaded GlobalRecord.","The loaded GlobalRecord.","Get the global record path.","The history actions.","Start a game with record.","Start a game with the index of records.","Start a new game. The state of the model after this call …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The display language.","Get the RawContext object from the last Action in the …","Get the RawContext object from the last Action in the …","Load a file from specified path.","Load GlobalRecord.","Load GlobalRecord.","Load all ActionRecord.","Load all ActionRecord.","Load Settings.","Load Settings.","Create a GameViewModel with a settings manager.","Step back to the last run.","Step to the next run.","Open the game with context.","The current ActionRecord.","The key is the tag of paragraphs, the value is the maximum …","Get the record path from index.","The loaded ActionRecords.","Get an iterator of record paths.","Get the last action text from each record.","Save current ActionRecord to the records.","Save a file to specified path.","Save GlobalRecord.","Save GlobalRecord.","Save all ActionRecord.","Save all ActionRecord.","Save Settings.","Save Settings.","Save all settings and records.","","","","","Set the Settings.","The loaded Settings.","Get the settings path.","The secondary display language.","Choose a switch item by index.","","","","","","","","","","","","","","","","","","","","Update the global record with the latest RawContext.","Volume of videos.","Determine if an RawContext has been visited, by the …","Volume of voices.","","","","",""],"i":[0,0,0,10,10,10,10,0,0,0,1,7,1,7,8,9,10,1,7,8,9,10,7,8,9,10,7,8,9,10,1,1,1,1,1,1,1,1,7,8,9,7,8,9,10,10,10,10,7,8,9,10,1,7,8,9,10,1,1,3,9,1,1,1,1,7,8,9,10,7,9,9,3,3,3,3,3,3,3,1,1,1,1,1,8,3,1,3,1,1,3,3,3,3,3,3,3,1,7,8,9,10,1,1,3,7,1,7,8,9,10,1,7,8,9,10,1,7,8,9,10,1,7,8,9,10,8,7,8,7,1,7,8,9,10],"f":[0,0,0,0,0,0,0,0,0,0,[[[1,[-1,-2]]],[[0,[2]]],3,[4,5,6]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[7,7],[8,8],[9,9],[10,10],[[-1,-2],11,[],[]],[[-1,-2],11,[],[]],[[-1,-2],11,[],[]],[[-1,-2],11,[],[]],[[[1,[-1,-2]]],[[12,[-2]]],3,[4,5,6]],[[[1,[-1,-2]]],[[12,[-2]]],3,[4,5,6]],[[[1,[-1,-2]]],[[14,[13]]],3,[4,5,6]],[[[1,[-1,-2]]],[[14,[[11,[13,[14,[13]]]]]]],3,[4,5,6]],[[[1,[-1,-2]]],[[0,[15]]],3,[4,5,6]],[[[1,[-1,-2]]],[[14,[16]]],3,[4,5,6]],[[[1,[-1,-2]]],[[14,[17]]],3,[4,5,6]],[[[1,[-1,-2]]],18,3,[4,5,6]],[[],7],[[],8],[[],9],[-1,[[19,[7]]],20],[-1,[[19,[8]]],20],[-1,[[19,[9]]],20],[[10,10],18],[[-1,-2],18,[],[]],[[-1,-2],18,[],[]],[[-1,-2],18,[],[]],[[7,21],22],[[8,21],22],[[9,21],22],[[10,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[1,[-1,-2]]],8,3,[4,5,6]],[[[1,[-1,-2]]],8,3,[4,5,6]],[[-1,23],[[25,[24]]],[]],0,[[[1,[-1,-2]],9],11,3,[4,5,6]],[[[1,[-1,-2]],26],11,3,[4,5,6]],[[[1,[-1,-2]]],11,3,[4,5,6]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[9,[[14,[16]]]],[[9,27],16],[[-1,-2],[[25,[-3]]],[],[[29,[28]]],30],[[-1,23],[[25,[8]]],[]],[[-1,23],[[25,[8]]],[]],[[-1,23],[[25,[[31,[9]]]]],[]],[[-1,23],[[25,[[31,[9]]]]],[]],[-1,[[25,[7]]],[]],[-1,[[25,[7]]],[]],[-1,[[1,[-1,-2]]],3,[4,5,6]],[[[1,[-1,-2]]],18,3,[4,5,6]],[[[1,[-1,-2]]],18,3,[4,5,6]],[[[1,[-1,-2]],[12,[-2]]],[[0,[32,33]]],3,[4,5,6]],[[[1,[-1,-2]]],9,3,[4,5,6]],0,[[-1,23,26],[[25,[24]]],[]],[[[1,[-1,-2]]],[[34,[9]]],3,[4,5,6]],[[-1,23],[[25,[[0,[2]]]]],[]],[[[1,[-1,-2]]],[[0,[2]]],3,[4,5,6]],[[[1,[-1,-2]],26],11,3,[4,5,6]],[[-1,-2,-3,18],[[25,[11]]],[],[[29,[28]]],35],[[-1,23,8],[[25,[11]]],[]],[[-1,23,8],[[25,[11]]],[]],[[-1,23,[34,[9]]],[[25,[11]]],[]],[[-1,23,[34,[9]]],[[25,[11]]],[]],[[-1,7],[[25,[11]]],[]],[[-1,7],[[25,[11]]],[]],[[[1,[-1,-2]]],[[25,[11]]],3,[4,5,6]],[[7,-1],19,36],[[8,-1],19,36],[[9,-1],19,36],[[10,-1],19,36],[[[1,[-1,-2]],7],11,3,[4,5,6]],[[[1,[-1,-2]]],7,3,[4,5,6]],[-1,[[25,[24]]],[]],0,[[[1,[-1,-2]],26],11,3,[4,5,6]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,[[19,[-2]]],[],[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[-1,37,[]],[[8,16],11],0,[[8,16],18],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"GameViewModel",0],[8,"Iterator",135],[8,"SettingsManager",0],[8,"RawModule",136],[8,"Send",137],[8,"Sync",137],[3,"Settings",0],[3,"GlobalRecord",0],[3,"ActionRecord",0],[4,"OpenGameStatus",0],[15,"tuple"],[3,"Context",138],[4,"Action",139],[4,"Option",140],[8,"DoubleEndedIterator",141],[3,"RawContext",139],[3,"String",142],[15,"bool"],[4,"Result",143],[8,"Deserializer",144],[3,"Formatter",145],[6,"Result",145],[15,"str"],[3,"PathBuf",146],[6,"Result",147],[15,"usize"],[3,"Game",148],[3,"Path",146],[8,"AsRef",149],[8,"DeserializeOwned",144],[3,"Vec",150],[8,"Future",151],[8,"Stream",152],[15,"slice"],[8,"Serialize",153],[8,"Serializer",153],[3,"TypeId",154]],"b":[]},\ -"ayaka_plugin":{"doc":"Base crate for plugin runtimes.","t":"RRQQIQIQRDICCLLKKLKLKLLKLKKLLLLKL","n":["ABI_ALLOC_NAME","ABI_FREE_NAME","Config","Func","Linker","Linker","LinkerHandle","LinkerHandle","MEMORY_NAME","PluginModule","RawModule","Result","anyhow","borrow","borrow_mut","call","call","call","create","from","import","inner","into","new","new","slice","slice_mut","try_from","try_into","type_id","wrap","wrap_raw","wrap_with"],"q":[[0,"ayaka_plugin"],[33,"anyhow"],[34,"core::ops::function"],[35,"serde::ser"],[36,"serde::de"],[37,"alloc::string"],[38,"std::collections::hash::map"],[39,"core::convert"],[40,"core::result"],[41,"core::any"],[42,"core::ops::function"],[43,"core::marker"]],"d":["The exported method __abi_alloc.","The exported method __abi_free.","Config type to create the linker.","The import function type.","Represents the linker of plugin modules.","The linker type that can create raw module.","Represents a handle of linker.","The linker handle type.","The default exported memory name.","High-level wrapper for plugin module.","Represents a raw plugin module.","","","","","Calls a method by name.","Call methods of a module.","Call a method by name.","Create a raw module from binary.","Returns the argument unchanged.","Import functions by namespace and names.","Get inner raw module.","Calls U::from(self).","Create the linker.","Creates a wrapper on raw module.","Get memory slice.","Get memory mutable slice.","","","","Wrap a function with args.","Wrap a function with args in bytes.","Wrap a function with args and linker handle."],"i":[0,0,20,7,0,7,0,7,0,0,0,0,0,6,6,7,21,6,20,6,20,6,6,20,6,21,21,6,6,6,20,20,20],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[-1,1,[3,[2]],-2],[[4,[-3]]],[],5,[]],[[-1,-2,1,[3,[2]],-3],[[4,[-4]]],[],[],5,[]],[[[6,[-1]],1,-2],[[4,[-3]]],7,8,9],[[-1,[3,[2]]],[[4,[-2]]],[],[]],[-1,-1,[]],[[-1,-2,[11,[10]]],[[4,[12]]],[],[[13,[10]]]],[[[6,[-1]]],-1,7],[-1,-2,[],[]],[[],[[4,[-1]]],[]],[-1,[[6,[-1]]],7],[[-1,14,14,-2],-3,[],5,[]],[[-1,14,14,-2],-3,[],5,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,16,[]],[[-1,-2],[],[],[17,18,19]],[[-1,-2],[],[],[17,18,19]],[[-1,-2],[],[],[17,18,19]]],"c":[],"p":[[15,"str"],[15,"u8"],[15,"slice"],[6,"Result",33],[8,"FnOnce",34],[3,"PluginModule",0],[8,"RawModule",0],[8,"Serialize",35],[8,"DeserializeOwned",36],[3,"String",37],[3,"HashMap",38],[15,"tuple"],[8,"Into",39],[15,"i32"],[4,"Result",40],[3,"TypeId",41],[8,"Fn",34],[8,"Send",42],[8,"Sync",42],[8,"Linker",0],[8,"LinkerHandle",0]],"b":[]},\ -"ayaka_plugin_wasmer":{"doc":"Wasmer-based plugin backend.","t":"DDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["WasmerFunction","WasmerLinker","WasmerLinkerHandle","WasmerModule","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","call","clone","clone_into","create","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","from","from","from","from","import","init","init","init","init","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","new","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","slice","slice_mut","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","wrap_raw"],"q":[[0,"ayaka_plugin_wasmer"],[80,"anyhow"],[81,"core::ops::function"],[82,"rkyv::with"],[83,"core::result"],[84,"alloc::string"],[85,"std::collections::hash::map"],[86,"core::convert"],[87,"core::alloc::layout"],[88,"core::alloc::layout"],[89,"alloc::alloc"],[90,"alloc::boxed"],[91,"core::any"],[92,"core::marker"]],"d":["Represents a wrapped wasmer function.","A Wasmer Store with some imports.","A Wasmer StoreMut.","A Wasmer Instance.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,1,10,7,8,1,10,7,8,1,7,8,8,10,1,10,7,8,1,10,7,8,1,10,7,8,1,10,7,8,1,10,7,8,10,1,10,7,8,1,10,7,8,1,10,7,8,10,1,10,7,8,7,7,8,1,10,7,8,1,10,7,8,1,10,7,8,1,10,8,1,10,8,1,10,8,10],"f":[0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2,[4,[3]],-1],[[5,[-2]]],6,[]],[[7,1,2,[4,[3]],-1],[[5,[-2]]],6,[]],[8,8],[[-1,-2],9,[],[]],[[10,[4,[3]]],[[5,[1]]]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[11,-1,[]],[[-1,-2],[[13,[[12,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[13,[[12,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[13,[[12,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[13,[[12,[-3,-4]]]]],[],[],[],[]],[11,9],[11,9],[11,9],[11,9],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[10,-1,[15,[14,8]]],[[5,[9]]],[[16,[14]]]],[[],11],[[],11],[[],11],[[],11],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[13,[17,18]]]],[[],[[13,[17,18]]]],[[],[[13,[17,18]]]],[[],[[13,[17,18]]]],[9,[[5,[10]]]],[[]],[[]],[[]],[[]],[[7,19,19,-1],-2,6,[]],[[7,19,19,-1],-2,6,[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[[[22,[-1,21]]],[[22,[23,21]]],[]],[[[22,[-1,21]]],[[22,[23,21]]],[]],[[[22,[-1,21]]],[[22,[23,21]]],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[[10,-1],8,[24,25,26]]],"c":[],"p":[[3,"WasmerModule",0],[15,"str"],[15,"u8"],[15,"slice"],[6,"Result",80],[8,"FnOnce",81],[3,"WasmerLinkerHandle",0],[3,"WasmerFunction",0],[15,"tuple"],[3,"WasmerLinker",0],[15,"usize"],[3,"With",82],[4,"Result",83],[3,"String",84],[3,"HashMap",85],[8,"Into",86],[3,"Layout",87],[3,"LayoutError",87],[15,"i32"],[3,"TypeId",88],[3,"Global",89],[3,"Box",90],[8,"Any",88],[8,"Fn",81],[8,"Send",91],[8,"Sync",91]],"b":[]},\ -"ayaka_plugin_wasmi":{"doc":"Wasmi-based plugin backend.","t":"DDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["WasmiLinker","WasmiLinkerHandle","WasmiModule","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","call","call","create","from","from","from","import","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","slice","slice_mut","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","wrap_raw"],"q":[[0,"ayaka_plugin_wasmi"],[47,"core::any"],[48,"anyhow"],[49,"core::ops::function"],[50,"alloc::string"],[51,"wasmi::func"],[52,"std::collections::hash::map"],[53,"core::convert"],[54,"alloc::alloc"],[55,"alloc::boxed"],[56,"alloc::sync"],[57,"alloc::rc"],[58,"core::result"],[59,"core::any"],[60,"core::marker"]],"d":["A Wasmi Store with Linker.","A Wasmi StoreContextMut.","A Wasmi Instance.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,2,9,8,2,9,8,2,9,8,2,9,8,2,8,9,2,9,8,9,2,9,8,2,9,8,2,9,8,2,9,8,9,8,8,2,9,8,2,9,8,2,9,8,9],"f":[0,0,0,[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[2,3,[5,[4]],-1],[[6,[-2]]],7,[]],[[8,2,3,[5,[4]],-1],[[6,[-2]]],7,[]],[[9,[5,[4]]],[[6,[2]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[9,-1,[12,[10,11]]],[[6,[13]]],[[14,[10]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[16,[-1,15]]],[[16,[1,15]]],[]],[[[16,[-1,15]]],[[16,[1,15]]],[]],[[[16,[-1,15]]],[[16,[1,15]]],[]],[[[17,[-1,15]]],[[17,[1,15]]],[]],[[[17,[-1,15]]],[[17,[1,15]]],[]],[[[17,[-1,15]]],[[17,[1,15]]],[]],[[[18,[-1,15]]],[[18,[1,15]]],[]],[[[18,[-1,15]]],[[18,[1,15]]],[]],[[[18,[-1,15]]],[[18,[1,15]]],[]],[13,[[6,[9]]]],[[8,19,19,-1],-2,7,[]],[[8,19,19,-1],-2,7,[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,21,[]],[-1,21,[]],[-1,21,[]],[[9,-1],11,[22,23,24]]],"c":[],"p":[[8,"Any",47],[3,"WasmiModule",0],[15,"str"],[15,"u8"],[15,"slice"],[6,"Result",48],[8,"FnOnce",49],[3,"WasmiLinkerHandle",0],[3,"WasmiLinker",0],[3,"String",50],[3,"Func",51],[3,"HashMap",52],[15,"tuple"],[8,"Into",53],[3,"Global",54],[3,"Box",55],[3,"Arc",56],[3,"Rc",57],[15,"i32"],[4,"Result",58],[3,"TypeId",47],[8,"Fn",49],[8,"Send",59],[8,"Sync",59]],"b":[]},\ -"ayaka_plugin_wasmtime":{"doc":"Wasmtime-based plugin backend.","t":"DDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["WasmtimeLinker","WasmtimeLinkerHandle","WasmtimeModule","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","call","call","create","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","import","init","init","init","into","into","into","new","slice","slice_mut","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","wrap_raw"],"q":[[0,"ayaka_plugin_wasmtime"],[44,"anyhow"],[45,"core::ops::function"],[46,"alloc::string"],[47,"wasmtime::func"],[48,"std::collections::hash::map"],[49,"core::convert"],[50,"core::result"],[51,"core::any"],[52,"core::ops::function"],[53,"core::marker"]],"d":["A Wasmtime Store with Linker.","A Wasmtime StoreContextMut.","A Wasmtime Instance.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","",""],"i":[0,0,0,1,8,7,1,8,7,1,7,8,1,8,7,1,8,7,1,8,7,1,8,7,8,1,8,7,1,8,7,8,7,7,1,8,7,1,8,7,1,8,7,8],"f":[0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2,[4,[3]],-1],[[5,[-2]]],6,[]],[[7,1,2,[4,[3]],-1],[[5,[-2]]],6,[]],[[8,[4,[3]]],[[5,[1]]]],[9,-1,[]],[9,-1,[]],[9,-1,[]],[9,-1,[]],[9,-1,[]],[9,-1,[]],[9,10],[9,10],[9,10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[8,-1,[13,[11,12]]],[[5,[10]]],[[14,[11]]]],[[],9],[[],9],[[],9],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[10,[[5,[8]]]],[[7,15,15,-1],-2,6,[]],[[7,15,15,-1],-2,6,[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,[[16,[-2]]],[],[]],[-1,17,[]],[-1,17,[]],[-1,17,[]],[[8,-1],12,[18,19,20]]],"c":[],"p":[[3,"WasmtimeModule",0],[15,"str"],[15,"u8"],[15,"slice"],[6,"Result",44],[8,"FnOnce",45],[3,"WasmtimeLinkerHandle",0],[3,"WasmtimeLinker",0],[15,"usize"],[15,"tuple"],[3,"String",46],[3,"Func",47],[3,"HashMap",48],[8,"Into",49],[15,"i32"],[4,"Result",50],[3,"TypeId",51],[8,"Fn",45],[8,"Send",52],[8,"Sync",52]],"b":[]},\ -"ayaka_primitive":{"doc":"Primitive types.","t":"NNNNNNENNENNNENDNNNELLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLM","n":["Bool","Bool","Char","Cmd","Custom","Empty","Line","Num","Num","RawValue","Str","Str","Str","SubText","Switch","Text","Text","Unit","Unit","ValueType","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ch_alias","ch_tag","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_bool","get_num","get_str","get_type","hash","into","into","into","into","into","into_str","partial_cmp","partial_cmp","serialize","sub_texts","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","switches"],"q":[[0,"ayaka_primitive"],[100,"ayaka_primitive::Line"],[101,"core::cmp"],[102,"core::result"],[103,"serde::de"],[104,"core::fmt"],[105,"core::fmt"],[106,"core::hash"],[107,"alloc::string"],[108,"core::option"],[109,"serde::ser"],[110,"core::any"]],"d":["The boolean type.","The boolean type.","Special character","A TeX-like command in the text.","Custom line types.","An empty line, usually fallbacks to the base language one.","Represents a line in a prograph.","The number type. It’s i64.","The number type.","The basic and only type used in scripts.","The string type.","The string type.","Raw texts.","A part of a line, either some texts or a command.","Some switches.","A collection of SubText.","A text line.","The unit type. It is empty, just like None or [()] in Rust.","The unit type.","Represents the type of RawValue.","","","","","","","","","","","The alias of current character.","The tag of current character.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Gets a boolean from the value:","Gets a number from the value:","Gets a string from the value:","Gets ValueType.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets a string from the value:","","","","The texts.","","","","","","","","","","","","","","","","","","","","","","The switch items."],"i":[2,3,5,5,1,1,0,2,3,0,2,3,5,0,1,0,1,2,3,0,1,2,3,4,5,1,2,3,4,5,4,4,1,2,3,4,5,1,2,3,4,5,2,3,2,4,1,2,4,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,2,2,2,2,2,1,2,3,4,5,2,2,3,2,4,1,2,3,4,5,1,2,3,4,4,5,1,2,3,4,5,1,2,3,4,5,21],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[1,1],[2,2],[3,3],[4,4],[5,5],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[2,2],7],[[3,3],7],[[],2],[[],4],[-1,[[8,[1]]],9],[-1,[[8,[2]]],9],[-1,[[8,[4]]],9],[[1,1],10],[[2,2],10],[[3,3],10],[[4,4],10],[[5,5],10],[[1,11],12],[[2,11],12],[[3,11],12],[[4,11],12],[[5,11],12],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[2,10],[2,13],[2,[[15,[14]]]],[2,3],[[2,-1],6,16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[2,17],[[2,2],[[18,[7]]]],[[3,3],[[18,[7]]]],[[2,-1],8,19],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[14,[[8,[4]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],0],"c":[],"p":[[4,"Line",0],[4,"RawValue",0],[4,"ValueType",0],[3,"Text",0],[4,"SubText",0],[15,"tuple"],[4,"Ordering",101],[4,"Result",102],[8,"Deserializer",103],[15,"bool"],[3,"Formatter",104],[6,"Result",104],[15,"i64"],[15,"str"],[4,"Cow",105],[8,"Hasher",106],[3,"String",107],[4,"Option",108],[8,"Serializer",109],[3,"TypeId",110],[13,"Switch",100]],"b":[]},\ -"ayaka_runtime":{"doc":"The runtime of Ayaka project.","t":"DDDNDDNCNNNNEDDCCCCMMLLLLLLLLLLLLLLLLLLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOCMLMLLMMAMMMMLLLLMLLMMMMLLLLLLLLLLLLLLLLLLLLLLLLLFCLLLLLLLLLLNNEDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["Context","ContextBuilder","ContextBuilderWithPaths","CreateRuntime","Game","GameConfig","GamePlugin","Linker","LoadParagraph","LoadPlugin","LoadProfile","LoadResource","OpenStatus","Paragraph","PluginConfig","RawModule","StreamExt","TryStreamExt","anyhow","author","base_lang","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","clone","clone_into","config","current_paragraph_title","default","default","deserialize","deserialize","deserialize","dir","eq","equivalent","equivalent","equivalent","find_para","find_para_fallback","find_res_fallback","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","game","get_action","into","into","into","into","into","into","into","into","locale","log","modules","new","next","next_run","open","paras","paras","plugin","plugins","props","res","res","root_path","serialize","set_context","set_start_context","start","start_context","switch","tag","texts","title","title","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","version","vfs","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_paths","with_vfs","CreateEngine","LoadPlugin","LoadStatus","Module","Runtime","action_modules","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","dispatch_line","dispatch_text","fmt","from","from","from","game_modules","into","into","into","line_module","load","module","plugin_type","process_action","process_game","text_module","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"ayaka_runtime"],[140,"ayaka_runtime::plugin"],[184,"ayaka_primitive::text"],[185,"alloc::string"],[186,"anyhow"],[187,"ayaka_plugin"],[188,"core::marker"],[189,"core::marker"],[190,"core::result"],[191,"serde::de"],[192,"fallback"],[193,"ayaka_bindings_types::config"],[194,"core::fmt"],[195,"core::fmt"],[196,"core::future::future"],[197,"futures_core::stream"],[198,"vfs::path"],[199,"serde::ser"],[200,"core::any"],[201,"std::path"],[202,"core::convert"],[203,"core::iter::traits::iterator"],[204,"ayaka_bindings_types::plugin"]],"d":["The game running context.","Builder of Context.","Builder of Context.","Start creating plugin runtime.","The full Ayaka game. It consists of global config and all …","The Ayaka config. It should be deserialized from a YAML …","Executing game plugins.","","Loading the paragraphs.","Loading the plugin.","Start loading config file.","Loading the resources.","The open status when creating Context.","The paragraph in a paragraph config.","The plugin config.","","","","","The author of the game.","The base language. If the runtime fails to choose a best …","","","","","","","","","","","","","","","","","Call the part of script with this context.","","","The game config.","Get current paragraph title.","","","","","","The directory of the plugins.","","","","","Find a paragraph by tag, with specified locale.","Find a paragraph by tag, with specified locale.","Find the resource map with specified locale.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","The inner Game object.","Get the Action from Locale and RawContext.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","A macro allowing for compile-time construction of valid …","","The names of the plugins, without extension.","Create a new ContextBuilder with frontend type and plugin …","The next paragraph. If None, the game meets the end.","Step to next line.","Open the config and load the Context.","The paragraphs, indexed by locale. The inner is the …","The paragraphs path.","The plugin utilities.","The plugin config.","The global game properties.","The resources, indexed by locale.","The resources path.","The root path of config.","","Initialize the RawContext with given record.","Initialize the RawContext at the start of the game.","The start paragraph tag.","Create a RawContext at the start of the game.","Choose a switch item by index, start by 0.","The tag and key of a paragraph. They are referenced in next…","The texts. They will be parsed into ayaka_primitive::Text …","The title of a paragraph. It can be None, but better with …","The title of the game.","","","","","","","","","","","","","","","","","","","","","","","","","","Get the version of Ayaka runtime. This version string is …","","","","","","","","","","Open a context with config paths.","Open a context with config paths.","Start creating the engine.","Loading the plugin.","The load status of Runtime.","The plugin module with high-level interfaces.","The plugin runtime.","Iterates action modules.","","","","","","","","","Calls a custom command in the line plugin.","Calls a custom command in the text plugin.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterates game modules.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets line module from command.","Load plugins from specific directory and plugin names.","Gets module from name.","Gets the PluginType.","Processes Action in action plugin.","Processes Game when opening the config file.","Gets text module from command.","","","","","","","","","","","","",""],"i":[0,0,0,8,0,0,8,0,8,8,8,8,0,0,0,0,0,0,0,11,11,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,1,8,8,17,1,11,12,13,11,12,12,8,8,8,8,17,17,17,13,11,12,8,17,1,27,28,13,11,12,8,8,1,1,17,1,27,28,13,11,12,8,0,0,12,27,13,1,28,17,11,0,11,11,17,11,1,8,1,1,11,17,1,13,13,13,11,8,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,0,0,17,1,27,28,13,11,12,8,27,27,23,23,0,0,0,38,40,38,23,40,38,23,23,23,40,40,23,40,38,23,38,40,38,23,38,38,38,40,40,40,38,23,40,38,23,40,38,23,40,38,23,40,38,23],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]],2],[[4,[3]]],[5,6,7]],[8,8],[[-1,-2],9,[],[]],0,0,[[],11],[[],12],[-1,[[14,[13]]],15],[-1,[[14,[11]]],15],[-1,[[14,[12]]],15],0,[[8,8],16],[[-1,-2],16,[],[]],[[-1,-2],16,[],[]],[[-1,-2],16,[],[]],0,0,0,[[13,21],22],[[11,21],22],[[12,21],22],[[8,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[23,8],[-1,-1,[]],[[[1,[-1]]],17,[5,6,7]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[26,[[27,[-1]]],[5,6,7]],0,[[[1,[-1]]],[[10,[24]]],[5,6,7]],[[[28,[-1]]],[[0,[29,30]]],[5,6,7]],0,0,0,0,0,0,0,[[[1,[-1]]],31,[5,6,7]],[[8,-1],14,32],[[[1,[-1]],24],9,[5,6,7]],[[[1,[-1]]],9,[5,6,7]],0,[17,24],[[[1,[-1]],33],9,[5,6,7]],0,0,0,0,[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[[],18],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[27,[-1]],[35,[-2]]],[[4,[[28,[-1]]]]],[5,6,7],[[37,[36]]]],[[[27,[-1]],[35,[31]]],[[4,[[28,[-1]]]]],[5,6,7]],0,0,0,0,0,[[[38,[-1]]],[[0,[39]]],[5,6,7]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[23,23],[[-1,-2],9,[],[]],[[[40,[-1]],18,41],[[4,[42]]],5],[[[40,[-1]],18,[35,[3]],43],[[4,[44]]],5],[[23,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[38,[-1]]],[[0,[39]]],[5,6,7]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[38,[-1]],18],[[10,[[40,[-1]]]]],[5,6,7]],[[-1,31,[35,[-2]]],[[0,[29,30]]],[[37,[18]]],[[37,[18]]]],[[[38,[-1]],18],[[10,[[40,[-1]]]]],[5,6,7]],[[[40,[-1]]],[[4,[45]]],5],[[[40,[-1]],46],[[4,[47]]],5],[[[40,[-1]],48],[[4,[49]]],5],[[[38,[-1]],18],[[10,[[40,[-1]]]]],[5,6,7]],[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,34,[]],[-1,34,[]],[-1,34,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[3,"Context",0],[3,"Text",184],[3,"String",185],[6,"Result",186],[8,"RawModule",187],[8,"Send",188],[8,"Sync",188],[4,"OpenStatus",0],[15,"tuple"],[4,"Option",189],[3,"GameConfig",0],[3,"PluginConfig",0],[3,"Paragraph",0],[4,"Result",190],[8,"Deserializer",191],[15,"bool"],[3,"Game",0],[15,"str"],[3,"Fallback",192],[6,"VarMap",193],[3,"Formatter",194],[6,"Result",194],[4,"LoadStatus",140],[3,"RawContext",193],[4,"Action",193],[4,"FrontendType",195],[3,"ContextBuilder",0],[3,"ContextBuilderWithPaths",0],[8,"Future",196],[8,"Stream",197],[3,"VfsPath",198],[8,"Serializer",199],[15,"usize"],[3,"TypeId",200],[15,"slice"],[3,"Path",201],[8,"AsRef",202],[3,"Runtime",140],[8,"Iterator",203],[3,"Module",140],[3,"LineProcessContextRef",195],[3,"LineProcessResult",195],[3,"TextProcessContextRef",195],[3,"TextProcessResult",195],[3,"PluginType",195],[3,"ActionProcessContextRef",195],[3,"ActionProcessResult",195],[3,"GameProcessContextRef",195],[3,"GameProcessResult",195]],"b":[]},\ -"ayaka_script":{"doc":"The script parsers.","t":"NNNNNENNDNNNEDNNNNNENNNNNNNNNNDDCENDNENECNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["Add","And","And","Assign","Binary","BinaryOp","Call","Const","ConstParser","Ctx","Div","Eq","Expr","ExprParser","Ge","Gt","Inplace","Le","Logic","LogicBinaryOp","Lt","Minus","Mod","Mul","Negative","Neq","Not","Or","Or","Positive","Program","ProgramParser","RawValue","Ref","Ref","RefParser","Unary","UnaryOp","Val","ValBinaryOp","ValueType","Var","Xor","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_str","into","into","into","into","into","into","into","into","into","into","into","new","new","new","new","parse","parse","parse","parse","serialize","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"ayaka_script"],[179,"core::result"],[180,"serde::de"],[181,"core::fmt"],[182,"core::fmt"],[183,"lalrpop_util::lexer"],[184,"lalrpop_util"],[185,"serde::ser"],[186,"core::any"]],"d":["+","&","&&","Assignment.","A binary operation.","Binary operations.","A call to a function.","A const value.","","A context variable. It is stored in the context. The …","/","==","An expression.","",">=",">","Inplace value operations.","<=","Logical operations.","Logical operations.","<","-","%","*","-","!=","!","|","||","+","A full script, a collection of expressions.","","","Reference of a variable.","A reference to a variable.","","A unary operation.","Unary operations.","Value operations.","Value binary operations.","","A local variable. It is only accessible in current program.","^","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[5,5,6,4,2,0,2,2,0,7,5,6,0,0,6,6,4,6,4,0,6,5,5,5,3,6,3,5,6,3,0,0,0,0,2,0,2,0,4,0,0,7,5,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,1,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,15,16,17,18,1,2,3,4,5,6,7,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[],1],[-1,[[9,[1]]],10],[-1,[[9,[2]]],10],[-1,[[9,[3]]],10],[-1,[[9,[4]]],10],[-1,[[9,[5]]],10],[-1,[[9,[6]]],10],[-1,[[9,[7]]],10],[[1,1],11],[[2,2],11],[[3,3],11],[[4,4],11],[[5,5],11],[[6,6],11],[[7,7],11],[[1,12],13],[[2,12],13],[[3,12],13],[[4,12],13],[[5,12],13],[[6,12],13],[[7,12],13],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[14,[[9,[1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],15],[[],16],[[],17],[[],18],[[15,14],[[9,[19,[22,[20,21,14]]]]]],[[16,14],[[9,[2,[22,[20,21,14]]]]]],[[17,14],[[9,[1,[22,[20,21,14]]]]]],[[18,14],[[9,[7,[22,[20,21,14]]]]]],[[1,-1],9,23],[[2,-1],9,23],[[3,-1],9,23],[[4,-1],9,23],[[5,-1],9,23],[[6,-1],9,23],[[7,-1],9,23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]]],"c":[],"p":[[3,"Program",0],[4,"Expr",0],[4,"UnaryOp",0],[4,"BinaryOp",0],[4,"ValBinaryOp",0],[4,"LogicBinaryOp",0],[4,"Ref",0],[15,"tuple"],[4,"Result",179],[8,"Deserializer",180],[15,"bool"],[3,"Formatter",181],[6,"Result",181],[15,"str"],[3,"ConstParser",0],[3,"ExprParser",0],[3,"ProgramParser",0],[3,"RefParser",0],[4,"RawValue",182],[15,"usize"],[3,"Token",183],[4,"ParseError",184],[8,"Serializer",185],[3,"TypeId",186]],"b":[]}\ -}'); -if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; -if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; +var searchIndex = new Map(JSON.parse('[\ +["ayaka_bindings",{"doc":"","t":"EEXCXEEFNNNNNNNNNNNNNNNNNN","n":["RawValue","ValueType","export","fs","import","log","vfs","HostFS","append_file","borrow","borrow_mut","create_dir","create_file","default","exists","fmt","from","into","metadata","open_file","read_dir","remove_dir","remove_file","try_from","try_into","type_id"],"q":[[0,"ayaka_bindings"],[7,"ayaka_bindings::fs"],[26,"std::io"],[27,"alloc::boxed"],[28,"vfs::error"],[29,"core::fmt"],[30,"core::fmt"],[31,"vfs::path"],[32,"core::result"],[33,"core::any"]],"d":["","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"f":[0,0,0,0,0,0,0,0,[[1,2],[[5,[[4,[3]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2],[[5,[6]]]],[[1,2],[[5,[[4,[3]]]]]],[[],1],[[1,2],[[5,[7]]]],[[1,8],9],[-1,-1,[]],[-1,-2,[],[]],[[1,2],[[5,[10]]]],[[1,2],[[5,[[4,[11]]]]]],[[1,2],[[5,[[4,[12]]]]]],[[1,2],[[5,[6]]]],[[1,2],[[5,[6]]]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]]],"c":[],"p":[[5,"HostFS",7],[1,"str"],[10,"Write",26],[5,"Box",27],[8,"VfsResult",28],[1,"tuple"],[1,"bool"],[5,"Formatter",29],[8,"Result",29],[5,"VfsMetadata",30],[10,"SeekAndRead",30],[10,"Iterator",31],[6,"Result",32],[5,"TypeId",33]],"b":[]}],\ +["ayaka_bindings_impl",{"doc":"","t":"XX","n":["export","import"],"q":[[0,"ayaka_bindings_impl"]],"d":["",""],"i":[0,0],"f":[0,0],"c":[],"p":[],"b":[]}],\ +["ayaka_bindings_types",{"doc":"The types used in both runtime and plugins.","t":"GFFGFPPPPPPPPFGGGFFPPFFFFFPFPPPFFINOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONOOOONNNNNNNNNNNNNNNNNNNNONOOOOOONNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["Action","ActionProcessContext","ActionProcessResult","ActionSubText","ActionText","Block","Chars","Current","Custom","Dir","Empty","End","File","FileMetadata","FileSeekFrom","FileType","FrontendType","GameProcessContext","GameProcessResult","Html","Latex","LineProcessContext","LineProcessResult","PluginType","PluginTypeBuilder","RawContext","Start","Switch","Switches","Text","Text","TextProcessContext","TextProcessResult","VarMap","action","action","action","action","as_str","author","block","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","ch_key","character","chars","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","ctx","ctx","cur_act","cur_base_para","cur_para","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","enabled","eq","eq","eq","eq","eq","eq","file_type","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","frontend","frontend","frontend","game","game","game_props","game_props","game_props","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_string","len","line","line","locals","locals","props","props","props","push_back_block","push_back_chars","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","text","text","text","text","text","title","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vars","vars"],"q":[[0,"ayaka_bindings_types"],[313,"alloc::string"],[314,"core::convert"],[315,"core::result"],[316,"serde::de"],[317,"core::fmt"],[318,"core::fmt"],[319,"vfs::path"],[320,"core::iter::traits::collect"],[321,"alloc::borrow"],[322,"serde::ser"],[323,"core::any"]],"d":["The full action information in one line of config. It …","The argument to action plugin.","The result of action plugins. See examples at …","The unit of one line in an action.","The text is a VecDeque<ActionSubText>. The ActionSubText …","Characters printed together. Usually they are HTML tags or …","Characters printed one by one. Usually they are meaningful …","Seek from current position.","A custom action.","A directory.","An empty action usually means an exec or custom action.","Seek from end.","A file.","File metadata.","A SeekFrom type which implements serde.","Type of a file.","The type of current frontend.","The argument to game plugin.","The result of game plugins. See examples at …","The frontend renders HTML.","The frontend renders LaTeX.","The argument to line plugin.","The result of commands in line plugins. See examples at …","The bit flags to describe plugin type.","The builder of PluginType.","The serializable context.","Seek from start.","One switch in the switches of an Action.","A switch action, display switches and let player to choose.","The frontend only accepts raw texts.","A text action, display some texts.","The argument to text plugin.","The result of commands in text plugins. See examples at …","A map from variable name to RawValue.","An action plugin.","The action plugin. This plugin processes the action after …","The current action.","The processed action text.","Gets a reference of str.","The author of the game.","Creates ActionSubText::Block.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a PluginType.","Creates a PluginTypeBuilder instance to build a PluginType.","The key of current character.","The current character.","Creates ActionSubText::Chars.","","","","","","","","","","","","","","","","","","","The current context.","The current context.","Current text index.","Current base paragraph tag.","Current paragraph tag.","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether the switch is enabled.","","","","","","","Type of file.","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","The frontend type.","The frontend type.","The frontend type.","A game plugin.","The game plugin. This plugin processes the game properties …","The global properties of the game profile.","The global properties of the game profile.","The global properties of the game profile.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets the inner String.","Length of the file.","A line plugins, which provides custom line types.","The line plugin. The custom line types are dealt with this …","The updated variables.","Current local variables.","The global properties of the game.","The updated properties.","The full properties of the custom command.","Push the string as ActionSubText::Block to the back. If …","Push the string as ActionSubText::Chars to the back. If …","","","","","","","","","","","","","","","","","","","A text plugin, which provides commands.","The text plugin. The custom text commands are dealt with …","The lines to append.","The full texts.","The switch text.","The title of the game.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The temp variables.","The temp variables."],"i":[0,0,0,0,0,2,2,13,10,12,10,13,12,0,0,0,0,0,0,7,7,0,0,0,0,0,13,0,10,7,10,0,0,0,1,6,20,15,2,22,2,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,9,9,2,6,7,2,8,9,10,11,12,13,6,7,2,8,9,10,11,12,13,20,24,8,8,8,6,15,16,17,8,9,10,11,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,11,2,9,10,11,12,13,25,6,7,20,15,21,16,22,23,24,17,2,8,9,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,12,25,25,13,13,20,21,24,1,6,20,21,24,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,2,25,1,6,17,8,22,23,24,9,9,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,16,9,11,22,6,7,2,8,9,10,11,12,13,9,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,1,6,7,20,15,21,16,22,23,24,17,2,8,9,10,11,12,25,13,17,9],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,1],0,0,0,[2,3],0,[-1,2,[[5,[4]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[1,6],[[],1],0,0,[-1,2,[[5,[4]]]],[6,6],[7,7],[2,2],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,0,0,0,0,[[],6],[[],15],[[],16],[[],17],[[],8],[[],9],[[],10],[[],11],[-1,[[18,[6]]],19],[-1,[[18,[7]]],19],[-1,[[18,[20]]],19],[-1,[[18,[15]]],19],[-1,[[18,[21]]],19],[-1,[[18,[16]]],19],[-1,[[18,[22]]],19],[-1,[[18,[23]]],19],[-1,[[18,[24]]],19],[-1,[[18,[17]]],19],[-1,[[18,[2]]],19],[-1,[[18,[8]]],19],[-1,[[18,[9]]],19],[-1,[[18,[10]]],19],[-1,[[18,[11]]],19],[-1,[[18,[12]]],19],[-1,[[18,[25]]],19],[-1,[[18,[13]]],19],0,[[2,2],26],[[9,9],26],[[10,10],26],[[11,11],26],[[12,12],26],[[13,13],26],0,[[6,27],28],[[7,27],28],[[20,27],28],[[15,27],28],[[21,27],28],[[16,27],28],[[22,27],28],[[23,27],28],[[24,27],28],[[17,27],28],[[2,27],28],[[8,27],28],[[9,27],28],[[9,27],28],[[10,27],28],[[11,27],28],[[12,27],28],[[25,27],28],[[13,27],28],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[29,12],[30,25],[-1,-1,[]],[31,13],[-1,-1,[]],0,0,0,[1,1],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[2,4],0,[[1,-2],1,[[5,[4]]],[[33,[],[[32,[-1]]]]]],0,0,0,0,0,0,[[9,-1],14,[[5,[[34,[3]]]]]],[[9,-1],14,[[5,[[34,[3]]]]]],[[6,-1],18,35],[[7,-1],18,35],[[20,-1],18,35],[[15,-1],18,35],[[21,-1],18,35],[[16,-1],18,35],[[22,-1],18,35],[[23,-1],18,35],[[24,-1],18,35],[[17,-1],18,35],[[2,-1],18,35],[[8,-1],18,35],[[9,-1],18,35],[[10,-1],18,35],[[11,-1],18,35],[[12,-1],18,35],[[25,-1],18,35],[[13,-1],18,35],[[1,-2],1,[[5,[4]]],[[33,[],[[32,[-1]]]]]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,[[18,[-2]]],[],[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],0,0],"c":[],"p":[[5,"PluginTypeBuilder",0],[6,"ActionSubText",0],[1,"str"],[5,"String",313],[10,"Into",314],[5,"PluginType",0],[6,"FrontendType",0],[5,"RawContext",0],[5,"ActionText",0],[6,"Action",0],[5,"Switch",0],[6,"FileType",0],[6,"FileSeekFrom",0],[1,"tuple"],[5,"ActionProcessResult",0],[5,"TextProcessResult",0],[5,"LineProcessResult",0],[6,"Result",315],[10,"Deserializer",316],[5,"ActionProcessContext",0],[5,"TextProcessContext",0],[5,"GameProcessContext",0],[5,"GameProcessResult",0],[5,"LineProcessContext",0],[5,"FileMetadata",0],[1,"bool"],[5,"Formatter",317],[8,"Result",317],[6,"VfsFileType",318],[5,"VfsMetadata",318],[6,"SeekFrom",319],[17,"Item"],[10,"IntoIterator",320],[6,"Cow",321],[10,"Serializer",322],[5,"TypeId",323]],"b":[[153,"impl-Display-for-ActionText"],[154,"impl-Debug-for-ActionText"]]}],\ +["ayaka_model",{"doc":"The high level wrapper model of Ayaka.","t":"FFFPPPPGFKNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMONNNNNNNNONNMNNNNNNNNNNNOMNMNNMNNNNNNNNNNNNNMONNNNNNNNNNNNNNNNNNNNNONONNNNN","n":["ActionRecord","GameViewModel","GlobalRecord","LoadGlobalRecords","LoadRecords","LoadSettings","Loaded","OpenGameStatus","Settings","SettingsManager","avaliable_locale","bgm_volume","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","context","context_mut","current_action","current_actions","current_history","current_run","current_title","current_visited","default","default","default","deserialize","deserialize","deserialize","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","global_record","global_record_mut","global_record_path","history","init_context","init_context_by_index","init_new","into","into","into","into","into","lang","last_ctx","last_ctx_with_game","load_file","load_global_record","load_global_record","load_records","load_records","load_settings","load_settings","new","next_back_run","next_run","open_game","record","record","record_path","records","records_path","records_text","save_current_to","save_file","save_global_record","save_global_record","save_records","save_records","save_settings","save_settings","save_settings","serialize","serialize","serialize","serialize","set_settings","settings","settings_path","sub_lang","switch","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","video_volume","visited","voice_volume","vzip","vzip","vzip","vzip","vzip"],"q":[[0,"ayaka_model"],[135,"ayaka_runtime::locale"],[136,"core::iter::traits::iterator"],[137,"ayaka_plugin"],[138,"core::marker"],[139,"core::marker"],[140,"ayaka_bindings_types::config"],[141,"core::option"],[142,"core::iter::traits::double_ended"],[143,"ayaka_bindings_types::config"],[144,"core::result"],[145,"serde::de"],[146,"core::fmt"],[147,"core::fmt"],[148,"anyhow"],[149,"ayaka_runtime::config"],[150,"std::path"],[151,"serde::de"],[152,"core::future::future"],[153,"futures_core::stream"],[154,"ayaka_bindings_types::config"],[155,"serde::ser"]],"d":["The specific record.","A view model of Ayaka. It manages all settings and …","The global record.","Loading the global records.","Loading the records.","Loading the settings.","The game is loaded.","The status when calling GameViewModel::open_game.","The settings of the game.","A settings manager trait.","Get the avaliable locales from paragraphs.","Volume of background music.","","","","","","","","","","","","","","","","","","","The Context, should be called after Self::open_game.","The Context, should be called after Self::open_game.","Get the current action by language.","Get the current action by language and secondary language.","Get the current history by language and secondary language.","Get the current RawContext.","Get the current paragraph title.","Determine if current run has been visited.","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The loaded GlobalRecord.","The loaded GlobalRecord.","Get the global record path.","The history actions.","Start a game with record.","Start a game with the index of records.","Start a new game. The state of the model after this call …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The display language.","Get the RawContext object from the last Action in the …","Get the RawContext object from the last Action in the …","Load a file from specified path.","Load GlobalRecord.","Load GlobalRecord.","Load all ActionRecord.","Load all ActionRecord.","Load Settings.","Load Settings.","Create a GameViewModel with a settings manager.","Step back to the last run.","Step to the next run.","Open the game with context.","The current ActionRecord.","The key is the tag of paragraphs, the value is the maximum …","Get the record path from index.","The loaded ActionRecords.","Get an iterator of record paths.","Get the last action text from each record.","Save current ActionRecord to the records.","Save a file to specified path.","Save GlobalRecord.","Save GlobalRecord.","Save all ActionRecord.","Save all ActionRecord.","Save Settings.","Save Settings.","Save all settings and records.","","","","","Set the Settings.","The loaded Settings.","Get the settings path.","The secondary display language.","Choose a switch item by index.","","","","","","","","","","","","","","","","","","","","Update the global record with the latest RawContext.","Volume of videos.","Determine if an RawContext has been visited, by the …","Volume of voices.","","","","",""],"i":[0,0,0,12,12,12,12,0,0,0,1,9,1,9,10,11,12,1,9,10,11,12,9,10,11,12,9,10,11,12,1,1,1,1,1,1,1,1,9,10,11,9,10,11,12,12,12,12,9,10,11,12,1,9,10,11,12,1,1,5,11,1,1,1,1,9,10,11,12,9,11,11,5,5,5,5,5,5,5,1,1,1,1,1,10,5,1,5,1,1,5,5,5,5,5,5,5,1,9,10,11,12,1,1,5,9,1,9,10,11,12,1,9,10,11,12,1,9,10,11,12,1,9,10,11,12,10,9,10,9,1,9,10,11,12],"f":[0,0,0,0,0,0,0,0,0,0,[[[1,[-1,-2]]],[[0,[[4,[],[[2,[3]]]]]]],5,[6,7,8]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[9,9],[10,10],[11,11],[12,12],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[1,[-1,-2]]],[[14,[-2]]],5,[6,7,8]],[[[1,[-1,-2]]],[[14,[-2]]],5,[6,7,8]],[[[1,[-1,-2]]],[[16,[15]]],5,[6,7,8]],[[[1,[-1,-2]]],[[16,[[13,[15,[16,[15]]]]]]],5,[6,7,8]],[[[1,[-1,-2]]],[[0,[[17,[],[[2,[[13,[15,[16,[15]]]]]]]]]]],5,[6,7,8]],[[[1,[-1,-2]]],[[16,[18]]],5,[6,7,8]],[[[1,[-1,-2]]],[[16,[19]]],5,[6,7,8]],[[[1,[-1,-2]]],20,5,[6,7,8]],[[],9],[[],10],[[],11],[-1,[[21,[9]]],22],[-1,[[21,[10]]],22],[-1,[[21,[11]]],22],[[12,12],20],[[-1,-2],20,[],[]],[[-1,-2],20,[],[]],[[-1,-2],20,[],[]],[[9,23],24],[[10,23],24],[[11,23],24],[[12,23],24],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[1,[-1,-2]]],10,5,[6,7,8]],[[[1,[-1,-2]]],10,5,[6,7,8]],[[5,25],[[27,[26]]]],0,[[[1,[-1,-2]],11],13,5,[6,7,8]],[[[1,[-1,-2]],28],13,5,[6,7,8]],[[[1,[-1,-2]]],13,5,[6,7,8]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[11,[[16,[18]]]],[[11,29],18],[[5,-1],[[27,[-2]]],[[31,[30]]],32],[[5,25],[[27,[10]]]],[[5,25],[[27,[10]]]],[[5,25],[[27,[[33,[11]]]]]],[[5,25],[[27,[[33,[11]]]]]],[5,[[27,[9]]]],[5,[[27,[9]]]],[-1,[[1,[-1,-2]]],5,[6,7,8]],[[[1,[-1,-2]]],20,5,[6,7,8]],[[[1,[-1,-2]]],20,5,[6,7,8]],[[[1,[-1,-2]],[14,[-2]]],[[0,[[35,[],[[34,[[27,[13]]]]]],[36,[],[[2,[12]]]]]]],5,[6,7,8]],[[[1,[-1,-2]]],11,5,[6,7,8]],0,[[5,25,28],[[27,[26]]]],[[[1,[-1,-2]]],[[37,[11]]],5,[6,7,8]],[[5,25],[[27,[[0,[[4,[],[[2,[[27,[26]]]]]]]]]]]],[[[1,[-1,-2]]],[[0,[[4,[],[[2,[38]]]]]]],5,[6,7,8]],[[[1,[-1,-2]],28],13,5,[6,7,8]],[[5,-1,-2,20],[[27,[13]]],[[31,[30]]],39],[[5,25,10],[[27,[13]]]],[[5,25,10],[[27,[13]]]],[[5,25,[37,[11]]],[[27,[13]]]],[[5,25,[37,[11]]],[[27,[13]]]],[[5,9],[[27,[13]]]],[[5,9],[[27,[13]]]],[[[1,[-1,-2]]],[[27,[13]]],5,[6,7,8]],[[9,-1],21,40],[[10,-1],21,40],[[11,-1],21,40],[[12,-1],21,40],[[[1,[-1,-2]],9],13,5,[6,7,8]],[[[1,[-1,-2]]],9,5,[6,7,8]],[5,[[27,[26]]]],0,[[[1,[-1,-2]],28],13,5,[6,7,8]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,[[21,[-2]]],[],[]],[-1,41,[]],[-1,41,[]],[-1,41,[]],[-1,41,[]],[-1,41,[]],[[10,18],13],0,[[10,18],20],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[5,"GameViewModel",0],[17,"Item"],[5,"Locale",135],[10,"Iterator",136],[10,"SettingsManager",0],[10,"RawModule",137],[10,"Send",138],[10,"Sync",138],[5,"Settings",0],[5,"GlobalRecord",0],[5,"ActionRecord",0],[6,"OpenGameStatus",0],[1,"tuple"],[5,"Context",139],[6,"Action",140],[6,"Option",141],[10,"DoubleEndedIterator",142],[5,"RawContext",140],[5,"String",143],[1,"bool"],[6,"Result",144],[10,"Deserializer",145],[5,"Formatter",146],[8,"Result",146],[1,"str"],[5,"PathBuf",147],[8,"Result",148],[1,"usize"],[5,"Game",149],[5,"Path",147],[10,"AsRef",150],[10,"DeserializeOwned",145],[5,"Vec",151],[17,"Output"],[10,"Future",152],[10,"Stream",153],[1,"slice"],[5,"ActionText",140],[10,"Serialize",154],[10,"Serializer",154],[5,"TypeId",155]],"b":[]}],\ +["ayaka_plugin",{"doc":"Base crate for plugin runtimes.","t":"SSRRKRKRSFKEENNMMNMNMNNMNMMNNNNMN","n":["ABI_ALLOC_NAME","ABI_FREE_NAME","Config","Func","Linker","Linker","LinkerHandle","LinkerHandle","MEMORY_NAME","PluginModule","RawModule","Result","anyhow","borrow","borrow_mut","call","call","call","create","from","import","inner","into","new","new","slice","slice_mut","try_from","try_into","type_id","wrap","wrap_raw","wrap_with"],"q":[[0,"ayaka_plugin"],[33,"anyhow"],[34,"core::ops::function"],[35,"serde::ser"],[36,"serde::de"],[37,"alloc::string"],[38,"std::collections::hash::map"],[39,"core::convert"],[40,"core::result"],[41,"core::any"],[42,"core::marker"],[43,"core::ops::function"]],"d":["The exported method __abi_alloc.","The exported method __abi_free.","Config type to create the linker.","The import function type.","Represents the linker of plugin modules.","The linker type that can create raw module.","Represents a handle of linker.","The linker handle type.","The default exported memory name.","High-level wrapper for plugin module.","Represents a raw plugin module.","","","","","Calls a method by name.","Call methods of a module.","Call a method by name.","Create a raw module from binary.","Returns the argument unchanged.","Import functions by namespace and names.","Get inner raw module.","Calls U::from(self).","Create the linker.","Creates a wrapper on raw module.","Get memory slice.","Get memory mutable slice.","","","","Wrap a function with args.","Wrap a function with args in bytes.","Wrap a function with args and linker handle."],"i":[0,0,9,4,0,4,0,4,0,0,0,0,0,13,13,4,10,13,9,13,9,13,13,9,13,10,10,13,13,13,9,9,9],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[4,[],[[1,[-1]],[2,[-2]],[3,[-3]]]],5,[7,[6]],-5],[[8,[-4]]],9,10,[],[],[[12,[[7,[6]]],[[11,[[8,[-4]]]]]]]],[[10,-1,5,[7,[6]],-3],[[8,[-2]]],4,[],[[12,[[7,[6]]],[[11,[[8,[-2]]]]]]]],[[[13,[-1]],5,-2],[[8,[-3]]],4,14,15],[[[9,[],[[16,[-1]]]],[7,[6]]],[[8,[-2]]],[],4],[-1,-1,[]],[[[9,[],[[16,[-1]]]],-2,[18,[17]]],[[8,[19]]],[],[[20,[17]]]],[[[13,[-1]]],-1,4],[-1,-2,[],[]],[-1,[[8,[[9,[],[[16,[-1]]]]]]],[]],[-1,[[13,[-1]]],4],[[10,21,21,-2],-1,[],[[12,[[7,[6]]],[[11,[-1]]]]]],[[10,21,21,-2],-1,[],[[12,[[7,[6]]],[[11,[-1]]]]]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,23,[]],[[[9,[],[[16,[-1]]]],-4],[],[],[15,24],14,[[25,[-2],[[11,[[8,[-3]]]]]],26,27]],[[[9,[],[[16,[-1]]]],-2],[],[],[[25,[21,21],[[11,[[8,[[28,[6]]]]]]]],26,27]],[[[9,[],[[16,[-1]]]],-4],[],[],[15,24],14,[[25,[-2],[[11,[[8,[-3]]]]]],26,27]]],"c":[],"p":[[17,"Linker"],[17,"LinkerHandle"],[17,"Func"],[10,"RawModule",0],[1,"str"],[1,"u8"],[1,"slice"],[8,"Result",33],[10,"Linker",0],[10,"LinkerHandle",0],[17,"Output"],[10,"FnOnce",34],[5,"PluginModule",0],[10,"Serialize",35],[10,"DeserializeOwned",36],[17,"Config"],[5,"String",37],[5,"HashMap",38],[1,"tuple"],[10,"Into",39],[1,"i32"],[6,"Result",40],[5,"TypeId",41],[10,"Tuple",42],[10,"Fn",34],[10,"Send",42],[10,"Sync",42],[5,"Vec",43]],"b":[]}],\ +["ayaka_plugin_wasmer",{"doc":"Wasmer-based plugin backend.","t":"FFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["WasmerFunction","WasmerLinker","WasmerLinkerHandle","WasmerModule","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","call","clone","clone_into","create","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","from","from","from","from","import","init","init","init","init","into","into","into","into","layout_raw","layout_raw","layout_raw","layout_raw","new","pointer_metadata","pointer_metadata","pointer_metadata","pointer_metadata","slice","slice_mut","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast_any_box","upcast_any_box","upcast_any_box","upcast_any_mut","upcast_any_mut","upcast_any_mut","upcast_any_ref","upcast_any_ref","upcast_any_ref","wrap_raw"],"q":[[0,"ayaka_plugin_wasmer"],[80,"anyhow"],[81,"core::ops::function"],[82,"rkyv::with"],[83,"core::result"],[84,"alloc::string"],[85,"std::collections::hash::map"],[86,"core::convert"],[87,"core::alloc::layout"],[88,"core::alloc::layout"],[89,"alloc::boxed"],[90,"core::any"],[91,"core::ops::function"],[92,"core::marker"]],"d":["Represents a wrapped wasmer function.","A Wasmer Store with some imports.","A Wasmer StoreMut.","A Wasmer Instance.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,1,11,8,9,1,11,8,9,1,8,9,9,11,1,11,8,9,1,11,8,9,1,11,8,9,1,11,8,9,1,11,8,9,11,1,11,8,9,1,11,8,9,1,11,8,9,11,1,11,8,9,8,8,9,1,11,8,9,1,11,8,9,1,11,8,9,1,11,9,1,11,9,1,11,9,11],"f":[0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2,[4,[3]],-2],[[5,[-1]]],[],[[7,[[4,[3]]],[[6,[[5,[-1]]]]]]]],[[8,1,2,[4,[3]],-2],[[5,[-1]]],[],[[7,[[4,[3]]],[[6,[[5,[-1]]]]]]]],[9,9],[[-1,-2],10,[],[]],[[11,[4,[3]]],[[5,[1]]]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[[-1,-2],[[14,[[13,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[14,[[13,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[14,[[13,[-3,-4]]]]],[],[],[],[]],[[-1,-2],[[14,[[13,[-3,-4]]]]],[],[],[],[]],[12,10],[12,10],[12,10],[12,10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[11,-1,[16,[15,9]]],[[5,[10]]],[[17,[15]]]],[[],12],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[14,[18,19]]]],[[],[[14,[18,19]]]],[[],[[14,[18,19]]]],[[],[[14,[18,19]]]],[10,[[5,[11]]]],[[]],[[]],[[]],[[]],[[8,20,20,-2],-1,[],[[7,[[4,[3]]],[[6,[-1]]]]]],[[8,20,20,-2],-1,[],[[7,[[4,[3]]],[[6,[-1]]]]]],[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,21,[]],[-1,21,[]],[-1,21,[]],[-1,21,[]],[[[22,[-1]]],[[22,[23]]],[]],[[[22,[-1]]],[[22,[23]]],[]],[[[22,[-1]]],[[22,[23]]],[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[-1,23,[]],[[11,-1],9,[[25,[8,20,20],[[6,[[5,[[24,[3]]]]]]]],26,27]]],"c":[],"p":[[5,"WasmerModule",0],[1,"str"],[1,"u8"],[1,"slice"],[8,"Result",80],[17,"Output"],[10,"FnOnce",81],[5,"WasmerLinkerHandle",0],[5,"WasmerFunction",0],[1,"tuple"],[5,"WasmerLinker",0],[1,"usize"],[5,"With",82],[6,"Result",83],[5,"String",84],[5,"HashMap",85],[10,"Into",86],[5,"Layout",87],[5,"LayoutError",87],[1,"i32"],[5,"TypeId",88],[5,"Box",89],[10,"Any",88],[5,"Vec",90],[10,"Fn",81],[10,"Send",91],[10,"Sync",91]],"b":[]}],\ +["ayaka_plugin_wasmi",{"doc":"Wasmi-based plugin backend.","t":"FFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["WasmiLinker","WasmiLinkerHandle","WasmiModule","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","call","call","create","from","from","from","import","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","slice","slice_mut","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","wrap_raw"],"q":[[0,"ayaka_plugin_wasmi"],[47,"core::any"],[48,"anyhow"],[49,"core::ops::function"],[50,"alloc::string"],[51,"wasmi::func"],[52,"std::collections::hash::map"],[53,"core::convert"],[54,"alloc::boxed"],[55,"alloc::sync"],[56,"alloc::rc"],[57,"core::result"],[58,"core::any"],[59,"core::ops::function"],[60,"core::marker"]],"d":["A Wasmi Store with Linker.","A Wasmi StoreContextMut.","A Wasmi Instance.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,2,10,9,2,10,9,2,10,9,2,10,9,2,9,10,2,10,9,10,2,10,9,2,10,9,2,10,9,2,10,9,10,9,9,2,10,9,2,10,9,2,10,9,10],"f":[0,0,0,[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[2,3,[5,[4]],-2],[[6,[-1]]],[],[[8,[[5,[4]]],[[7,[[6,[-1]]]]]]]],[[9,2,3,[5,[4]],-2],[[6,[-1]]],[],[[8,[[5,[4]]],[[7,[[6,[-1]]]]]]]],[[10,[5,[4]]],[[6,[2]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[10,-1,[13,[11,12]]],[[6,[14]]],[[15,[11]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[16,[-1]]],[[16,[1]]],[]],[[[16,[-1]]],[[16,[1]]],[]],[[[16,[-1]]],[[16,[1]]],[]],[[[17,[-1]]],[[17,[1]]],[]],[[[17,[-1]]],[[17,[1]]],[]],[[[17,[-1]]],[[17,[1]]],[]],[[[18,[-1]]],[[18,[1]]],[]],[[[18,[-1]]],[[18,[1]]],[]],[[[18,[-1]]],[[18,[1]]],[]],[14,[[6,[10]]]],[[9,19,19,-2],-1,[],[[8,[[5,[4]]],[[7,[-1]]]]]],[[9,19,19,-2],-1,[],[[8,[[5,[4]]],[[7,[-1]]]]]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[-1,21,[]],[-1,21,[]],[-1,21,[]],[[10,-1],12,[[23,[9,19,19],[[7,[[6,[[22,[4]]]]]]]],24,25]]],"c":[],"p":[[10,"Any",47],[5,"WasmiModule",0],[1,"str"],[1,"u8"],[1,"slice"],[8,"Result",48],[17,"Output"],[10,"FnOnce",49],[5,"WasmiLinkerHandle",0],[5,"WasmiLinker",0],[5,"String",50],[5,"Func",51],[5,"HashMap",52],[1,"tuple"],[10,"Into",53],[5,"Box",54],[5,"Arc",55],[5,"Rc",56],[1,"i32"],[6,"Result",57],[5,"TypeId",47],[5,"Vec",58],[10,"Fn",49],[10,"Send",59],[10,"Sync",59]],"b":[]}],\ +["ayaka_plugin_wasmtime",{"doc":"Wasmtime-based plugin backend.","t":"FFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["WasmtimeLinker","WasmtimeLinkerHandle","WasmtimeModule","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","call","call","create","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","import","init","init","init","into","into","into","new","slice","slice_mut","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","wrap_raw"],"q":[[0,"ayaka_plugin_wasmtime"],[44,"anyhow"],[45,"core::ops::function"],[46,"alloc::string"],[47,"wasmtime::func"],[48,"std::collections::hash::map"],[49,"core::convert"],[50,"core::result"],[51,"core::any"],[52,"alloc::vec"],[53,"core::ops::function"],[54,"core::marker"]],"d":["A Wasmtime Store with Linker.","A Wasmtime StoreContextMut.","A Wasmtime Instance.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","",""],"i":[0,0,0,1,9,8,1,9,8,1,8,9,1,9,8,1,9,8,1,9,8,1,9,8,9,1,9,8,1,9,8,9,8,8,1,9,8,1,9,8,1,9,8,9],"f":[0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[1,2,[4,[3]],-2],[[5,[-1]]],[],[[7,[[4,[3]]],[[6,[[5,[-1]]]]]]]],[[8,1,2,[4,[3]],-2],[[5,[-1]]],[],[[7,[[4,[3]]],[[6,[[5,[-1]]]]]]]],[[9,[4,[3]]],[[5,[1]]]],[10,-1,[]],[10,-1,[]],[10,-1,[]],[10,-1,[]],[10,-1,[]],[10,-1,[]],[10,11],[10,11],[10,11],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[9,-1,[14,[12,13]]],[[5,[11]]],[[15,[12]]]],[[],10],[[],10],[[],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,[[5,[9]]]],[[8,16,16,-2],-1,[],[[7,[[4,[3]]],[[6,[-1]]]]]],[[8,16,16,-2],-1,[],[[7,[[4,[3]]],[[6,[-1]]]]]],[-1,[[17,[-2]]],[],[]],[-1,[[17,[-2]]],[],[]],[-1,[[17,[-2]]],[],[]],[-1,[[17,[-2]]],[],[]],[-1,[[17,[-2]]],[],[]],[-1,[[17,[-2]]],[],[]],[-1,18,[]],[-1,18,[]],[-1,18,[]],[[9,-1],13,[[20,[8,16,16],[[6,[[5,[[19,[3]]]]]]]],21,22]]],"c":[],"p":[[5,"WasmtimeModule",0],[1,"str"],[1,"u8"],[1,"slice"],[8,"Result",44],[17,"Output"],[10,"FnOnce",45],[5,"WasmtimeLinkerHandle",0],[5,"WasmtimeLinker",0],[1,"usize"],[1,"tuple"],[5,"String",46],[5,"Func",47],[5,"HashMap",48],[10,"Into",49],[1,"i32"],[6,"Result",50],[5,"TypeId",51],[5,"Vec",52],[10,"Fn",45],[10,"Send",53],[10,"Sync",53]],"b":[]}],\ +["ayaka_primitive",{"doc":"Primitive types.","t":"PPPPPPGPPGPPPGPFPPPGNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNO","n":["Bool","Bool","Char","Cmd","Custom","Empty","Line","Num","Num","RawValue","Str","Str","Str","SubText","Switch","Text","Text","Unit","Unit","ValueType","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ch_alias","ch_tag","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","default","default","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_bool","get_num","get_str","get_type","hash","into","into","into","into","into","into_str","partial_cmp","partial_cmp","serialize","sub_texts","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","switches"],"q":[[0,"ayaka_primitive"],[100,"ayaka_primitive::Line"],[101,"core::cmp"],[102,"core::result"],[103,"serde::de"],[104,"core::fmt"],[105,"core::fmt"],[106,"core::hash"],[107,"alloc::string"],[108,"core::option"],[109,"serde::ser"],[110,"core::any"]],"d":["The boolean type.","The boolean type.","Special character","A TeX-like command in the text.","Custom line types.","An empty line, usually fallbacks to the base language one.","Represents a line in a prograph.","The number type. It’s i64.","The number type.","The basic and only type used in scripts.","The string type.","The string type.","Raw texts.","A part of a line, either some texts or a command.","Some switches.","A collection of SubText.","A text line.","The unit type. It is empty, just like None or [()] in Rust.","The unit type.","Represents the type of RawValue.","","","","","","","","","","","The alias of current character.","The tag of current character.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Gets a boolean from the value:","Gets a number from the value:","Gets a string from the value:","Gets ValueType.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets a string from the value:","","","","The texts.","","","","","","","","","","","","","","","","","","","","","","The switch items."],"i":[2,3,5,5,1,1,0,2,3,0,2,3,5,0,1,0,1,2,3,0,1,2,3,4,5,1,2,3,4,5,4,4,1,2,3,4,5,1,2,3,4,5,2,3,2,4,1,2,4,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,2,2,2,2,2,1,2,3,4,5,2,2,3,2,4,1,2,3,4,5,1,2,3,4,4,5,1,2,3,4,5,1,2,3,4,5,21],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[1,1],[2,2],[3,3],[4,4],[5,5],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[2,2],7],[[3,3],7],[[],2],[[],4],[-1,[[8,[1]]],9],[-1,[[8,[2]]],9],[-1,[[8,[4]]],9],[[1,1],10],[[2,2],10],[[3,3],10],[[4,4],10],[[5,5],10],[[1,11],12],[[2,11],12],[[3,11],12],[[4,11],12],[[5,11],12],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[2,10],[2,13],[2,[[15,[14]]]],[2,3],[[2,-1],6,16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[2,17],[[2,2],[[18,[7]]]],[[3,3],[[18,[7]]]],[[2,-1],8,19],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[14,[[8,[4,-1]]],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],[-1,20,[]],0],"c":[],"p":[[6,"Line",0],[6,"RawValue",0],[6,"ValueType",0],[5,"Text",0],[6,"SubText",0],[1,"tuple"],[6,"Ordering",101],[6,"Result",102],[10,"Deserializer",103],[1,"bool"],[5,"Formatter",104],[8,"Result",104],[1,"i64"],[1,"str"],[6,"Cow",105],[10,"Hasher",106],[5,"String",107],[6,"Option",108],[10,"Serializer",109],[5,"TypeId",110],[15,"Switch",100]],"b":[]}],\ +["ayaka_runtime",{"doc":"The runtime of Ayaka project.","t":"FFFPFFPEPPPPGFFEEEEOONNNNNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQEONONNOOCOOOONNNNONNOOOONNNNNNNNNNNNNNNNNNNNNNNNNHENNNNNNNNNNPPGFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Context","ContextBuilder","ContextBuilderWithPaths","CreateRuntime","Game","GameConfig","GamePlugin","Linker","LoadParagraph","LoadPlugin","LoadProfile","LoadResource","OpenStatus","Paragraph","PluginConfig","RawModule","StreamExt","TryStreamExt","anyhow","author","base_lang","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","clone","clone_into","config","current_paragraph_title","default","default","deserialize","deserialize","deserialize","dir","eq","equivalent","equivalent","equivalent","find_para","find_para_fallback","find_res_fallback","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","game","get_action","into","into","into","into","into","into","into","into","locale","log","modules","new","next","next_run","open","paras","paras","plugin","plugins","props","res","res","root_path","serialize","set_context","set_start_context","start","start_context","switch","tag","texts","title","title","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","version","vfs","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_paths","with_vfs","CreateEngine","LoadPlugin","LoadStatus","Module","Runtime","action_modules","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","dispatch_line","dispatch_text","fmt","from","from","from","game_modules","into","into","into","line_module","load","module","plugin_type","process_action","process_game","text_module","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"ayaka_runtime"],[140,"ayaka_runtime::plugin"],[184,"ayaka_primitive::text"],[185,"alloc::string"],[186,"anyhow"],[187,"ayaka_plugin"],[188,"core::marker"],[189,"core::marker"],[190,"core::result"],[191,"serde::de"],[192,"fallback"],[193,"ayaka_bindings_types::config"],[194,"core::fmt"],[195,"core::fmt"],[196,"core::future::future"],[197,"futures_core::stream"],[198,"vfs::path"],[199,"serde::ser"],[200,"core::any"],[201,"std::path"],[202,"core::convert"],[203,"core::iter::traits::iterator"],[204,"ayaka_bindings_types::plugin"],[205,"ayaka_bindings_types::plugin"]],"d":["The game running context.","Builder of Context.","Builder of Context.","Start creating plugin runtime.","The full Ayaka game. It consists of global config and all …","The Ayaka config. It should be deserialized from a YAML …","Executing game plugins.","","Loading the paragraphs.","Loading the plugin.","Start loading config file.","Loading the resources.","The open status when creating Context.","The paragraph in a paragraph config.","The plugin config.","","","","","The author of the game.","The base language. If the runtime fails to choose a best …","","","","","","","","","","","","","","","","","Call the part of script with this context.","","","The game config.","Get current paragraph title.","","","","","","The directory of the plugins.","","","","","Find a paragraph by tag, with specified locale.","Find a paragraph by tag, with specified locale.","Find the resource map with specified locale.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","The inner Game object.","Get the Action from Locale and RawContext.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","A macro allowing for compile-time construction of valid …","","The names of the plugins, without extension.","Create a new ContextBuilder with frontend type and plugin …","The next paragraph. If None, the game meets the end.","Step to next line.","Open the config and load the Context.","The paragraphs, indexed by locale. The inner is the …","The paragraphs path.","The plugin utilities.","The plugin config.","The global game properties.","The resources, indexed by locale.","The resources path.","The root path of config.","","Initialize the RawContext with given record.","Initialize the RawContext at the start of the game.","The start paragraph tag.","Create a RawContext at the start of the game.","Choose a switch item by index, start by 0.","The tag and key of a paragraph. They are referenced in next…","The texts. They will be parsed into ayaka_primitive::Text …","The title of a paragraph. It can be None, but better with …","The title of the game.","","","","","","","","","","","","","","","","","","","","","","","","","","Get the version of Ayaka runtime. This version string is …","","","","","","","","","","Open a context with config paths.","Open a context with config paths.","Start creating the engine.","Loading the plugin.","The load status of Runtime.","The plugin module with high-level interfaces.","The plugin runtime.","Iterates action modules.","","","","","","","","","Calls a custom command in the line plugin.","Calls a custom command in the text plugin.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Iterates game modules.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gets line module from command.","Load plugins from specific directory and plugin names.","Gets module from name.","Gets the PluginType.","Processes Action in action plugin.","Processes Game when opening the config file.","Gets text module from command.","","","","","","","","","","","","",""],"i":[0,0,0,8,0,0,8,0,8,8,8,8,0,0,0,0,0,0,0,11,11,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,1,8,8,17,1,11,12,13,11,12,12,8,8,8,8,17,17,17,13,11,12,8,17,1,27,28,13,11,12,8,8,1,1,17,1,27,28,13,11,12,8,0,0,12,27,13,1,28,17,11,0,11,11,17,11,1,8,1,1,11,17,1,13,13,13,11,8,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,17,1,27,28,13,11,12,8,0,0,17,1,27,28,13,11,12,8,27,27,23,23,0,0,0,40,41,40,23,41,40,23,23,23,41,41,23,41,40,23,40,41,40,23,40,40,40,41,41,41,40,23,41,40,23,41,40,23,41,40,23,41,40,23],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]],2],[[4,[3]]],[5,6,7]],[8,8],[[-1,-2],9,[],[]],0,0,[[],11],[[],12],[-1,[[14,[13]]],15],[-1,[[14,[11]]],15],[-1,[[14,[12]]],15],0,[[8,8],16],[[-1,-2],16,[],[]],[[-1,-2],16,[],[]],[[-1,-2],16,[],[]],0,0,0,[[13,21],22],[[11,21],22],[[12,21],22],[[8,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[23,8],[-1,-1,[]],[[[1,[-1]]],17,[5,6,7]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[26,[[27,[-1]]],[5,6,7]],0,[[[1,[-1]]],[[10,[24]]],[5,6,7]],[[[28,[-1]]],[[0,[[30,[],[[29,[[4,[[1,[-1]]]]]]]],[32,[],[[31,[8]]]]]]],[5,6,7]],0,0,0,0,0,0,0,[[[1,[-1]]],33,[5,6,7]],[[8,-1],14,34],[[[1,[-1]],24],9,[5,6,7]],[[[1,[-1]]],9,[5,6,7]],0,[17,24],[[[1,[-1]],35],9,[5,6,7]],0,0,0,0,[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[[],18],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[27,[-1]],[37,[-2]]],[[4,[[28,[-1]]]]],[5,6,7],[[39,[38]]]],[[[27,[-1]],[37,[33]]],[[4,[[28,[-1]]]]],[5,6,7]],0,0,0,0,0,[[[40,[-1]]],[[0,[[42,[],[[31,[[41,[-1]]]]]]]]],[5,6,7]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[23,23],[[-1,-2],9,[],[]],[[[41,[-1]],18,43],[[4,[44]]],5],[[[41,[-1]],18,[37,[3]],45],[[4,[46]]],5],[[23,21],22],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[40,[-1]]],[[0,[[42,[],[[31,[[41,[-1]]]]]]]]],[5,6,7]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[40,[-1]],18],[[10,[[41,[-1]]]]],[5,6,7]],[[-1,33,[37,[-2]]],[[0,[[30,[],[[29,[[4,[[47,[[40,[-3]]]]]]]]]],[32,[],[[31,[23]]]]]]],[[39,[18]]],[[39,[18]]],[5,6,7]],[[[40,[-1]],18],[[10,[[41,[-1]]]]],[5,6,7]],[[[41,[-1]]],[[4,[48]]],5],[[[41,[-1]],49],[[4,[50]]],5],[[[41,[-1]],51],[[4,[52]]],5],[[[40,[-1]],18],[[10,[[41,[-1]]]]],[5,6,7]],[-1,-2,[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,[[14,[-2]]],[],[]],[-1,36,[]],[-1,36,[]],[-1,36,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[5,"Context",0],[5,"Text",184],[5,"String",185],[8,"Result",186],[10,"RawModule",187],[10,"Send",188],[10,"Sync",188],[6,"OpenStatus",0],[1,"tuple"],[6,"Option",189],[5,"GameConfig",0],[5,"PluginConfig",0],[5,"Paragraph",0],[6,"Result",190],[10,"Deserializer",191],[1,"bool"],[5,"Game",0],[1,"str"],[5,"Fallback",192],[8,"VarMap",193],[5,"Formatter",194],[8,"Result",194],[6,"LoadStatus",140],[5,"RawContext",193],[6,"Action",193],[6,"FrontendType",195],[5,"ContextBuilder",0],[5,"ContextBuilderWithPaths",0],[17,"Output"],[10,"Future",196],[17,"Item"],[10,"Stream",197],[5,"VfsPath",198],[10,"Serializer",199],[1,"usize"],[5,"TypeId",200],[1,"slice"],[5,"Path",201],[10,"AsRef",202],[5,"Runtime",140],[5,"Module",140],[10,"Iterator",203],[5,"LineProcessContextRef",195],[5,"LineProcessResult",195],[5,"TextProcessContextRef",195],[5,"TextProcessResult",195],[5,"Arc",204],[5,"PluginType",195],[5,"ActionProcessContextRef",195],[5,"ActionProcessResult",195],[5,"GameProcessContextRef",195],[5,"GameProcessResult",195]],"b":[]}],\ +["ayaka_script",{"doc":"The script parsers.","t":"PPPPPGPPFPPPGFPPPPPGPPPPPPPPPPFFEGPFPGPGEPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Add","And","And","Assign","Binary","BinaryOp","Call","Const","ConstParser","Ctx","Div","Eq","Expr","ExprParser","Ge","Gt","Inplace","Le","Logic","LogicBinaryOp","Lt","Minus","Mod","Mul","Negative","Neq","Not","Or","Or","Positive","Program","ProgramParser","RawValue","Ref","Ref","RefParser","Unary","UnaryOp","Val","ValBinaryOp","ValueType","Var","Xor","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_str","into","into","into","into","into","into","into","into","into","into","into","new","new","new","new","parse","parse","parse","parse","serialize","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"ayaka_script"],[179,"core::result"],[180,"serde::de"],[181,"core::fmt"],[182,"core::fmt"],[183,"lalrpop_util::lexer"],[184,"lalrpop_util"],[185,"serde::ser"],[186,"core::any"]],"d":["+","&","&&","Assignment.","A binary operation.","Binary operations.","A call to a function.","A const value.","","A context variable. It is stored in the context. The …","/","==","An expression.","",">=",">","Inplace value operations.","<=","Logical operations.","Logical operations.","<","-","%","*","-","!=","!","|","||","+","A full script, a collection of expressions.","","","Reference of a variable.","A reference to a variable.","","A unary operation.","Unary operations.","Value operations.","Value binary operations.","","A local variable. It is only accessible in current program.","^","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[5,5,6,4,2,0,2,2,0,7,5,6,0,0,6,6,4,6,4,0,6,5,5,5,3,6,3,5,6,3,0,0,0,0,2,0,2,0,4,0,0,7,5,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,1,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,15,16,17,18,1,2,3,4,5,6,7,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7,15,16,17,18,1,2,3,4,5,6,7],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[-1,-2],8,[],[]],[[],1],[-1,[[9,[1]]],10],[-1,[[9,[2]]],10],[-1,[[9,[3]]],10],[-1,[[9,[4]]],10],[-1,[[9,[5]]],10],[-1,[[9,[6]]],10],[-1,[[9,[7]]],10],[[1,1],11],[[2,2],11],[[3,3],11],[[4,4],11],[[5,5],11],[[6,6],11],[[7,7],11],[[1,12],13],[[2,12],13],[[3,12],13],[[4,12],13],[[5,12],13],[[6,12],13],[[7,12],13],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[14,[[9,[1,-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],15],[[],16],[[],17],[[],18],[[15,14],[[9,[19,[22,[20,21,14]]]]]],[[16,14],[[9,[2,[22,[20,21,14]]]]]],[[17,14],[[9,[1,[22,[20,21,14]]]]]],[[18,14],[[9,[7,[22,[20,21,14]]]]]],[[1,-1],9,23],[[2,-1],9,23],[[3,-1],9,23],[[4,-1],9,23],[[5,-1],9,23],[[6,-1],9,23],[[7,-1],9,23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,[[9,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]]],"c":[],"p":[[5,"Program",0],[6,"Expr",0],[6,"UnaryOp",0],[6,"BinaryOp",0],[6,"ValBinaryOp",0],[6,"LogicBinaryOp",0],[6,"Ref",0],[1,"tuple"],[6,"Result",179],[10,"Deserializer",180],[1,"bool"],[5,"Formatter",181],[8,"Result",181],[1,"str"],[5,"ConstParser",0],[5,"ExprParser",0],[5,"ProgramParser",0],[5,"RefParser",0],[6,"RawValue",182],[1,"usize"],[5,"Token",183],[6,"ParseError",184],[10,"Serializer",185],[5,"TypeId",186]],"b":[]}]\ +]')); +if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; +else if (window.initSearch) window.initSearch(searchIndex); diff --git a/doc/settings.html b/doc/settings.html index 8931d907..779310ea 100644 --- a/doc/settings.html +++ b/doc/settings.html @@ -1 +1,2 @@ -Settings

Rustdoc settings

Back
\ No newline at end of file +Settings +

Rustdoc settings

Back
\ No newline at end of file diff --git a/doc/src-files.js b/doc/src-files.js index 116b0c8a..dd50f0e1 100644 --- a/doc/src-files.js +++ b/doc/src-files.js @@ -1,14 +1,14 @@ -var srcIndex = JSON.parse('{\ -"ayaka_bindings":["",[],["fs.rs","lib.rs","logger.rs"]],\ -"ayaka_bindings_impl":["",[],["lib.rs"]],\ -"ayaka_bindings_types":["",[],["config.rs","fs.rs","lib.rs","logger.rs","plugin.rs"]],\ -"ayaka_model":["",[],["lib.rs","settings.rs","view_model.rs"]],\ -"ayaka_plugin":["",[],["lib.rs"]],\ -"ayaka_plugin_wasmer":["",[],["lib.rs"]],\ -"ayaka_plugin_wasmi":["",[],["lib.rs"]],\ -"ayaka_plugin_wasmtime":["",[],["lib.rs"]],\ -"ayaka_primitive":["",[],["lib.rs","line.rs","raw_value.rs","text.rs"]],\ -"ayaka_runtime":["",[["plugin",[],["fs_interop.rs","log_interop.rs","plugin_interop.rs","rand_interop.rs","script_interop.rs"]]],["config.rs","context.rs","lib.rs","locale.rs","plugin.rs"]],\ -"ayaka_script":["",[],["lib.rs","parser.rs"]]\ -}'); +var srcIndex = new Map(JSON.parse('[\ +["ayaka_bindings",["",[],["fs.rs","lib.rs","logger.rs"]]],\ +["ayaka_bindings_impl",["",[],["lib.rs"]]],\ +["ayaka_bindings_types",["",[],["config.rs","fs.rs","lib.rs","logger.rs","plugin.rs"]]],\ +["ayaka_model",["",[],["lib.rs","settings.rs","view_model.rs"]]],\ +["ayaka_plugin",["",[],["lib.rs"]]],\ +["ayaka_plugin_wasmer",["",[],["lib.rs"]]],\ +["ayaka_plugin_wasmi",["",[],["lib.rs"]]],\ +["ayaka_plugin_wasmtime",["",[],["lib.rs"]]],\ +["ayaka_primitive",["",[],["lib.rs","line.rs","raw_value.rs","text.rs"]]],\ +["ayaka_runtime",["",[["plugin",[],["fs_interop.rs","log_interop.rs","plugin_interop.rs","rand_interop.rs","script_interop.rs"]]],["config.rs","context.rs","lib.rs","locale.rs","plugin.rs"]]],\ +["ayaka_script",["",[],["lib.rs","parser.rs"]]]\ +]')); createSrcSidebar(); diff --git a/doc/src/ayaka_bindings/fs.rs.html b/doc/src/ayaka_bindings/fs.rs.html index e8a8e1fe..9c580aac 100644 --- a/doc/src/ayaka_bindings/fs.rs.html +++ b/doc/src/ayaka_bindings/fs.rs.html @@ -1,4 +1,5 @@ -fs.rs - source
1
+fs.rs - source
+    
1
 2
 3
 4
@@ -94,8 +95,8 @@
 use std::io::{Read, Result, Seek, SeekFrom, Write};
 use vfs::{error::VfsErrorKind, *};
 
-#[import("fs")]
-extern "C" {
+#[import("fs")]
+extern "C" {
     fn __read_dir(path: &str) -> Option<Vec<String>>;
     fn __metadata(path: &str) -> Option<FileMetadata>;
     fn __exists(path: &str) -> bool;
diff --git a/doc/src/ayaka_bindings/lib.rs.html b/doc/src/ayaka_bindings/lib.rs.html
index fd082257..295ae744 100644
--- a/doc/src/ayaka_bindings/lib.rs.html
+++ b/doc/src/ayaka_bindings/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -107,7 +108,7 @@
 const ABI_ALIGN: usize = 8;
 
 #[no_mangle]
-unsafe extern "C" fn __abi_alloc(len: usize) -> *mut u8 {
+unsafe extern "C" fn __abi_alloc(len: usize) -> *mut u8 {
     if len == 0 {
         return ABI_ALIGN as *mut u8;
     }
@@ -120,7 +121,7 @@
 }
 
 #[no_mangle]
-unsafe extern "C" fn __abi_free(ptr: *mut u8, len: usize) {
+unsafe extern "C" fn __abi_free(ptr: *mut u8, len: usize) {
     if len == 0 {
         return;
     }
@@ -144,25 +145,25 @@
 ) -> u64 {
     logger::PluginLogger::init();
     let data = unsafe { std::slice::from_raw_parts(data, len) };
-    let data = rmp_serde::from_slice(data).expect("cannot deserialize input args");
+    let data = rmp_serde::from_slice(data).expect("cannot deserialize input args");
     let res = f.call_once(data);
-    let data = rmp_serde::to_vec(&res).expect("cannot serialize result");
+    let data = rmp_serde::to_vec(&res).expect("cannot serialize result");
     let (ptr, len) = unsafe { __abi_alloc_from(&data) };
     ((len as u64) << 32) | (ptr as u64)
 }
 
 #[doc(hidden)]
 pub fn __import<Params: Serialize, Res: DeserializeOwned>(
-    f: unsafe extern "C" fn(len: usize, data: *const u8) -> u64,
+    f: unsafe extern "C" fn(len: usize, data: *const u8) -> u64,
     args: Params,
 ) -> Res {
-    let data = rmp_serde::to_vec(&args).expect("cannot serialize input args");
+    let data = rmp_serde::to_vec(&args).expect("cannot serialize input args");
     let res = unsafe { f(data.len(), data.as_ptr()) };
     let (len, res) = ((res >> 32) as usize, (res & 0xFFFFFFFF) as *mut u8);
     let data = unsafe { std::slice::from_raw_parts_mut(res, len) };
     let data = rmp_serde::from_slice(data);
     unsafe { __abi_free(res, len) };
-    data.expect("cannot deseriaize result")
+    data.expect("cannot deseriaize result")
 }
 
 pub use ayaka_bindings_impl::{export, import};
diff --git a/doc/src/ayaka_bindings/logger.rs.html b/doc/src/ayaka_bindings/logger.rs.html
index 40e72af5..c017a272 100644
--- a/doc/src/ayaka_bindings/logger.rs.html
+++ b/doc/src/ayaka_bindings/logger.rs.html
@@ -1,4 +1,5 @@
-logger.rs - source
1
+logger.rs - source
+    
1
 2
 3
 4
@@ -37,8 +38,8 @@
 
use crate::import;
 use log::Log;
 
-#[import("log")]
-extern "C" {
+#[import("log")]
+extern "C" {
     fn __log(record: ayaka_bindings_types::Record);
     fn __log_flush();
 }
@@ -51,7 +52,7 @@
         static INIT: Once = Once::new();
 
         INIT.call_once(|| {
-            log::set_logger(&PluginLogger).expect("cannot set logger");
+            log::set_logger(&PluginLogger).expect("cannot set logger");
             log::set_max_level(log::LevelFilter::Trace);
         });
     }
diff --git a/doc/src/ayaka_bindings_impl/lib.rs.html b/doc/src/ayaka_bindings_impl/lib.rs.html
index d5764828..18999c44 100644
--- a/doc/src/ayaka_bindings_impl/lib.rs.html
+++ b/doc/src/ayaka_bindings_impl/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -86,12 +87,12 @@
     let func = parse_macro_input!(func as ItemFn);
     let name = func.sig.ident;
     let name_str = name.to_string();
-    let expname = parse_str::<Ident>(&format!("__export_{}", name_str)).unwrap();
+    let expname = parse_str::<Ident>(&format!("__export_{}", name_str)).unwrap();
     let input = proc_macro2::TokenStream::from(input);
     let export_func = quote! {
         #[doc(hidden)]
         #[export_name = #name_str]
-        extern "C" fn #expname(len: usize, data: *const u8) -> u64 {
+        extern "C" fn #expname(len: usize, data: *const u8) -> u64 {
             ::ayaka_bindings::__export(len, data, #name)
         }
         #input
@@ -126,8 +127,8 @@
 
                 let name = sig.ident.clone();
                 let name_str = name.to_string();
-                let impname = parse_str::<Ident>(&format!("__import_{}", name_str)).unwrap();
-                let bindings_crate_name = match crate_name("ayaka-bindings").unwrap() {
+                let impname = parse_str::<Ident>(&format!("__import_{}", name_str)).unwrap();
+                let bindings_crate_name = match crate_name("ayaka-bindings").unwrap() {
                     FoundCrate::Itself => quote!(crate),
                     FoundCrate::Name(name) => {
                         let name = parse_str::<Ident>(&name).unwrap();
@@ -137,7 +138,7 @@
                 let import_func = quote! {
                     #[doc(hidden)]
                     #[link(wasm_import_module = #module)]
-                    extern "C" {
+                    extern "C" {
                         #[link_name = #name_str]
                         fn #impname(len: usize, data: *const u8) -> u64;
                     }
diff --git a/doc/src/ayaka_bindings_types/config.rs.html b/doc/src/ayaka_bindings_types/config.rs.html
index cdb77ab2..162ac88e 100644
--- a/doc/src/ayaka_bindings_types/config.rs.html
+++ b/doc/src/ayaka_bindings_types/config.rs.html
@@ -1,4 +1,5 @@
-config.rs - source
1
+config.rs - source
+    
1
 2
 3
 4
@@ -171,7 +172,7 @@
 /// the characters in [`ActionSubText::Chars`] should be printed one by one,
 /// while the characters in [`ActionSubText::Block`] should be printed together.
 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(tag = "type", content = "data")]
+#[serde(tag = "type", content = "data")]
 pub enum ActionSubText {
     /// Characters printed one by one.
     /// Usually they are meaningful texts.
@@ -233,10 +234,10 @@
 /// ```
 /// # use ayaka_bindings_types::*;
 /// let mut text = ActionText::default();
-/// text.push_back_chars("Hello ");
-/// assert_eq!(text.text[0], ActionSubText::chars("Hello "));
-/// text.push_back_chars("world!");
-/// assert_eq!(text.text[0], ActionSubText::chars("Hello world!"));
+/// text.push_back_chars("Hello ");
+/// assert_eq!(text.text[0], ActionSubText::chars("Hello "));
+/// text.push_back_chars("world!");
+/// assert_eq!(text.text[0], ActionSubText::chars("Hello world!"));
 /// ```
 #[derive(Debug, Default, Clone, Serialize, Deserialize, FallbackSpec)]
 pub struct ActionText {
@@ -253,7 +254,7 @@
 impl ActionText {
     /// Push the string as [`ActionSubText::Chars`] to the back.
     /// If the back element is also [`ActionSubText::Chars`], the string is appended.
-    pub fn push_back_chars<'a>(&mut self, s: impl Into<Cow<'a, str>>) {
+    pub fn push_back_chars<'a>(&mut self, s: impl Into<Cow<'a, str>>) {
         let s = s.into();
         if let Some(ActionSubText::Chars(text)) = self.text.back_mut() {
             text.push_str(&s);
@@ -264,7 +265,7 @@
 
     /// Push the string as [`ActionSubText::Block`] to the back.
     /// If the back element is also [`ActionSubText::Block`], the string is appended.
-    pub fn push_back_block<'a>(&mut self, s: impl Into<Cow<'a, str>>) {
+    pub fn push_back_block<'a>(&mut self, s: impl Into<Cow<'a, str>>) {
         let s = s.into();
         if let Some(ActionSubText::Block(text)) = self.text.back_mut() {
             text.push_str(&s);
@@ -275,9 +276,9 @@
 }
 
 impl std::fmt::Display for ActionText {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         for text in &self.text {
-            write!(f, "{}", text.as_str())?;
+            write!(f, "{}", text.as_str())?;
         }
         Ok(())
     }
@@ -295,7 +296,7 @@
 /// The full action information in one line of config.
 /// It provides the full texts and other properties exacted from [`ayaka_primitive::Text`].
 #[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
-#[serde(tag = "type", content = "data")]
+#[serde(tag = "type", content = "data")]
 pub enum Action {
     /// An empty action usually means an `exec` or custom action.
     #[default]
diff --git a/doc/src/ayaka_bindings_types/fs.rs.html b/doc/src/ayaka_bindings_types/fs.rs.html
index 51b62984..db771bf9 100644
--- a/doc/src/ayaka_bindings_types/fs.rs.html
+++ b/doc/src/ayaka_bindings_types/fs.rs.html
@@ -1,4 +1,5 @@
-fs.rs - source
1
+fs.rs - source
+    
1
 2
 3
 4
diff --git a/doc/src/ayaka_bindings_types/lib.rs.html b/doc/src/ayaka_bindings_types/lib.rs.html
index cdf5b43f..a3a23518 100644
--- a/doc/src/ayaka_bindings_types/lib.rs.html
+++ b/doc/src/ayaka_bindings_types/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
diff --git a/doc/src/ayaka_bindings_types/logger.rs.html b/doc/src/ayaka_bindings_types/logger.rs.html
index 8922ff5b..00c751b5 100644
--- a/doc/src/ayaka_bindings_types/logger.rs.html
+++ b/doc/src/ayaka_bindings_types/logger.rs.html
@@ -1,4 +1,5 @@
-logger.rs - source
1
+logger.rs - source
+    
1
 2
 3
 4
@@ -36,7 +37,7 @@
     pub line: Option<u32>,
 }
 
-impl From<&log::Record<'_>> for Record {
+impl From<&log::Record<'_>> for Record {
     fn from(r: &log::Record) -> Self {
         Self {
             level: r.level(),
diff --git a/doc/src/ayaka_bindings_types/plugin.rs.html b/doc/src/ayaka_bindings_types/plugin.rs.html
index 5bc43530..22d87938 100644
--- a/doc/src/ayaka_bindings_types/plugin.rs.html
+++ b/doc/src/ayaka_bindings_types/plugin.rs.html
@@ -1,4 +1,5 @@
-plugin.rs - source
1
+plugin.rs - source
+    
1
 2
 3
 4
@@ -368,11 +369,11 @@
 
 #[derive(Debug, Serialize)]
 #[doc(hidden)]
-pub struct ActionProcessContextRef<'a> {
-    pub game_props: &'a HashMap<String, String>,
+pub struct ActionProcessContextRef<'a> {
+    pub game_props: &'a HashMap<String, String>,
     pub frontend: FrontendType,
-    pub ctx: &'a RawContext,
-    pub action: &'a ActionText,
+    pub ctx: &'a RawContext,
+    pub action: &'a ActionText,
 }
 
 /// The result of action plugins.
@@ -390,13 +391,13 @@
 ///
 /// #[export]
 /// fn plugin_type() -> PluginType {
-///     PluginType::builder().text(&["hello"]).build()
+///     PluginType::builder().text(&["hello"]).build()
 /// }
 ///
 /// #[export]
 /// fn hello(_args: Vec<String>, _ctx: TextProcessContext) -> TextProcessResult {
 ///     let mut res = TextProcessResult::default();
-///     res.line.push_back_chars("hello");
+///     res.line.push_back_chars("hello");
 ///     res
 /// }
 /// ```
@@ -410,8 +411,8 @@
 
 #[derive(Debug, Serialize)]
 #[doc(hidden)]
-pub struct TextProcessContextRef<'a> {
-    pub game_props: &'a HashMap<String, String>,
+pub struct TextProcessContextRef<'a> {
+    pub game_props: &'a HashMap<String, String>,
     pub frontend: FrontendType,
 }
 
@@ -447,10 +448,10 @@
 
 #[derive(Debug, Serialize)]
 #[doc(hidden)]
-pub struct GameProcessContextRef<'a> {
-    pub title: &'a str,
-    pub author: &'a str,
-    pub props: &'a HashMap<String, String>,
+pub struct GameProcessContextRef<'a> {
+    pub title: &'a str,
+    pub author: &'a str,
+    pub props: &'a HashMap<String, String>,
 }
 
 /// The result of game plugins.
@@ -468,13 +469,13 @@
 ///
 /// #[export]
 /// fn plugin_type() -> PluginType {
-///     PluginType::builder().line(&["hello"]).build()
+///     PluginType::builder().line(&["hello"]).build()
 /// }
 ///
 /// #[export]
 /// fn hello(_ctx: LineProcessContext) -> LineProcessResult {
 ///     let mut res = LineProcessResult::default();
-///     res.locals.insert("hello".to_string(), RawValue::Str("world".to_string()));
+///     res.locals.insert("hello".to_string(), RawValue::Str("world".to_string()));
 ///     res
 /// }
 /// ```
@@ -492,11 +493,11 @@
 
 #[derive(Debug, Serialize)]
 #[doc(hidden)]
-pub struct LineProcessContextRef<'a> {
-    pub game_props: &'a HashMap<String, String>,
+pub struct LineProcessContextRef<'a> {
+    pub game_props: &'a HashMap<String, String>,
     pub frontend: FrontendType,
-    pub ctx: &'a RawContext,
-    pub props: &'a VarMap,
+    pub ctx: &'a RawContext,
+    pub props: &'a VarMap,
 }
 
 /// The result of commands in line plugins.
diff --git a/doc/src/ayaka_model/lib.rs.html b/doc/src/ayaka_model/lib.rs.html
index 7677128c..bd0b4efa 100644
--- a/doc/src/ayaka_model/lib.rs.html
+++ b/doc/src/ayaka_model/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
diff --git a/doc/src/ayaka_model/settings.rs.html b/doc/src/ayaka_model/settings.rs.html
index 238d6480..e189461d 100644
--- a/doc/src/ayaka_model/settings.rs.html
+++ b/doc/src/ayaka_model/settings.rs.html
@@ -1,4 +1,5 @@
-settings.rs - source
1
+settings.rs - source
+    
1
 2
 3
 4
@@ -191,7 +192,7 @@
     /// by the paragraph tag and action index.
     pub fn visited(&self, ctx: &RawContext) -> bool {
         if let Some(max_act) = self.record.get(&ctx.cur_para) {
-            log::debug!("Test act: {}, max act: {}", ctx.cur_act, max_act);
+            log::debug!("Test act: {}, max act: {}", ctx.cur_act, max_act);
             *max_act >= ctx.cur_act
         } else {
             false
diff --git a/doc/src/ayaka_model/view_model.rs.html b/doc/src/ayaka_model/view_model.rs.html
index d79129f2..01287a43 100644
--- a/doc/src/ayaka_model/view_model.rs.html
+++ b/doc/src/ayaka_model/view_model.rs.html
@@ -1,4 +1,5 @@
-view_model.rs - source
1
+view_model.rs - source
+    
1
 2
 3
 4
@@ -327,7 +328,7 @@
 
 /// The status when calling [`GameViewModel::open_game`].
 #[derive(Debug, Clone, PartialEq, Eq, Serialize)]
-#[serde(tag = "t", content = "data")]
+#[serde(tag = "t", content = "data")]
 pub enum OpenGameStatus {
     /// Loading the settings.
     LoadSettings,
@@ -341,7 +342,7 @@
 
 /// A view model of Ayaka.
 /// It manages all settings and provides high-level APIs.
-pub struct GameViewModel<S: SettingsManager, M: RawModule + Send + Sync + 'static> {
+pub struct GameViewModel<S: SettingsManager, M: RawModule + Send + Sync + 'static> {
     context: Option<Context<M>>,
     current_record: ActionRecord,
     current_raw_context: Option<RawContext>,
@@ -351,7 +352,7 @@
     global_record: Option<GlobalRecord>,
 }
 
-impl<S: SettingsManager, M: RawModule + Send + Sync + 'static> GameViewModel<S, M> {
+impl<S: SettingsManager, M: RawModule + Send + Sync + 'static> GameViewModel<S, M> {
     /// Create a [`GameViewModel`] with a settings manager.
     pub fn new(settings_manager: S) -> Self {
         Self {
@@ -366,12 +367,12 @@
     }
 
     /// Open the game with context.
-    #[stream(OpenGameStatus, lifetime = 'a)]
-    pub async fn open_game<'a>(&'a mut self, context: Context<M>) -> Result<()> {
+    #[stream(OpenGameStatus, lifetime = 'a)]
+    pub async fn open_game<'a>(&'a mut self, context: Context<M>) -> Result<()> {
         yield OpenGameStatus::LoadSettings;
         let settings = unwrap_or_default_log!(
             self.settings_manager.load_settings(),
-            "Load settings failed"
+            "Load settings failed"
         );
         self.settings = Some(settings);
 
@@ -379,7 +380,7 @@
         let global_record = unwrap_or_default_log!(
             self.settings_manager
                 .load_global_record(&context.game().config.title),
-            "Load global records failed"
+            "Load global records failed"
         );
         self.global_record = Some(global_record);
 
@@ -387,7 +388,7 @@
         self.records = unwrap_or_default_log!(
             self.settings_manager
                 .load_records(&context.game().config.title),
-            "Load records failed"
+            "Load records failed"
         );
         self.context = Some(context);
 
@@ -400,14 +401,14 @@
     pub fn context(&self) -> &Context<M> {
         self.context
             .as_ref()
-            .expect("should be called after open_game")
+            .expect("should be called after open_game")
     }
 
     /// The [`Context`], should be called after [`Self::open_game`].
     pub fn context_mut(&mut self) -> &mut Context<M> {
         self.context
             .as_mut()
-            .expect("should be called after open_game")
+            .expect("should be called after open_game")
     }
 
     /// The current [`ActionRecord`].
@@ -419,7 +420,7 @@
     pub fn settings(&self) -> &Settings {
         self.settings
             .as_ref()
-            .expect("should be called after open_game")
+            .expect("should be called after open_game")
     }
 
     /// Set the [`Settings`].
@@ -436,14 +437,14 @@
     pub fn global_record(&self) -> &GlobalRecord {
         self.global_record
             .as_ref()
-            .expect("should be called after open_game")
+            .expect("should be called after open_game")
     }
 
     /// The loaded [`GlobalRecord`].
     pub fn global_record_mut(&mut self) -> &mut GlobalRecord {
         self.global_record
             .as_mut()
-            .expect("should be called after open_game")
+            .expect("should be called after open_game")
     }
 
     /// Get the avaliable locales from paragraphs.
@@ -454,7 +455,7 @@
     /// Start a new game.
     /// The state of the model after this call is actually invalid.
     /// You should call `next_run` immediately after this call,
-    /// to ensure there's content in the game, and switch to the
+    /// to ensure there's content in the game, and switch to the
     /// first line of the first paragraph.
     pub fn init_new(&mut self) {
         let ctx = self.context().game().start_context();
@@ -470,7 +471,7 @@
         self.current_record = record;
         // Update current raw context.
         self.current_raw_context = self.current_record.history.last().cloned();
-        log::debug!("Context: {:?}", self.current_raw_context);
+        log::debug!("Context: {:?}", self.current_raw_context);
         // `ctx` points to the next raw context.
         ctx.cur_act += 1;
         self.context_mut().set_context(ctx);
@@ -505,7 +506,7 @@
         if let Some(ctx) = &ctx {
             self.push_history(ctx);
             self.global_record_mut().update(ctx);
-            log::debug!("{:?}", ctx);
+            log::debug!("{:?}", ctx);
         }
         self.current_raw_context = ctx;
         self.current_raw_context.is_some()
@@ -514,23 +515,23 @@
     /// Step back to the last run.
     pub fn next_back_run(&mut self) -> bool {
         if self.current_record.history.len() <= 1 {
-            log::debug!("No action in the history.");
+            log::debug!("No action in the history.");
             false
         } else {
             // The last entry is the current one.
-            // We don't assume that a user could call next_back_run when the
+            // We don't assume that a user could call next_back_run when the
             // current run is empty.
             self.current_record.history.pop();
             // When we pop the current run, the last entry is what we want.
             self.current_raw_context = self.current_record.history.last().cloned();
             debug_assert!(self.current_raw_context.is_some());
-            // We clone the (new) current run to set the "next" raw context.
-            // We don't use the popped run to set the raw context,
+            // We clone the (new) current run to set the "next" raw context.
+            // We don't use the popped run to set the raw context,
             // because the empty runs are not recorded.
             let mut ctx = self
                 .current_raw_context
                 .clone()
-                .expect("current raw context cannot be None");
+                .expect("current raw context cannot be None");
             ctx.cur_act += 1;
             self.context_mut().set_context(ctx);
             true
@@ -553,7 +554,7 @@
         self.current_run().map(|raw_ctx| {
             unwrap_or_default_log!(
                 self.context().get_action(&self.settings().lang, raw_ctx),
-                "Cannot get action"
+                "Cannot get action"
             )
         })
     }
@@ -566,12 +567,12 @@
     fn get_actions(&self, raw_ctx: &RawContext) -> (Action, Option<Action>) {
         let action = unwrap_or_default_log!(
             self.context().get_action(&self.settings().lang, raw_ctx),
-            "Cannot get action"
+            "Cannot get action"
         );
         let base_action = self.settings().sub_lang.as_ref().map(|sub_lang| {
             unwrap_or_default_log!(
                 self.context().get_action(sub_lang, raw_ctx),
-                "Cannot get sub action"
+                "Cannot get sub action"
             )
         });
         (action, base_action)
@@ -579,7 +580,7 @@
 
     /// Choose a switch item by index.
     pub fn switch(&mut self, i: usize) {
-        log::debug!("Switch {}", i);
+        log::debug!("Switch {}", i);
         self.context_mut().switch(i);
     }
 
@@ -611,19 +612,19 @@
     }
 
     /// Get the last action text from each record.
-    pub fn records_text(&self) -> impl Iterator<Item = ActionText> + '_ {
+    pub fn records_text(&self) -> impl Iterator<Item = ActionText> + '_ {
         self.records().iter().map(|record| {
             let raw_ctx = record
                 .last_ctx()
-                .expect("there should be at least one RawContext in the ActionRecord");
+                .expect("there should be at least one RawContext in the ActionRecord");
             let action = unwrap_or_default_log!(
                 self.context().get_action(&self.settings().lang, raw_ctx),
-                "Cannot get action"
+                "Cannot get action"
             );
             if let Action::Text(action) = action {
                 action
             } else {
-                panic!("action in the record should be text action")
+                panic!("action in the record should be text action")
             }
         })
     }
@@ -631,7 +632,7 @@
     /// Get the current history by language and secondary language.
     pub fn current_history(
         &self,
-    ) -> impl DoubleEndedIterator<Item = (Action, Option<Action>)> + '_ {
+    ) -> impl DoubleEndedIterator<Item = (Action, Option<Action>)> + '_ {
         self.record()
             .history
             .iter()
diff --git a/doc/src/ayaka_plugin/lib.rs.html b/doc/src/ayaka_plugin/lib.rs.html
index 5d4fd3f5..21f8a346 100644
--- a/doc/src/ayaka_plugin/lib.rs.html
+++ b/doc/src/ayaka_plugin/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -148,11 +149,11 @@
 use std::{collections::HashMap, marker::Tuple};
 
 /// The exported method `__abi_alloc`.
-pub const ABI_ALLOC_NAME: &str = "__abi_alloc";
+pub const ABI_ALLOC_NAME: &str = "__abi_alloc";
 /// The exported method `__abi_free`.
-pub const ABI_FREE_NAME: &str = "__abi_free";
+pub const ABI_FREE_NAME: &str = "__abi_free";
 /// The default exported memory name.
-pub const MEMORY_NAME: &str = "memory";
+pub const MEMORY_NAME: &str = "memory";
 
 /// Represents a raw plugin module.
 pub trait RawModule: Sized {
@@ -160,7 +161,7 @@
     type Linker: Linker<Self>;
 
     /// The linker handle type.
-    type LinkerHandle<'a>: LinkerHandle<'a, Self>;
+    type LinkerHandle<'a>: LinkerHandle<'a, Self>;
 
     /// The import function type.
     type Func;
@@ -216,13 +217,13 @@
     /// Wrap a function with args in bytes.
     fn wrap_raw(
         &self,
-        f: impl (Fn(M::LinkerHandle<'_>, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
+        f: impl (Fn(M::LinkerHandle<'_>, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
     ) -> M::Func;
 
     /// Wrap a function with args.
     fn wrap<P: DeserializeOwned + Tuple, R: Serialize>(
         &self,
-        f: impl (Fn(P) -> Result<R>) + Send + Sync + 'static,
+        f: impl (Fn(P) -> Result<R>) + Send + Sync + 'static,
     ) -> M::Func {
         self.wrap_raw(move |handle, start, len| {
             let data = handle.slice(start, len, |data| rmp_serde::from_slice(data))?;
@@ -235,7 +236,7 @@
     /// Wrap a function with args and linker handle.
     fn wrap_with<P: DeserializeOwned + Tuple, R: Serialize>(
         &self,
-        f: impl (Fn(M::LinkerHandle<'_>, P) -> Result<R>) + Send + Sync + 'static,
+        f: impl (Fn(M::LinkerHandle<'_>, P) -> Result<R>) + Send + Sync + 'static,
     ) -> M::Func {
         self.wrap_raw(move |handle, start, len| {
             let data = handle.slice(start, len, |data| rmp_serde::from_slice(data))?;
@@ -250,7 +251,7 @@
 ///
 /// Usually it is not easy to call function inside host functions.
 /// A handle provides methods to do so.
-pub trait LinkerHandle<'a, M: RawModule> {
+pub trait LinkerHandle<'a, M: RawModule> {
     /// Call methods of a module.
     fn call<T>(
         &mut self,
diff --git a/doc/src/ayaka_plugin_wasmer/lib.rs.html b/doc/src/ayaka_plugin_wasmer/lib.rs.html
index c06af61e..889b7b3c 100644
--- a/doc/src/ayaka_plugin_wasmer/lib.rs.html
+++ b/doc/src/ayaka_plugin_wasmer/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -395,7 +396,7 @@
 impl RawModule for WasmerModule {
     type Linker = WasmerLinker;
 
-    type LinkerHandle<'a> = WasmerLinkerHandle<'a>;
+    type LinkerHandle<'a> = WasmerLinkerHandle<'a>;
 
     type Func = WasmerFunction;
 
@@ -410,12 +411,12 @@
     memory: Option<Memory>,
     abi_alloc: Option<TypedFunction<i32, i32>>,
     #[allow(clippy::type_complexity)]
-    func: Arc<dyn (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static>,
+    func: Arc<dyn (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static>,
 }
 
 impl RuntimeInstanceData {
     pub fn new(
-        func: impl (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
+        func: impl (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
     ) -> Self {
         Self {
             memory: None,
@@ -429,7 +430,7 @@
     }
 
     pub fn memory(&self) -> &Memory {
-        self.memory.as_ref().expect("memory should be set first")
+        self.memory.as_ref().expect("memory should be set first")
     }
 
     pub fn set_abi_alloc(&mut self, func: TypedFunction<i32, i32>) {
@@ -539,7 +540,7 @@
 
     fn wrap_raw(
         &self,
-        f: impl (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
+        f: impl (Fn(WasmerLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
     ) -> WasmerFunction {
         WasmerFunction(RuntimeInstanceData::new(f))
     }
@@ -550,12 +551,12 @@
 pub struct WasmerFunction(RuntimeInstanceData);
 
 /// A Wasmer [`StoreMut`].
-pub struct WasmerLinkerHandle<'a> {
-    store: StoreMut<'a>,
+pub struct WasmerLinkerHandle<'a> {
+    store: StoreMut<'a>,
     memory: Memory,
 }
 
-impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a> {
+impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a> {
     fn call<T>(
         &mut self,
         m: &WasmerModule,
diff --git a/doc/src/ayaka_plugin_wasmi/lib.rs.html b/doc/src/ayaka_plugin_wasmi/lib.rs.html
index 1af5d7b8..d3be7e45 100644
--- a/doc/src/ayaka_plugin_wasmi/lib.rs.html
+++ b/doc/src/ayaka_plugin_wasmi/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -231,24 +232,24 @@
 };
 use wasmi::{core::Trap, *};
 
-unsafe fn mem_slice<'a, T: 'a>(
-    store: impl Into<StoreContext<'a, T>>,
+unsafe fn mem_slice<'a, T: 'a>(
+    store: impl Into<StoreContext<'a, T>>,
     memory: &Memory,
     start: i32,
     len: i32,
-) -> &'a [u8] {
+) -> &'a [u8] {
     memory
         .data(store)
         .get_unchecked(start as usize..)
         .get_unchecked(..len as usize)
 }
 
-unsafe fn mem_slice_mut<'a, T: 'a>(
-    store: impl Into<StoreContextMut<'a, T>>,
+unsafe fn mem_slice_mut<'a, T: 'a>(
+    store: impl Into<StoreContextMut<'a, T>>,
     memory: &Memory,
     start: i32,
     len: i32,
-) -> &'a mut [u8] {
+) -> &'a mut [u8] {
     memory
         .data_mut(store)
         .get_unchecked_mut(start as usize..)
@@ -274,20 +275,20 @@
             .start(inner_store.as_context_mut())?;
         let memory = instance
             .get_export(inner_store.as_context(), MEMORY_NAME)
-            .ok_or_else(|| anyhow!("cannot get memory"))?
+            .ok_or_else(|| anyhow!("cannot get memory"))?
             .into_memory()
-            .ok_or_else(|| anyhow!("memory is not Memory"))?;
+            .ok_or_else(|| anyhow!("memory is not Memory"))?;
         let abi_free = instance
             .get_export(inner_store.as_context(), ABI_FREE_NAME)
-            .ok_or_else(|| anyhow!("cannot get abi_free"))?
+            .ok_or_else(|| anyhow!("cannot get abi_free"))?
             .into_func()
-            .ok_or_else(|| anyhow!("abi_free is not Func"))?
+            .ok_or_else(|| anyhow!("abi_free is not Func"))?
             .typed(inner_store.as_context())?;
         let abi_alloc = instance
             .get_export(inner_store.as_context_mut(), ABI_ALLOC_NAME)
-            .ok_or_else(|| anyhow!("cannot get abi_alloc"))?
+            .ok_or_else(|| anyhow!("cannot get abi_alloc"))?
             .into_func()
-            .ok_or_else(|| anyhow!("abi_alloc is not Func"))?
+            .ok_or_else(|| anyhow!("abi_alloc is not Func"))?
             .typed(inner_store.as_context())?;
         drop(inner_store);
         Ok(Self {
@@ -309,9 +310,9 @@
         let func = self
             .instance
             .get_export(&store, name)
-            .ok_or_else(|| anyhow!("cannot get export {}", name))?
+            .ok_or_else(|| anyhow!("cannot get export {}", name))?
             .into_func()
-            .ok_or_else(|| anyhow!("{} is not Func", name))?
+            .ok_or_else(|| anyhow!("{} is not Func", name))?
             .typed::<(i32, i32), u64>(&store)?;
 
         let ptr = self.abi_alloc.call(&mut store, data.len() as i32)?;
@@ -340,7 +341,7 @@
 impl RawModule for WasmiModule {
     type Linker = WasmiLinker;
 
-    type LinkerHandle<'a> = WasmiLinkerHandle<'a>;
+    type LinkerHandle<'a> = WasmiLinkerHandle<'a>;
 
     type Func = Func;
 
@@ -386,16 +387,16 @@
 
     fn wrap_raw(
         &self,
-        f: impl (Fn(WasmiLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
+        f: impl (Fn(WasmiLinkerHandle, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
     ) -> Func {
         Func::wrap(
             self.store.lock().unwrap().as_context_mut(),
             move |mut store: Caller<()>, len: i32, data: i32| unsafe {
                 let memory = store
                     .get_export(MEMORY_NAME)
-                    .ok_or_else(|| Trap::new("cannot get memory"))?
+                    .ok_or_else(|| Trap::new("cannot get memory"))?
                     .into_memory()
-                    .ok_or_else(|| Trap::new("memory is not Memory"))?;
+                    .ok_or_else(|| Trap::new("memory is not Memory"))?;
                 let data = {
                     let store = store.as_context_mut();
                     let handle = WasmiLinkerHandle { store, memory };
@@ -403,9 +404,9 @@
                 };
                 let abi_alloc = store
                     .get_export(ABI_ALLOC_NAME)
-                    .ok_or_else(|| Trap::new("cannot get abi_alloc"))?
+                    .ok_or_else(|| Trap::new("cannot get abi_alloc"))?
                     .into_func()
-                    .ok_or_else(|| Trap::new("abi_alloc is not Func"))?
+                    .ok_or_else(|| Trap::new("abi_alloc is not Func"))?
                     .typed::<i32, i32>(store.as_context())
                     .map_err(|e| Trap::new(e.to_string()))?;
                 let ptr = abi_alloc.call(store.as_context_mut(), data.len() as i32)?;
@@ -418,12 +419,12 @@
 }
 
 /// A Wasmi [`StoreContextMut`].
-pub struct WasmiLinkerHandle<'a> {
-    store: StoreContextMut<'a, ()>,
+pub struct WasmiLinkerHandle<'a> {
+    store: StoreContextMut<'a, ()>,
     memory: Memory,
 }
 
-impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a> {
+impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a> {
     fn call<T>(
         &mut self,
         m: &WasmiModule,
diff --git a/doc/src/ayaka_plugin_wasmtime/lib.rs.html b/doc/src/ayaka_plugin_wasmtime/lib.rs.html
index d69dcf0e..cccc83a5 100644
--- a/doc/src/ayaka_plugin_wasmtime/lib.rs.html
+++ b/doc/src/ayaka_plugin_wasmtime/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -213,24 +214,24 @@
 };
 use wasmtime::*;
 
-unsafe fn mem_slice<'a, T: 'a>(
-    store: impl Into<StoreContext<'a, T>>,
+unsafe fn mem_slice<'a, T: 'a>(
+    store: impl Into<StoreContext<'a, T>>,
     memory: &Memory,
     start: i32,
     len: i32,
-) -> &'a [u8] {
+) -> &'a [u8] {
     memory
         .data(store)
         .get_unchecked(start as usize..)
         .get_unchecked(..len as usize)
 }
 
-unsafe fn mem_slice_mut<'a, T: 'a>(
-    store: impl Into<StoreContextMut<'a, T>>,
+unsafe fn mem_slice_mut<'a, T: 'a>(
+    store: impl Into<StoreContextMut<'a, T>>,
     memory: &Memory,
     start: i32,
     len: i32,
-) -> &'a mut [u8] {
+) -> &'a mut [u8] {
     memory
         .data_mut(store)
         .get_unchecked_mut(start as usize..)
@@ -254,7 +255,7 @@
         let instance = linker.instantiate(inner_store.as_context_mut(), module)?;
         let memory = instance
             .get_memory(inner_store.as_context_mut(), MEMORY_NAME)
-            .ok_or_else(|| anyhow!("cannot get memory"))?;
+            .ok_or_else(|| anyhow!("cannot get memory"))?;
         let abi_free = instance.get_typed_func(inner_store.as_context_mut(), ABI_FREE_NAME)?;
         let abi_alloc = instance.get_typed_func(inner_store.as_context_mut(), ABI_ALLOC_NAME)?;
         drop(inner_store);
@@ -304,7 +305,7 @@
 impl RawModule for WasmtimeModule {
     type Linker = WasmtimeLinker;
 
-    type LinkerHandle<'a> = WasmtimeLinkerHandle<'a>;
+    type LinkerHandle<'a> = WasmtimeLinkerHandle<'a>;
 
     type Func = Func;
 
@@ -351,16 +352,16 @@
 
     fn wrap_raw(
         &self,
-        f: impl (Fn(WasmtimeLinkerHandle<'_>, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
+        f: impl (Fn(WasmtimeLinkerHandle<'_>, i32, i32) -> Result<Vec<u8>>) + Send + Sync + 'static,
     ) -> Func {
         Func::wrap(
             self.store.lock().unwrap().as_context_mut(),
             move |mut store: Caller<()>, len: i32, data: i32| unsafe {
                 let memory = store
                     .get_export(MEMORY_NAME)
-                    .ok_or_else(|| anyhow!("cannot get memory"))?
+                    .ok_or_else(|| anyhow!("cannot get memory"))?
                     .into_memory()
-                    .ok_or_else(|| anyhow!("memory is not Memory"))?;
+                    .ok_or_else(|| anyhow!("memory is not Memory"))?;
                 let data = {
                     let store = store.as_context_mut();
                     let handle = WasmtimeLinkerHandle { store, memory };
@@ -368,9 +369,9 @@
                 };
                 let abi_alloc = store
                     .get_export(ABI_ALLOC_NAME)
-                    .ok_or_else(|| anyhow!("cannot get abi_alloc"))?
+                    .ok_or_else(|| anyhow!("cannot get abi_alloc"))?
                     .into_func()
-                    .ok_or_else(|| anyhow!("abi_alloc is not Func"))?
+                    .ok_or_else(|| anyhow!("abi_alloc is not Func"))?
                     .typed::<i32, i32>(store.as_context())?;
                 let ptr = abi_alloc.call(store.as_context_mut(), data.len() as i32)?;
                 mem_slice_mut(store.as_context_mut(), &memory, ptr, data.len() as i32)
@@ -382,12 +383,12 @@
 }
 
 /// A Wasmtime [`StoreContextMut`].
-pub struct WasmtimeLinkerHandle<'a> {
-    store: StoreContextMut<'a, ()>,
+pub struct WasmtimeLinkerHandle<'a> {
+    store: StoreContextMut<'a, ()>,
     memory: Memory,
 }
 
-impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a> {
+impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a> {
     fn call<T>(
         &mut self,
         m: &WasmtimeModule,
diff --git a/doc/src/ayaka_primitive/lib.rs.html b/doc/src/ayaka_primitive/lib.rs.html
index 50740905..2815a930 100644
--- a/doc/src/ayaka_primitive/lib.rs.html
+++ b/doc/src/ayaka_primitive/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
diff --git a/doc/src/ayaka_primitive/line.rs.html b/doc/src/ayaka_primitive/line.rs.html
index 98bf4204..a337a43a 100644
--- a/doc/src/ayaka_primitive/line.rs.html
+++ b/doc/src/ayaka_primitive/line.rs.html
@@ -1,4 +1,5 @@
-line.rs - source
1
+line.rs - source
+    
1
 2
 3
 4
@@ -82,7 +83,7 @@
         switches: Vec<String>,
     },
     /// Custom line types.
-    #[serde(with = "maps_duplicate_key_is_error")]
+    #[serde(with = "maps_duplicate_key_is_error")]
     Custom(HashMap<String, RawValue>),
 }
 
@@ -96,7 +97,7 @@
 
     #[test]
     fn parse() {
-        let lines = r#"
+        let lines = r#"
 - abc
 - exec: $a
 - switches:
@@ -104,26 +105,26 @@
   - b
 - video: 0
 -
-        "#;
+        "#;
         let lines: Vec<Line> = serde_yaml::from_str(lines).unwrap();
         assert_eq!(lines.len(), 5);
-        assert_eq!(lines[0], Line::Text(text(vec![str("abc")])));
+        assert_eq!(lines[0], Line::Text(text(vec![str("abc")])));
         assert_eq!(
             lines[1],
             Line::Custom(HashMap::from([(
-                "exec".to_string(),
-                RawValue::Str("$a".to_string())
+                "exec".to_string(),
+                RawValue::Str("$a".to_string())
             )]))
         );
         assert_eq!(
             lines[2],
             Line::Switch {
-                switches: vec!["a".to_string(), "b".to_string()]
+                switches: vec!["a".to_string(), "b".to_string()]
             }
         );
         assert_eq!(
             lines[3],
-            Line::Custom(HashMap::from([("video".to_string(), RawValue::Num(0))]))
+            Line::Custom(HashMap::from([("video".to_string(), RawValue::Num(0))]))
         );
         assert_eq!(lines[4], Line::Empty);
     }
diff --git a/doc/src/ayaka_primitive/raw_value.rs.html b/doc/src/ayaka_primitive/raw_value.rs.html
index 02acb281..df7eb874 100644
--- a/doc/src/ayaka_primitive/raw_value.rs.html
+++ b/doc/src/ayaka_primitive/raw_value.rs.html
@@ -1,4 +1,5 @@
-raw_value.rs - source
1
+raw_value.rs - source
+    
1
 2
 3
 4
@@ -200,10 +201,10 @@
 /// The basic and only type used in scripts.
 /// ```
 /// # use ayaka_primitive::RawValue;
-/// assert_eq!(serde_yaml::from_str::<RawValue>("~").unwrap(), RawValue::Unit);
-/// assert_eq!(serde_yaml::from_str::<RawValue>("true").unwrap(), RawValue::Bool(true));
-/// assert_eq!(serde_yaml::from_str::<RawValue>("123").unwrap(), RawValue::Num(123));
-/// assert_eq!(serde_yaml::from_str::<RawValue>("\"hello\"").unwrap(), RawValue::Str("hello".to_string()));
+/// assert_eq!(serde_yaml::from_str::<RawValue>("~").unwrap(), RawValue::Unit);
+/// assert_eq!(serde_yaml::from_str::<RawValue>("true").unwrap(), RawValue::Bool(true));
+/// assert_eq!(serde_yaml::from_str::<RawValue>("123").unwrap(), RawValue::Num(123));
+/// assert_eq!(serde_yaml::from_str::<RawValue>("\"hello\"").unwrap(), RawValue::Str("hello".to_string()));
 /// ```
 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Deserialize, Serialize)]
 #[serde(untagged)]
@@ -213,7 +214,7 @@
     Unit,
     /// The boolean type.
     Bool(bool),
-    /// The number type. It's [`i64`].
+    /// The number type. It's [`i64`].
     Num(i64),
     /// The string type.
     Str(String),
@@ -245,8 +246,8 @@
 
     /// Gets a boolean from the value:
     /// * A [`RawValue::Unit`] converts to `false`.
-    /// * A [`RawValue::Num`] converts to `false` if and only if it's zero.
-    /// * A [`RawValue::Str`] converts to `false` if and only if it's empty.
+    /// * A [`RawValue::Num`] converts to `false` if and only if it's zero.
+    /// * A [`RawValue::Str`] converts to `false` if and only if it's empty.
     ///
     /// ```
     /// # use ayaka_primitive::RawValue;
@@ -254,7 +255,7 @@
     /// assert!(!unit_value.get_bool());
     /// let num_value = RawValue::Num(123);
     /// assert!(num_value.get_bool());
-    /// let str_value = RawValue::Str("hello".to_string());
+    /// let str_value = RawValue::Str("hello".to_string());
     /// assert!(str_value.get_bool());
     /// let empty_str_value = RawValue::Str(String::default());
     /// assert!(!empty_str_value.get_bool());
@@ -279,7 +280,7 @@
     /// assert_eq!(unit_value.get_num(), 0);
     /// let bool_value = RawValue::Bool(true);
     /// assert_eq!(bool_value.get_num(), 1);
-    /// let str_value = RawValue::Str("hello".to_string());
+    /// let str_value = RawValue::Str("hello".to_string());
     /// assert_eq!(str_value.get_num(), 5);
     /// ```
     pub fn get_num(&self) -> i64 {
@@ -293,7 +294,7 @@
 
     /// Gets a string from the value:
     /// * A [`RawValue::Unit`] converts to empty string.
-    /// * A [`RawValue::Bool`] converts to "false" or "true".
+    /// * A [`RawValue::Bool`] converts to "false" or "true".
     /// * A [`RawValue::Num`] converts to the string representation of the number.\
     ///
     /// Be careful to use `get_str().into_owned()`, if possible, use `into_str()` instead.
@@ -301,11 +302,11 @@
     /// ```
     /// # use ayaka_primitive::RawValue;
     /// let unit_value = RawValue::Unit;
-    /// assert_eq!(unit_value.get_str(), "");
+    /// assert_eq!(unit_value.get_str(), "");
     /// let bool_value = RawValue::Bool(true);
-    /// assert_eq!(bool_value.get_str(), "true");
+    /// assert_eq!(bool_value.get_str(), "true");
     /// let num_value = RawValue::Num(123);
-    /// assert_eq!(num_value.get_str(), "123");
+    /// assert_eq!(num_value.get_str(), "123");
     /// ```
     pub fn get_str(&self) -> Cow<str> {
         match self {
@@ -318,7 +319,7 @@
 
     /// Gets a string from the value:
     /// * A [`RawValue::Unit`] converts to empty string.
-    /// * A [`RawValue::Bool`] converts to "false" or "true".
+    /// * A [`RawValue::Bool`] converts to "false" or "true".
     /// * A [`RawValue::Num`] converts to the string representation of the number.
     pub fn into_str(self) -> String {
         match self {
@@ -337,56 +338,56 @@
     #[test]
     fn serde_value() {
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("~").unwrap(),
+            serde_yaml::from_str::<RawValue>("~").unwrap(),
             RawValue::Unit
         );
 
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("true").unwrap(),
+            serde_yaml::from_str::<RawValue>("true").unwrap(),
             RawValue::Bool(true)
         );
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("false").unwrap(),
+            serde_yaml::from_str::<RawValue>("false").unwrap(),
             RawValue::Bool(false)
         );
 
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("114514").unwrap(),
+            serde_yaml::from_str::<RawValue>("114514").unwrap(),
             RawValue::Num(114514)
         );
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("-1919810").unwrap(),
+            serde_yaml::from_str::<RawValue>("-1919810").unwrap(),
             RawValue::Num(-1919810)
         );
 
         assert_eq!(
-            serde_yaml::from_str::<RawValue>("\"Hello world!\"").unwrap(),
-            RawValue::Str("Hello world!".into())
+            serde_yaml::from_str::<RawValue>("\"Hello world!\"").unwrap(),
+            RawValue::Str("Hello world!".into())
         );
 
-        assert_eq!(serde_yaml::to_string(&RawValue::Unit).unwrap(), "null\n");
+        assert_eq!(serde_yaml::to_string(&RawValue::Unit).unwrap(), "null\n");
 
         assert_eq!(
             serde_yaml::to_string(&RawValue::Bool(true)).unwrap(),
-            "true\n"
+            "true\n"
         );
         assert_eq!(
             serde_yaml::to_string(&RawValue::Bool(false)).unwrap(),
-            "false\n"
+            "false\n"
         );
 
         assert_eq!(
             serde_yaml::to_string(&RawValue::Num(114514)).unwrap(),
-            "114514\n"
+            "114514\n"
         );
         assert_eq!(
             serde_yaml::to_string(&RawValue::Num(-1919)).unwrap(),
-            "-1919\n"
+            "-1919\n"
         );
 
         assert_eq!(
-            serde_yaml::to_string(&RawValue::Str("aaa".into())).unwrap(),
-            "aaa\n"
+            serde_yaml::to_string(&RawValue::Str("aaa".into())).unwrap(),
+            "aaa\n"
         );
     }
 }
diff --git a/doc/src/ayaka_primitive/text.rs.html b/doc/src/ayaka_primitive/text.rs.html
index 11c8061e..5a7ea390 100644
--- a/doc/src/ayaka_primitive/text.rs.html
+++ b/doc/src/ayaka_primitive/text.rs.html
@@ -1,4 +1,5 @@
-text.rs - source
1
+text.rs - source
+    
1
 2
 3
 4
@@ -285,12 +286,12 @@
 }
 
 fn is_str_end(c: char) -> bool {
-    c.is_whitespace() || c == '\\' || c == '{' || c == '}'
+    c.is_whitespace() || c == '\\' || c == '{' || c == '}'
 }
 
 fn parse_arg(i: &str) -> Res<&str, SubText> {
     let (i, _) = take_space(i)?;
-    let (i, sub_text) = delimited(char('{'), parse_sub_text, char('}'))(i)?;
+    let (i, sub_text) = delimited(char('{'), parse_sub_text, char('}'))(i)?;
     Ok((i, sub_text))
 }
 
@@ -301,12 +302,12 @@
 }
 
 fn parse_escape_char(i: &str) -> Res<&str, SubText> {
-    let (i, c) = one_of("\\{}/")(i)?;
+    let (i, c) = one_of("\\{}/")(i)?;
     Ok((i, SubText::Char(c)))
 }
 
 fn parse_sub_text_escape(i: &str) -> Res<&str, SubText> {
-    let (i, _) = char('\\')(i)?;
+    let (i, _) = char('\\')(i)?;
     alt((parse_escape_char, parse_escape_command))(i)
 }
 
@@ -319,10 +320,10 @@
     }?;
     let (i, post_space) = take_space(i)?;
     let str = format!(
-        "{}{}{}",
-        if !pre_space.is_empty() { " " } else { "" },
+        "{}{}{}",
+        if !pre_space.is_empty() { " " } else { "" },
         str,
-        if !post_space.is_empty() { " " } else { "" }
+        if !post_space.is_empty() { " " } else { "" }
     );
     Ok((i, SubText::Str(str)))
 }
@@ -349,9 +350,9 @@
 }
 
 fn parse_text_with_ch(i: &str) -> Res<&str, Text> {
-    let (i, _) = char('/')(i)?;
-    let (i, ch_tag) = map(terminated(take_until("/"), char('/')), str::trim)(i)?;
-    let (i, ch_alias) = map(terminated(take_until("/"), char('/')), str::trim)(i)?;
+    let (i, _) = char('/')(i)?;
+    let (i, ch_tag) = map(terminated(take_until("/"), char('/')), str::trim)(i)?;
+    let (i, ch_alias) = map(terminated(take_until("/"), char('/')), str::trim)(i)?;
     let (i, mut text) = parse_text_without_ch(i)?;
     if !ch_tag.is_empty() {
         text.ch_tag = Some(ch_tag.to_string());
@@ -366,18 +367,18 @@
     all_consuming(alt((parse_text_with_ch, parse_text_without_ch)))(i)
 }
 
-impl<'a> TryFrom<&'a str> for Text {
-    type Error = VerboseError<&'a str>;
+impl<'a> TryFrom<&'a str> for Text {
+    type Error = VerboseError<&'a str>;
 
-    fn try_from(value: &'a str) -> Result<Self, Self::Error> {
+    fn try_from(value: &'a str) -> Result<Self, Self::Error> {
         parse_text(value).finish().map(|(_, text)| text)
     }
 }
 
-impl<'de> Deserialize<'de> for Text {
+impl<'de> Deserialize<'de> for Text {
     fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
     where
-        D: serde::Deserializer<'de>,
+        D: serde::Deserializer<'de>,
     {
         let raw_value = RawValue::deserialize(deserializer)?;
         let text = Text::try_from(raw_value.get_str().as_ref())
@@ -424,26 +425,26 @@
 
     #[test]
     fn basic() {
-        assert_eq!(parse("\\\\"), text(vec![char('\\')]));
-        assert_eq!(parse("\\{"), text(vec![char('{')]));
+        assert_eq!(parse("\\\\"), text(vec![char('\\')]));
+        assert_eq!(parse("\\{"), text(vec![char('{')]));
     }
 
     #[test]
     fn space() {
         assert_eq!(
-            parse("\\cmd{123} \\cmd{123}"),
+            parse("\\cmd{123} \\cmd{123}"),
             text(vec![
-                cmd("cmd", vec![str("123")]),
-                str(" "),
-                cmd("cmd", vec![str("123")]),
+                cmd("cmd", vec![str("123")]),
+                str(" "),
+                cmd("cmd", vec![str("123")]),
             ])
         );
         assert_eq!(
-            parse("\\par \\cmd{123}"),
+            parse("\\par \\cmd{123}"),
             text(vec![
-                cmd("par", vec![]),
-                str(" "),
-                cmd("cmd", vec![str("123")])
+                cmd("par", vec![]),
+                str(" "),
+                cmd("cmd", vec![str("123")])
             ])
         );
     }
@@ -451,29 +452,29 @@
     #[test]
     fn embedded() {
         assert_eq!(
-            parse(r"\switch{\exec{114514}}"),
-            text(vec![cmd("switch", vec![cmd("exec", vec![str("114514")])])])
+            parse(r"\switch{\exec{114514}}"),
+            text(vec![cmd("switch", vec![cmd("exec", vec![str("114514")])])])
         );
     }
 
     #[test]
     fn lf() {
-        assert_eq!(parse(" "), text(vec![str(" ")]));
-        assert_eq!(parse("  "), text(vec![str(" ")]));
-        assert_eq!(parse(" \n "), text(vec![str(" ")]));
-        assert_eq!(parse(" 123 "), text(vec![str(" 123 ")]));
-        assert_eq!(parse(" \n123\t "), text(vec![str(" 123 ")]));
-        assert_eq!(parse("123"), text(vec![str("123")]));
+        assert_eq!(parse(" "), text(vec![str(" ")]));
+        assert_eq!(parse("  "), text(vec![str(" ")]));
+        assert_eq!(parse(" \n "), text(vec![str(" ")]));
+        assert_eq!(parse(" 123 "), text(vec![str(" 123 ")]));
+        assert_eq!(parse(" \n123\t "), text(vec![str(" 123 ")]));
+        assert_eq!(parse("123"), text(vec![str("123")]));
     }
 
     #[test]
     fn character() {
-        assert_eq!(parse("/ch//"), text_ch(Some("ch"), None, vec![]));
+        assert_eq!(parse("/ch//"), text_ch(Some("ch"), None, vec![]));
         assert_eq!(
-            parse("/ch/alias/"),
-            text_ch(Some("ch"), Some("alias"), vec![])
+            parse("/ch/alias/"),
+            text_ch(Some("ch"), Some("alias"), vec![])
         );
-        assert_eq!(parse("/ / /"), text_ch(None, None, vec![]));
+        assert_eq!(parse("/ / /"), text_ch(None, None, vec![]));
     }
 }
 
\ No newline at end of file diff --git a/doc/src/ayaka_runtime/config.rs.html b/doc/src/ayaka_runtime/config.rs.html index 897a33df..4da0f7e5 100644 --- a/doc/src/ayaka_runtime/config.rs.html +++ b/doc/src/ayaka_runtime/config.rs.html @@ -1,4 +1,5 @@ -config.rs - source
1
+config.rs - source
+    
1
 2
 3
 4
@@ -218,7 +219,7 @@
         }
     }
 
-    fn choose_from_keys<'a, V>(&'a self, loc: &Locale, map: &'a HashMap<Locale, V>) -> &'a Locale {
+    fn choose_from_keys<'a, V>(&'a self, loc: &Locale, map: &'a HashMap<Locale, V>) -> &'a Locale {
         loc.choose_from(map.keys())
             .unwrap_or(&self.config.base_lang)
     }
diff --git a/doc/src/ayaka_runtime/context.rs.html b/doc/src/ayaka_runtime/context.rs.html
index c9abd1fd..1907af4b 100644
--- a/doc/src/ayaka_runtime/context.rs.html
+++ b/doc/src/ayaka_runtime/context.rs.html
@@ -1,4 +1,5 @@
-context.rs - source
1
+context.rs - source
+    
1
 2
 3
 4
@@ -588,7 +589,7 @@
 use vfs_tar::TarFS;
 
 /// The game running context.
-pub struct Context<M: RawModule + Send + Sync + 'static> {
+pub struct Context<M: RawModule + Send + Sync + 'static> {
     game: Game,
     root_path: VfsPath,
     frontend: FrontendType,
@@ -600,7 +601,7 @@
 
 /// The open status when creating [`Context`].
 #[derive(Debug, Clone, PartialEq, Eq, Serialize)]
-#[serde(tag = "t", content = "data")]
+#[serde(tag = "t", content = "data")]
 pub enum OpenStatus {
     /// Start loading config file.
     LoadProfile,
@@ -626,12 +627,12 @@
 }
 
 /// Builder of [`Context`].
-pub struct ContextBuilder<M: RawModule + Send + Sync + 'static> {
+pub struct ContextBuilder<M: RawModule + Send + Sync + 'static> {
     frontend: FrontendType,
     linker: M::Linker,
 }
 
-impl<M: RawModule + Send + Sync + 'static> ContextBuilder<M> {
+impl<M: RawModule + Send + Sync + 'static> ContextBuilder<M> {
     /// Create a new [`ContextBuilder`] with frontend type and plugin runtime linker.
     pub fn new(frontend: FrontendType, linker: M::Linker) -> Self {
         Self { frontend, linker }
@@ -641,18 +642,18 @@
         let (root_path, filename) = if paths.len() == 1 {
             let path = paths[0].as_ref();
             let ext = path.extension().unwrap_or_default();
-            if ext == "yaml" {
+            if ext == "yaml" {
                 let root_path = path
                     .parent()
-                    .ok_or_else(|| anyhow!("Cannot get parent from input path."))?;
+                    .ok_or_else(|| anyhow!("Cannot get parent from input path."))?;
                 (
                     VfsPath::from(PhysicalFS::new(root_path)),
                     path.file_name().unwrap_or_default().to_string_lossy(),
                 )
-            } else if ext == "ayapack" {
-                (TarFS::new_mmap(path)?.into(), "config.yaml".into())
+            } else if ext == "ayapack" {
+                (TarFS::new_mmap(path)?.into(), "config.yaml".into())
             } else {
-                bail!("Cannot determine filesystem.")
+                bail!("Cannot determine filesystem.")
             }
         } else {
             let files = paths
@@ -660,7 +661,7 @@
                 .rev()
                 .map(|path| TarFS::new_mmap(path.as_ref()).map(VfsPath::from))
                 .collect::<Result<Vec<_>, _>>()?;
-            (OverlayFS::new(&files).into(), "config.yaml".into())
+            (OverlayFS::new(&files).into(), "config.yaml".into())
         };
         Ok((root_path, filename))
     }
@@ -672,7 +673,7 @@
     /// and the latter one will override the former one.
     pub fn with_paths(self, paths: &[impl AsRef<Path>]) -> Result<ContextBuilderWithPaths<M>> {
         if paths.is_empty() {
-            bail!("At least one path should be input.");
+            bail!("At least one path should be input.");
         }
         let (root_path, filename) = Self::open_fs_from_paths(paths)?;
         Ok(ContextBuilderWithPaths {
@@ -684,13 +685,13 @@
     }
 
     /// Open a context with config paths.
-    pub fn with_vfs(self, paths: &[VfsPath]) -> Result<ContextBuilderWithPaths<'static, M>> {
+    pub fn with_vfs(self, paths: &[VfsPath]) -> Result<ContextBuilderWithPaths<'static, M>> {
         if paths.is_empty() {
-            bail!("At least one path should be input.");
+            bail!("At least one path should be input.");
         }
         Ok(ContextBuilderWithPaths {
             root_path: OverlayFS::new(paths).into(),
-            filename: "config.yaml".into(),
+            filename: "config.yaml".into(),
             frontend: self.frontend,
             linker: self.linker,
         })
@@ -698,25 +699,25 @@
 }
 
 /// Builder of [`Context`].
-pub struct ContextBuilderWithPaths<'a, M: RawModule + Send + Sync + 'static> {
+pub struct ContextBuilderWithPaths<'a, M: RawModule + Send + Sync + 'static> {
     root_path: VfsPath,
-    filename: Cow<'a, str>,
+    filename: Cow<'a, str>,
     frontend: FrontendType,
     linker: M::Linker,
 }
 
-impl<'a, M: RawModule + Send + Sync + 'static> ContextBuilderWithPaths<'a, M> {
+impl<'a, M: RawModule + Send + Sync + 'static> ContextBuilderWithPaths<'a, M> {
     /// Open the config and load the [`Context`].
-    pub fn open(self) -> impl Future<Output = Result<Context<M>>> + Stream<Item = OpenStatus> + 'a {
+    pub fn open(self) -> impl Future<Output = Result<Context<M>>> + Stream<Item = OpenStatus> + 'a {
         Context::<M>::open(self.root_path, self.filename, self.frontend, self.linker)
     }
 }
 
-impl<M: RawModule + Send + Sync + 'static> Context<M> {
-    #[stream(OpenStatus, lifetime = 'a)]
-    async fn open<'a>(
+impl<M: RawModule + Send + Sync + 'static> Context<M> {
+    #[stream(OpenStatus, lifetime = 'a)]
+    async fn open<'a>(
         root_path: VfsPath,
-        filename: impl AsRef<str> + 'a,
+        filename: impl AsRef<str> + 'a,
         frontend: FrontendType,
         linker: M::Linker,
     ) -> Result<Self> {
@@ -780,10 +781,10 @@
         if let Some(res_path) = &config.res {
             let res_path = root_path.join(res_path)?;
             for p in res_path.read_dir()? {
-                if p.is_file()? && p.extension().unwrap_or_default() == "yaml" {
+                if p.is_file()? && p.extension().unwrap_or_default() == "yaml" {
                     if let Ok(loc) = p
                         .filename()
-                        .strip_suffix(".yaml")
+                        .strip_suffix(".yaml")
                         .unwrap_or_default()
                         .parse::<Locale>()
                     {
@@ -808,10 +809,10 @@
                 if let Ok(loc) = p.filename().parse::<Locale>() {
                     let mut paras_map = HashMap::new();
                     for p in p.read_dir()? {
-                        if p.is_file()? && p.extension().unwrap_or_default() == "yaml" {
+                        if p.is_file()? && p.extension().unwrap_or_default() == "yaml" {
                             let key = p
                                 .filename()
-                                .strip_suffix(".yaml")
+                                .strip_suffix(".yaml")
                                 .unwrap_or_default()
                                 .to_string();
                             let para = p.open_file()?;
@@ -883,7 +884,7 @@
         assert!(self.switches[i]);
         self.ctx
             .locals
-            .insert("?".to_string(), RawValue::Num(i as i64));
+            .insert("?".to_string(), RawValue::Num(i as i64));
         for i in 0..self.switches.len() {
             self.ctx.locals.remove(&i.to_string());
         }
@@ -895,7 +896,7 @@
         action.character = text.ch_alias.clone().or_else(|| {
             self.find_res(
                 loc,
-                &format!("ch_{}", action.ch_key.as_deref().unwrap_or_default()),
+                &format!("ch_{}", action.ch_key.as_deref().unwrap_or_default()),
             )
             .map(|value| value.get_str().into_owned())
         });
@@ -923,29 +924,29 @@
                     arg_strings.push(sub_action.to_string());
                 }
                 match cmd.as_str() {
-                    "res" => {
+                    "res" => {
                         if let Some(loc) = loc {
                             if arg_strings.len() != 1 {
-                                log::warn!("Invalid parameter count for `res`: {}", args.len())
+                                log::warn!("Invalid parameter count for `res`: {}", args.len())
                             }
                             if let Some(n) = arg_strings.first() {
                                 if let Some(value) = self.find_res(loc, n) {
                                     action.push_back_block(value.get_str())
                                 } else {
-                                    log::warn!("Cannot find resource {}", n);
+                                    log::warn!("Cannot find resource {}", n);
                                 }
                             }
                         }
                     }
-                    "var" => {
+                    "var" => {
                         if arg_strings.len() != 1 {
-                            log::warn!("Invalid parameter count for `var`: {}", args.len())
+                            log::warn!("Invalid parameter count for `var`: {}", args.len())
                         }
                         if let Some(n) = arg_strings.first() {
                             if let Some(value) = locals.get(n) {
                                 action.push_back_block(value.get_str())
                             } else {
-                                log::warn!("Cannot find variable {}", n)
+                                log::warn!("Cannot find variable {}", n)
                             }
                         }
                     }
@@ -1010,7 +1011,7 @@
                         self.ctx.locals.extend(res.locals);
                         self.vars.extend(res.vars);
                     } else {
-                        bail!("Cannot find command {}", cmd)
+                        bail!("Cannot find command {}", cmd)
                     }
                 }
             }
@@ -1043,7 +1044,7 @@
                     vars.extend(vars_base);
                     Ok(Action::Custom(vars))
                 }
-                _ => bail!("Mismatching action type"),
+                _ => bail!("Mismatching action type"),
             },
         }
     }
@@ -1110,7 +1111,7 @@
                 (true, false) => {
                     self.ctx.cur_para = cur_para
                         .and_then(|p| p.next.as_ref())
-                        .map(|text| unwrap_or_default_log!(self.call(text), "Cannot get next para"))
+                        .map(|text| unwrap_or_default_log!(self.call(text), "Cannot get next para"))
                         .unwrap_or_default();
                     self.ctx.cur_act = 0;
                 }
@@ -1118,7 +1119,7 @@
                     if self.ctx.cur_base_para == self.ctx.cur_para {
                         if !self.ctx.cur_para.is_empty() {
                             error!(
-                                "Cannot find paragraph \"{}\"",
+                                "Cannot find paragraph \"{}\"",
                                 self.ctx.cur_para.escape_default()
                             );
                         }
@@ -1131,7 +1132,7 @@
         };
 
         let ctx = cur_text_base.cloned().map(|t| {
-            unwrap_or_default_log!(self.process_line(t), "Parse line error");
+            unwrap_or_default_log!(self.process_line(t), "Parse line error");
             self.ctx.clone()
         });
         self.ctx.cur_act += 1;
diff --git a/doc/src/ayaka_runtime/lib.rs.html b/doc/src/ayaka_runtime/lib.rs.html
index 36fb928b..ffeb0910 100644
--- a/doc/src/ayaka_runtime/lib.rs.html
+++ b/doc/src/ayaka_runtime/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -42,7 +43,7 @@
 //!
 //! This runtime provides the game config, running context,
 //! plugin system and settings system.
-//! It can be treated as the "backend" of the game engine.
+//! It can be treated as the "backend" of the game engine.
 
 #![warn(missing_docs)]
 #![deny(unsafe_code)]
@@ -75,7 +76,7 @@
 
 /// Get the version of Ayaka runtime.
 /// This version string is exacted from `CARGO_PKG_VERSION`.
-pub fn version() -> &'static str {
-    env!("CARGO_PKG_VERSION")
+pub fn version() -> &'static str {
+    env!("CARGO_PKG_VERSION")
 }
 
\ No newline at end of file diff --git a/doc/src/ayaka_runtime/locale.rs.html b/doc/src/ayaka_runtime/locale.rs.html index 7ebe10f1..335c3604 100644 --- a/doc/src/ayaka_runtime/locale.rs.html +++ b/doc/src/ayaka_runtime/locale.rs.html @@ -1,4 +1,5 @@ -locale.rs - source
1
+locale.rs - source
+    
1
 2
 3
 4
@@ -138,7 +139,7 @@
     ///
     /// ```
     /// # use ayaka_runtime::Locale;
-    /// println!("Current locale: {}", Locale::current());
+    /// println!("Current locale: {}", Locale::current());
     /// ```
     pub fn current() -> Self {
         get_locale()
@@ -152,22 +153,22 @@
     ///
     /// ```
     /// # use ayaka_runtime::locale;
-    /// let current = locale!("zh-CN");
+    /// let current = locale!("zh-CN");
     /// let accepts = [
-    ///     locale!("en"),
-    ///     locale!("ja"),
-    ///     locale!("zh-Hans"),
-    ///     locale!("zh-Hant"),
+    ///     locale!("en"),
+    ///     locale!("ja"),
+    ///     locale!("zh-Hans"),
+    ///     locale!("zh-Hant"),
     /// ];
     /// assert_eq!(
     ///     current.choose_from(&accepts),
-    ///     Some(&locale!("zh-Hans")),
+    ///     Some(&locale!("zh-Hans")),
     /// );
     /// ```
-    pub fn choose_from<'a>(
+    pub fn choose_from<'a>(
         &self,
-        locales: impl IntoIterator<Item = impl Into<&'a Locale>>,
-    ) -> Option<&'a Locale> {
+        locales: impl IntoIterator<Item = impl Into<&'a Locale>>,
+    ) -> Option<&'a Locale> {
         MATCHER
             .matches(self.0.clone(), locales.into_iter().map(|loc| loc.into()))
             .map(|(lang, _)| lang)
@@ -175,7 +176,7 @@
 }
 
 impl Display for Locale {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         self.0.fmt(f)
     }
 }
@@ -202,8 +203,8 @@
 ///
 /// ```
 /// # use ayaka_runtime::{locale, Locale};
-/// const ZH_CN: Locale = locale!("zh_CN");
-/// let zh_cn: Locale = "zh_CN".parse().unwrap();
+/// const ZH_CN: Locale = locale!("zh_CN");
+/// let zh_cn: Locale = "zh_CN".parse().unwrap();
 /// assert_eq!(ZH_CN, zh_cn);
 /// ```
 #[macro_export]
@@ -219,24 +220,24 @@
 
     #[test]
     fn parse() {
-        assert_eq!(locale!("zh-Hans").to_string(), "zh-Hans");
+        assert_eq!(locale!("zh-Hans").to_string(), "zh-Hans");
     }
 
     #[test]
     fn accept() {
         let accepts = [
-            locale!("en"),
-            locale!("ja"),
-            locale!("zh-Hans"),
-            locale!("zh-Hant"),
+            locale!("en"),
+            locale!("ja"),
+            locale!("zh-Hans"),
+            locale!("zh-Hant"),
         ];
         assert_eq!(
-            locale!("zh-CN").choose_from(&accepts),
-            Some(&locale!("zh-Hans"))
+            locale!("zh-CN").choose_from(&accepts),
+            Some(&locale!("zh-Hans"))
         );
         assert_eq!(
-            locale!("zh-TW").choose_from(&accepts),
-            Some(&locale!("zh-Hant"))
+            locale!("zh-TW").choose_from(&accepts),
+            Some(&locale!("zh-Hant"))
         );
     }
 }
diff --git a/doc/src/ayaka_runtime/plugin.rs.html b/doc/src/ayaka_runtime/plugin.rs.html
index 50afe450..f34e0fd0 100644
--- a/doc/src/ayaka_runtime/plugin.rs.html
+++ b/doc/src/ayaka_runtime/plugin.rs.html
@@ -1,4 +1,5 @@
-plugin.rs - source
1
+plugin.rs - source
+    
1
 2
 3
 4
@@ -266,12 +267,12 @@
 
     /// Gets the [`PluginType`].
     pub fn plugin_type(&self) -> Result<PluginType> {
-        self.module.call("plugin_type", ())
+        self.module.call("plugin_type", ())
     }
 
     /// Processes [`Action`] in action plugin.
     pub fn process_action(&self, ctx: ActionProcessContextRef) -> Result<ActionProcessResult> {
-        self.module.call("process_action", (ctx,))
+        self.module.call("process_action", (ctx,))
     }
 
     /// Calls a custom command in the text plugin.
@@ -295,12 +296,12 @@
 
     /// Processes [`Game`] when opening the config file.
     pub fn process_game(&self, ctx: GameProcessContextRef) -> Result<GameProcessResult> {
-        self.module.call("process_game", (ctx,))
+        self.module.call("process_game", (ctx,))
     }
 }
 
 /// The plugin runtime.
-pub struct Runtime<M: RawModule + Send + Sync + 'static> {
+pub struct Runtime<M: RawModule + Send + Sync + 'static> {
     modules: HashMap<String, Module<M>>,
     action_modules: Vec<String>,
     text_modules: HashMap<String, String>,
@@ -317,17 +318,17 @@
     LoadPlugin(String, usize, usize),
 }
 
-impl<M: RawModule + Send + Sync + 'static> Runtime<M> {
+impl<M: RawModule + Send + Sync + 'static> Runtime<M> {
     /// Load plugins from specific directory and plugin names.
     ///
     /// The actual load folder will be `rel_to.join(dir)`.
     ///
     /// If `names` is empty, all WASM files will be loaded.
-    #[stream(LoadStatus, lifetime = 'a)]
-    pub async fn load<'a>(
-        dir: impl AsRef<str> + 'a,
-        root_path: &'a VfsPath,
-        names: &'a [impl AsRef<str>],
+    #[stream(LoadStatus, lifetime = 'a)]
+    pub async fn load<'a>(
+        dir: impl AsRef<str> + 'a,
+        root_path: &'a VfsPath,
+        names: &'a [impl AsRef<str>],
         mut store: M::Linker,
     ) -> Result<Arc<Self>> {
         let path = root_path.join(dir)?;
@@ -370,11 +371,11 @@
             path.read_dir()?
                 .filter_map(|p| {
                     if p.is_file().unwrap_or_default()
-                        && p.extension().unwrap_or_default() == "wasm"
+                        && p.extension().unwrap_or_default() == "wasm"
                     {
                         let name = p
                             .filename()
-                            .strip_suffix(".wasm")
+                            .strip_suffix(".wasm")
                             .unwrap_or_default()
                             .to_string();
                         Some((name, p))
@@ -388,7 +389,7 @@
                 .iter()
                 .filter_map(|name| {
                     let name = name.as_ref();
-                    let p = path.join(format!("{}.wasm", name)).ok()?;
+                    let p = path.join(format!("{}.wasm", name)).ok()?;
                     if p.exists().unwrap_or_default() {
                         Some((name.to_string(), p))
                     } else {
@@ -402,7 +403,7 @@
 
     fn insert_module(&mut self, name: String, module: Module<M>) -> Result<()> {
         let plugin_type =
-            unwrap_or_default_log!(module.plugin_type(), "Cannot determine module type");
+            unwrap_or_default_log!(module.plugin_type(), "Cannot determine module type");
         if plugin_type.action {
             self.action_modules.push(name.clone());
         }
@@ -410,7 +411,7 @@
             let res = self.text_modules.insert(cmd.clone(), name.clone());
             if let Some(old_module) = res {
                 log::warn!(
-                    "Text command `{}` is overrided by \"{}\" over \"{}\"",
+                    "Text command `{}` is overrided by \"{}\" over \"{}\"",
                     cmd,
                     name,
                     old_module
@@ -421,7 +422,7 @@
             let res = self.line_modules.insert(cmd.clone(), name.clone());
             if let Some(old_module) = res {
                 log::warn!(
-                    "Line command `{}` is overrided by \"{}\" over \"{}\"",
+                    "Line command `{}` is overrided by \"{}\" over \"{}\"",
                     cmd,
                     name,
                     old_module
diff --git a/doc/src/ayaka_runtime/plugin/fs_interop.rs.html b/doc/src/ayaka_runtime/plugin/fs_interop.rs.html
index dfe3086e..6d3cb9bd 100644
--- a/doc/src/ayaka_runtime/plugin/fs_interop.rs.html
+++ b/doc/src/ayaka_runtime/plugin/fs_interop.rs.html
@@ -1,4 +1,5 @@
-fs_interop.rs - source
1
+fs_interop.rs - source
+    
1
 2
 3
 4
@@ -167,15 +168,15 @@
         Ok(map.lock().unwrap().seek(fd, pos.into()).ok())
     });
     store.import(
-        "fs",
+        "fs",
         HashMap::from([
-            ("__read_dir".to_string(), read_dir_func),
-            ("__metadata".to_string(), metadata_func),
-            ("__exists".to_string(), exists_func),
-            ("__open_file".to_string(), open_file_func),
-            ("__close_file".to_string(), close_file_func),
-            ("__file_read".to_string(), file_read_func),
-            ("__file_seek".to_string(), file_seek_func),
+            ("__read_dir".to_string(), read_dir_func),
+            ("__metadata".to_string(), metadata_func),
+            ("__exists".to_string(), exists_func),
+            ("__open_file".to_string(), open_file_func),
+            ("__close_file".to_string(), close_file_func),
+            ("__file_read".to_string(), file_read_func),
+            ("__file_seek".to_string(), file_seek_func),
         ]),
     )?;
     Ok(())
diff --git a/doc/src/ayaka_runtime/plugin/log_interop.rs.html b/doc/src/ayaka_runtime/plugin/log_interop.rs.html
index e5922dc6..482b97e1 100644
--- a/doc/src/ayaka_runtime/plugin/log_interop.rs.html
+++ b/doc/src/ayaka_runtime/plugin/log_interop.rs.html
@@ -1,4 +1,5 @@
-log_interop.rs - source
1
+log_interop.rs - source
+    
1
 2
 3
 4
@@ -38,12 +39,12 @@
 
 pub fn register<M: RawModule>(store: &mut impl Linker<M>) -> Result<()> {
     let log_func = store.wrap(|(data,): (Record,)| {
-        let target = format!("{}::<plugin>::{}", module_path!(), data.target);
+        let target = format!("{}::<plugin>::{}", module_path!(), data.target);
         log::logger().log(
             &log::Record::builder()
                 .level(data.level)
                 .target(&target)
-                .args(format_args!("{}", data.msg))
+                .args(format_args!("{}", data.msg))
                 .module_path(data.module_path.as_deref())
                 .file(data.file.as_deref())
                 .line(data.line)
@@ -56,10 +57,10 @@
         Ok(())
     });
     store.import(
-        "log",
+        "log",
         HashMap::from([
-            ("__log".to_string(), log_func),
-            ("__log_flush".to_string(), log_flush_func),
+            ("__log".to_string(), log_func),
+            ("__log_flush".to_string(), log_flush_func),
         ]),
     )?;
     Ok(())
diff --git a/doc/src/ayaka_runtime/plugin/plugin_interop.rs.html b/doc/src/ayaka_runtime/plugin/plugin_interop.rs.html
index 8de2345e..68f53e0d 100644
--- a/doc/src/ayaka_runtime/plugin/plugin_interop.rs.html
+++ b/doc/src/ayaka_runtime/plugin/plugin_interop.rs.html
@@ -1,4 +1,5 @@
-plugin_interop.rs - source
1
+plugin_interop.rs - source
+    
1
 2
 3
 4
@@ -50,7 +51,7 @@
     sync::{Arc, RwLock, Weak},
 };
 
-pub fn register<M: RawModule + Send + Sync + 'static>(
+pub fn register<M: RawModule + Send + Sync + 'static>(
     store: &mut impl Linker<M>,
     handle: Arc<RwLock<Weak<Runtime<M>>>>,
 ) -> Result<()> {
@@ -59,7 +60,7 @@
         if let Some(this) = h.read().unwrap().upgrade() {
             Ok(this.modules.keys().cloned().collect::<Vec<_>>())
         } else {
-            bail!("Runtime hasn't been initialized.")
+            bail!("Runtime hasn't been initialized.")
         }
     });
     let h = handle;
@@ -73,15 +74,15 @@
                     |slice| Ok(slice.to_vec()),
                 )?)
             } else {
-                bail!("Runtime hasn't been initialized.")
+                bail!("Runtime hasn't been initialized.")
             }
         },
     );
     store.import(
-        "plugin",
+        "plugin",
         HashMap::from([
-            ("__modules".to_string(), modules_func),
-            ("__call".to_string(), call_func),
+            ("__modules".to_string(), modules_func),
+            ("__call".to_string(), call_func),
         ]),
     )?;
     Ok(())
diff --git a/doc/src/ayaka_runtime/plugin/rand_interop.rs.html b/doc/src/ayaka_runtime/plugin/rand_interop.rs.html
index 8271b93c..23e8cbf5 100644
--- a/doc/src/ayaka_runtime/plugin/rand_interop.rs.html
+++ b/doc/src/ayaka_runtime/plugin/rand_interop.rs.html
@@ -1,4 +1,5 @@
-rand_interop.rs - source
1
+rand_interop.rs - source
+    
1
 2
 3
 4
@@ -31,9 +32,9 @@
     let rnd_func = store.wrap(|(start, end): (i64, i64)| {
         RNG.lock()
             .map(|mut rng| rng.gen_range(start..end))
-            .map_err(|_| anyhow!("Cannot lock random engine"))
+            .map_err(|_| anyhow!("Cannot lock random engine"))
     });
-    store.import("rand", HashMap::from([("__rnd".to_string(), rnd_func)]))?;
+    store.import("rand", HashMap::from([("__rnd".to_string(), rnd_func)]))?;
     Ok(())
 }
 
\ No newline at end of file diff --git a/doc/src/ayaka_runtime/plugin/script_interop.rs.html b/doc/src/ayaka_runtime/plugin/script_interop.rs.html index 5813ea23..bb53c1a4 100644 --- a/doc/src/ayaka_runtime/plugin/script_interop.rs.html +++ b/doc/src/ayaka_runtime/plugin/script_interop.rs.html @@ -1,4 +1,5 @@ -script_interop.rs - source
1
+script_interop.rs - source
+    
1
 2
 3
 4
@@ -19,8 +20,8 @@
 pub fn register<M: RawModule>(store: &mut impl Linker<M>) -> Result<()> {
     let parse_func = store.wrap(|(program,): (String,)| program.parse::<Program>());
     store.import(
-        "script",
-        HashMap::from([("__parse".to_string(), parse_func)]),
+        "script",
+        HashMap::from([("__parse".to_string(), parse_func)]),
     )?;
     Ok(())
 }
diff --git a/doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-a76246b28ecc79aa/out/grammer.rs.html b/doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-040a41c5ed4539b4/out/grammer.rs.html
similarity index 92%
rename from doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-a76246b28ecc79aa/out/grammer.rs.html
rename to doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-040a41c5ed4539b4/out/grammer.rs.html
index f6108dd6..92fc51f9 100644
--- a/doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-a76246b28ecc79aa/out/grammer.rs.html
+++ b/doc/src/ayaka_script/home/runner/work/Ayaka/Ayaka/utils/target/debug/build/ayaka-script-040a41c5ed4539b4/out/grammer.rs.html
@@ -1,4 +1,5 @@
-grammer.rs - source
1
+grammer.rs - source
+    
1
 2
 3
 4
@@ -50872,7 +50873,7 @@
 50872
 50873
 50874
-
// auto-generated: "lalrpop 0.20.0"
+
// auto-generated: "lalrpop 0.20.0"
 // sha3: 977ebfc0ee25f833ddfed94ea5fd06e19006387d7f45dafcb29884cb3afcbfdc
 use super::*;
 use std::str::FromStr;
@@ -50899,9 +50900,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -50977,46 +50978,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -51029,10 +51030,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -51043,20 +51044,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = RawValue;
         type StateIndex = i8;
         type Action = i8;
@@ -51120,7 +51121,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -51145,10 +51146,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -51196,12 +51197,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -51212,11 +51213,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -51796,7 +51797,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct ConstParser {
@@ -51815,11 +51816,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<RawValue, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<RawValue, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -51832,12 +51833,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -51865,15 +51866,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<RawValue,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<RawValue,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -52172,7 +52173,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -52183,12 +52184,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -52197,9 +52198,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -52208,9 +52209,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -52219,9 +52220,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -52230,9 +52231,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -52241,9 +52242,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -52252,9 +52253,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -52263,9 +52264,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -52274,9 +52275,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -52285,9 +52286,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -52296,9 +52297,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -52307,9 +52308,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -52318,9 +52319,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -52329,10 +52330,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -52340,15 +52341,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -52359,15 +52360,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -52375,15 +52376,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52392,15 +52393,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -52411,15 +52412,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -52431,15 +52432,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -52450,15 +52451,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -52466,15 +52467,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52483,15 +52484,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -52502,15 +52503,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -52522,15 +52523,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52539,15 +52540,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52556,15 +52557,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52573,15 +52574,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52590,15 +52591,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52607,15 +52608,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52624,15 +52625,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52641,15 +52642,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52658,15 +52659,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52675,15 +52676,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52692,15 +52693,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52709,15 +52710,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52726,15 +52727,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52743,12 +52744,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -52760,12 +52761,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -52777,12 +52778,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -52794,15 +52795,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52811,15 +52812,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -52827,15 +52828,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -52846,15 +52847,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52863,15 +52864,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52880,15 +52881,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -52896,15 +52897,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -52915,15 +52916,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -52932,12 +52933,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -52952,12 +52953,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -52969,12 +52970,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -52986,12 +52987,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -53003,15 +53004,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -53023,15 +53024,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -53044,12 +53045,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -53063,15 +53064,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53083,12 +53084,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -53100,15 +53101,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53120,15 +53121,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53140,15 +53141,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53160,12 +53161,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -53177,15 +53178,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53197,15 +53198,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53217,12 +53218,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -53234,15 +53235,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53254,15 +53255,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53274,15 +53275,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53294,15 +53295,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53314,12 +53315,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -53331,15 +53332,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53351,15 +53352,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53371,12 +53372,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -53388,15 +53389,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53408,12 +53409,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -53425,15 +53426,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53445,12 +53446,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -53462,15 +53463,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53482,12 +53483,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -53499,15 +53500,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53519,12 +53520,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -53536,12 +53537,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -53553,12 +53554,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -53569,15 +53570,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53586,12 +53587,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -53603,12 +53604,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -53620,15 +53621,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -53640,15 +53641,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53657,15 +53658,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53674,15 +53675,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53691,12 +53692,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -53708,15 +53709,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -53727,15 +53728,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53744,15 +53745,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -53763,15 +53764,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53780,15 +53781,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53797,15 +53798,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53814,15 +53815,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -53831,12 +53832,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -53848,12 +53849,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -53865,12 +53866,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -53882,12 +53883,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -53899,12 +53900,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -53916,12 +53917,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -53933,12 +53934,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -53950,12 +53951,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -53967,12 +53968,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -53984,12 +53985,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -54001,12 +54002,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -54018,12 +54019,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -54035,12 +54036,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -54069,9 +54070,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -54550,46 +54551,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -54602,10 +54603,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -54616,20 +54617,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -54693,7 +54694,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -54718,10 +54719,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -54769,12 +54770,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -54785,11 +54786,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -55369,7 +55370,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct ExprParser {
@@ -55388,11 +55389,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -55405,12 +55406,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -55438,15 +55439,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -55745,7 +55746,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -55756,12 +55757,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -55770,9 +55771,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -55781,9 +55782,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -55792,9 +55793,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -55803,9 +55804,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -55814,9 +55815,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -55825,9 +55826,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -55836,9 +55837,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -55847,9 +55848,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -55858,9 +55859,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -55869,9 +55870,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -55880,9 +55881,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -55891,9 +55892,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -55902,10 +55903,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -55913,15 +55914,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -55932,15 +55933,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -55948,15 +55949,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -55965,15 +55966,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -55984,15 +55985,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -56004,15 +56005,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -56023,15 +56024,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -56039,15 +56040,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56056,15 +56057,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -56075,15 +56076,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -56095,15 +56096,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56112,15 +56113,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56129,15 +56130,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56146,15 +56147,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56163,15 +56164,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56180,15 +56181,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56197,15 +56198,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56214,15 +56215,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56231,15 +56232,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56248,15 +56249,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56265,15 +56266,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56282,15 +56283,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56299,15 +56300,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56316,12 +56317,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -56333,12 +56334,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -56350,12 +56351,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -56367,15 +56368,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56384,15 +56385,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -56400,15 +56401,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -56419,15 +56420,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56436,15 +56437,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56453,15 +56454,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -56469,15 +56470,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -56488,15 +56489,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -56505,12 +56506,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -56525,12 +56526,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -56542,12 +56543,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -56559,12 +56560,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -56576,15 +56577,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -56596,15 +56597,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -56617,12 +56618,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -56636,15 +56637,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56656,12 +56657,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -56673,15 +56674,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56693,15 +56694,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56713,15 +56714,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56733,12 +56734,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -56750,15 +56751,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56770,15 +56771,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56790,12 +56791,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -56807,15 +56808,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56827,15 +56828,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56847,15 +56848,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56867,15 +56868,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56887,12 +56888,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -56904,15 +56905,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56924,15 +56925,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56944,12 +56945,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -56961,15 +56962,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -56981,12 +56982,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -56998,15 +56999,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -57018,12 +57019,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -57035,15 +57036,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -57055,12 +57056,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -57072,15 +57073,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -57092,12 +57093,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -57109,12 +57110,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -57126,12 +57127,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -57142,15 +57143,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57159,12 +57160,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -57176,12 +57177,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -57193,15 +57194,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -57213,15 +57214,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57230,15 +57231,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57247,15 +57248,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57264,12 +57265,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -57281,15 +57282,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -57300,15 +57301,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57317,15 +57318,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -57336,15 +57337,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57353,15 +57354,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57370,15 +57371,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57387,15 +57388,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -57404,12 +57405,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -57421,12 +57422,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -57438,12 +57439,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -57455,12 +57456,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -57472,12 +57473,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -57489,12 +57490,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -57506,12 +57507,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -57523,12 +57524,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -57540,12 +57541,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -57557,12 +57558,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -57574,12 +57575,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -57591,12 +57592,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -57608,12 +57609,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -57642,9 +57643,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -58123,46 +58124,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -58175,10 +58176,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -58189,20 +58190,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -58266,7 +58267,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -58291,10 +58292,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -58342,12 +58343,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -58358,11 +58359,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -58942,7 +58943,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr1Parser {
@@ -58961,11 +58962,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -58978,12 +58979,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -59011,15 +59012,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -59318,7 +59319,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -59329,12 +59330,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -59343,9 +59344,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -59354,9 +59355,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -59365,9 +59366,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -59376,9 +59377,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -59387,9 +59388,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -59398,9 +59399,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -59409,9 +59410,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -59420,9 +59421,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -59431,9 +59432,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -59442,9 +59443,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -59453,9 +59454,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -59464,9 +59465,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -59475,10 +59476,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -59486,15 +59487,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -59505,15 +59506,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -59521,15 +59522,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59538,15 +59539,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -59557,15 +59558,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -59577,15 +59578,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -59596,15 +59597,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -59612,15 +59613,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59629,15 +59630,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -59648,15 +59649,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -59668,15 +59669,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59685,15 +59686,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59702,15 +59703,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59719,15 +59720,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59736,15 +59737,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59753,15 +59754,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59770,15 +59771,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59787,15 +59788,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59804,15 +59805,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59821,15 +59822,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59838,15 +59839,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59855,15 +59856,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59872,15 +59873,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59889,12 +59890,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -59906,12 +59907,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -59923,12 +59924,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -59940,15 +59941,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -59957,15 +59958,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -59973,15 +59974,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -59992,15 +59993,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60009,15 +60010,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60026,15 +60027,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -60042,15 +60043,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -60061,15 +60062,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60078,12 +60079,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -60098,12 +60099,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -60115,12 +60116,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -60132,12 +60133,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -60149,15 +60150,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -60169,15 +60170,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -60190,12 +60191,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -60209,15 +60210,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60229,12 +60230,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -60246,15 +60247,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60266,15 +60267,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60286,15 +60287,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60306,12 +60307,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -60323,15 +60324,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60343,15 +60344,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60363,12 +60364,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -60380,15 +60381,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60400,15 +60401,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60420,15 +60421,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60440,15 +60441,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60460,12 +60461,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -60477,15 +60478,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60497,15 +60498,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60517,12 +60518,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -60534,15 +60535,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60554,12 +60555,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -60571,15 +60572,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60591,12 +60592,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -60608,15 +60609,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60628,12 +60629,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -60645,15 +60646,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60665,12 +60666,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -60682,12 +60683,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -60699,12 +60700,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -60715,15 +60716,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60732,12 +60733,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -60749,12 +60750,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -60766,15 +60767,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -60786,15 +60787,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60803,15 +60804,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60820,15 +60821,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60837,12 +60838,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -60854,15 +60855,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -60873,15 +60874,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60890,15 +60891,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -60909,15 +60910,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60926,15 +60927,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60943,15 +60944,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60960,15 +60961,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -60977,12 +60978,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -60994,12 +60995,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -61011,12 +61012,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -61028,12 +61029,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -61045,12 +61046,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -61062,12 +61063,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -61079,12 +61080,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -61096,12 +61097,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -61113,12 +61114,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -61130,12 +61131,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -61147,12 +61148,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -61164,12 +61165,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -61181,12 +61182,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -61215,9 +61216,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -61698,46 +61699,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -61750,10 +61751,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -61764,20 +61765,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -61841,7 +61842,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -61866,10 +61867,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -61917,12 +61918,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -61933,11 +61934,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -62517,7 +62518,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr10Parser {
@@ -62536,11 +62537,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -62553,12 +62554,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -62586,15 +62587,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -62893,7 +62894,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -62904,12 +62905,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -62918,9 +62919,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -62929,9 +62930,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -62940,9 +62941,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -62951,9 +62952,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -62962,9 +62963,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -62973,9 +62974,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -62984,9 +62985,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -62995,9 +62996,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -63006,9 +63007,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -63017,9 +63018,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -63028,9 +63029,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -63039,9 +63040,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -63050,10 +63051,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -63061,15 +63062,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -63080,15 +63081,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -63096,15 +63097,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63113,15 +63114,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -63132,15 +63133,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -63152,15 +63153,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -63171,15 +63172,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -63187,15 +63188,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63204,15 +63205,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -63223,15 +63224,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -63243,15 +63244,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63260,15 +63261,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63277,15 +63278,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63294,15 +63295,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63311,15 +63312,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63328,15 +63329,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63345,15 +63346,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63362,15 +63363,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63379,15 +63380,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63396,15 +63397,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63413,15 +63414,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63430,15 +63431,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63447,15 +63448,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63464,12 +63465,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -63481,12 +63482,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -63498,12 +63499,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -63515,15 +63516,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63532,15 +63533,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -63548,15 +63549,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -63567,15 +63568,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63584,15 +63585,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63601,15 +63602,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -63617,15 +63618,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -63636,15 +63637,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -63653,12 +63654,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -63673,12 +63674,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -63690,12 +63691,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -63707,12 +63708,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -63724,15 +63725,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -63744,15 +63745,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -63765,12 +63766,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -63784,15 +63785,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63804,12 +63805,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -63821,15 +63822,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63841,15 +63842,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63861,15 +63862,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63881,12 +63882,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -63898,15 +63899,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63918,15 +63919,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63938,12 +63939,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -63955,15 +63956,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63975,15 +63976,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -63995,15 +63996,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64015,15 +64016,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64035,12 +64036,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -64052,15 +64053,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64072,15 +64073,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64092,12 +64093,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -64109,15 +64110,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64129,12 +64130,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -64146,15 +64147,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64166,12 +64167,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -64183,15 +64184,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64203,12 +64204,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -64220,15 +64221,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64240,12 +64241,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -64257,12 +64258,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -64274,12 +64275,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -64290,15 +64291,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64307,12 +64308,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -64324,12 +64325,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -64341,15 +64342,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -64361,15 +64362,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64378,15 +64379,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64395,15 +64396,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64412,12 +64413,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -64429,15 +64430,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -64448,15 +64449,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64465,15 +64466,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -64484,15 +64485,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64501,15 +64502,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64518,15 +64519,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64535,15 +64536,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -64552,12 +64553,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -64569,12 +64570,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -64586,12 +64587,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -64603,12 +64604,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -64620,12 +64621,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -64637,12 +64638,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -64654,12 +64655,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -64671,12 +64672,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -64688,12 +64689,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -64705,12 +64706,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -64722,12 +64723,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -64739,12 +64740,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -64756,12 +64757,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -64790,9 +64791,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -65271,46 +65272,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -65323,10 +65324,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -65337,20 +65338,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -65414,7 +65415,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -65439,10 +65440,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -65490,12 +65491,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -65506,11 +65507,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -66090,7 +66091,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr2Parser {
@@ -66109,11 +66110,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -66126,12 +66127,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -66159,15 +66160,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -66466,7 +66467,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -66477,12 +66478,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -66491,9 +66492,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -66502,9 +66503,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -66513,9 +66514,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -66524,9 +66525,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -66535,9 +66536,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -66546,9 +66547,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -66557,9 +66558,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -66568,9 +66569,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -66579,9 +66580,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -66590,9 +66591,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -66601,9 +66602,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -66612,9 +66613,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -66623,10 +66624,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -66634,15 +66635,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -66653,15 +66654,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -66669,15 +66670,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66686,15 +66687,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -66705,15 +66706,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -66725,15 +66726,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -66744,15 +66745,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -66760,15 +66761,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66777,15 +66778,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -66796,15 +66797,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -66816,15 +66817,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66833,15 +66834,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66850,15 +66851,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66867,15 +66868,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66884,15 +66885,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66901,15 +66902,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66918,15 +66919,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66935,15 +66936,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66952,15 +66953,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66969,15 +66970,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -66986,15 +66987,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67003,15 +67004,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67020,15 +67021,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67037,12 +67038,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -67054,12 +67055,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -67071,12 +67072,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -67088,15 +67089,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67105,15 +67106,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -67121,15 +67122,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -67140,15 +67141,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67157,15 +67158,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67174,15 +67175,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -67190,15 +67191,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -67209,15 +67210,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67226,12 +67227,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -67246,12 +67247,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -67263,12 +67264,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -67280,12 +67281,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -67297,15 +67298,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -67317,15 +67318,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -67338,12 +67339,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -67357,15 +67358,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67377,12 +67378,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -67394,15 +67395,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67414,15 +67415,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67434,15 +67435,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67454,12 +67455,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -67471,15 +67472,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67491,15 +67492,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67511,12 +67512,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -67528,15 +67529,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67548,15 +67549,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67568,15 +67569,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67588,15 +67589,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67608,12 +67609,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -67625,15 +67626,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67645,15 +67646,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67665,12 +67666,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -67682,15 +67683,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67702,12 +67703,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -67719,15 +67720,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67739,12 +67740,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -67756,15 +67757,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67776,12 +67777,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -67793,15 +67794,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67813,12 +67814,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -67830,12 +67831,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -67847,12 +67848,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -67863,15 +67864,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67880,12 +67881,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -67897,12 +67898,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -67914,15 +67915,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -67934,15 +67935,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67951,15 +67952,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67968,15 +67969,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -67985,12 +67986,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -68002,15 +68003,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -68021,15 +68022,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -68038,15 +68039,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -68057,15 +68058,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -68074,15 +68075,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -68091,15 +68092,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -68108,15 +68109,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -68125,12 +68126,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -68142,12 +68143,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -68159,12 +68160,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -68176,12 +68177,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -68193,12 +68194,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -68210,12 +68211,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -68227,12 +68228,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -68244,12 +68245,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -68261,12 +68262,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -68278,12 +68279,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -68295,12 +68296,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -68312,12 +68313,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -68329,12 +68330,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -68363,9 +68364,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -68844,46 +68845,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -68896,10 +68897,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -68910,20 +68911,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -68987,7 +68988,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -69012,10 +69013,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -69063,12 +69064,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -69079,11 +69080,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -69663,7 +69664,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr3Parser {
@@ -69682,11 +69683,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -69699,12 +69700,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -69732,15 +69733,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -70039,7 +70040,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -70050,12 +70051,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -70064,9 +70065,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -70075,9 +70076,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -70086,9 +70087,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -70097,9 +70098,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -70108,9 +70109,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -70119,9 +70120,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -70130,9 +70131,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -70141,9 +70142,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -70152,9 +70153,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -70163,9 +70164,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -70174,9 +70175,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -70185,9 +70186,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -70196,10 +70197,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -70207,15 +70208,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -70226,15 +70227,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -70242,15 +70243,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70259,15 +70260,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -70278,15 +70279,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -70298,15 +70299,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -70317,15 +70318,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -70333,15 +70334,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70350,15 +70351,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -70369,15 +70370,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -70389,15 +70390,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70406,15 +70407,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70423,15 +70424,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70440,15 +70441,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70457,15 +70458,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70474,15 +70475,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70491,15 +70492,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70508,15 +70509,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70525,15 +70526,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70542,15 +70543,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70559,15 +70560,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70576,15 +70577,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70593,15 +70594,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70610,12 +70611,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -70627,12 +70628,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -70644,12 +70645,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -70661,15 +70662,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70678,15 +70679,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -70694,15 +70695,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -70713,15 +70714,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70730,15 +70731,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70747,15 +70748,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -70763,15 +70764,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -70782,15 +70783,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -70799,12 +70800,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -70819,12 +70820,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -70836,12 +70837,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -70853,12 +70854,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -70870,15 +70871,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -70890,15 +70891,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -70911,12 +70912,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -70930,15 +70931,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -70950,12 +70951,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -70967,15 +70968,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -70987,15 +70988,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71007,15 +71008,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71027,12 +71028,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -71044,15 +71045,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71064,15 +71065,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71084,12 +71085,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -71101,15 +71102,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71121,15 +71122,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71141,15 +71142,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71161,15 +71162,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71181,12 +71182,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -71198,15 +71199,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71218,15 +71219,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71238,12 +71239,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -71255,15 +71256,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71275,12 +71276,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -71292,15 +71293,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71312,12 +71313,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -71329,15 +71330,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71349,12 +71350,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -71366,15 +71367,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71386,12 +71387,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -71403,12 +71404,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -71420,12 +71421,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -71436,15 +71437,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71453,12 +71454,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -71470,12 +71471,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -71487,15 +71488,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -71507,15 +71508,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71524,15 +71525,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71541,15 +71542,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71558,12 +71559,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -71575,15 +71576,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -71594,15 +71595,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71611,15 +71612,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -71630,15 +71631,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71647,15 +71648,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71664,15 +71665,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71681,15 +71682,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -71698,12 +71699,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -71715,12 +71716,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -71732,12 +71733,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -71749,12 +71750,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -71766,12 +71767,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -71783,12 +71784,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -71800,12 +71801,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -71817,12 +71818,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -71834,12 +71835,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -71851,12 +71852,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -71868,12 +71869,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -71885,12 +71886,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -71902,12 +71903,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -71936,9 +71937,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -72417,46 +72418,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -72469,10 +72470,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -72483,20 +72484,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -72560,7 +72561,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -72585,10 +72586,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -72636,12 +72637,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -72652,11 +72653,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -73236,7 +73237,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr4Parser {
@@ -73255,11 +73256,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -73272,12 +73273,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -73305,15 +73306,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -73612,7 +73613,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -73623,12 +73624,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -73637,9 +73638,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -73648,9 +73649,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -73659,9 +73660,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -73670,9 +73671,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -73681,9 +73682,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -73692,9 +73693,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -73703,9 +73704,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -73714,9 +73715,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -73725,9 +73726,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -73736,9 +73737,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -73747,9 +73748,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -73758,9 +73759,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -73769,10 +73770,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -73780,15 +73781,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -73799,15 +73800,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -73815,15 +73816,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -73832,15 +73833,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -73851,15 +73852,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -73871,15 +73872,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -73890,15 +73891,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -73906,15 +73907,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -73923,15 +73924,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -73942,15 +73943,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -73962,15 +73963,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -73979,15 +73980,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -73996,15 +73997,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74013,15 +74014,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74030,15 +74031,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74047,15 +74048,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74064,15 +74065,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74081,15 +74082,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74098,15 +74099,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74115,15 +74116,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74132,15 +74133,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74149,15 +74150,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74166,15 +74167,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74183,12 +74184,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -74200,12 +74201,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -74217,12 +74218,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -74234,15 +74235,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74251,15 +74252,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -74267,15 +74268,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -74286,15 +74287,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74303,15 +74304,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74320,15 +74321,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -74336,15 +74337,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -74355,15 +74356,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -74372,12 +74373,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -74392,12 +74393,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -74409,12 +74410,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -74426,12 +74427,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -74443,15 +74444,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -74463,15 +74464,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -74484,12 +74485,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -74503,15 +74504,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74523,12 +74524,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -74540,15 +74541,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74560,15 +74561,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74580,15 +74581,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74600,12 +74601,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -74617,15 +74618,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74637,15 +74638,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74657,12 +74658,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -74674,15 +74675,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74694,15 +74695,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74714,15 +74715,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74734,15 +74735,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74754,12 +74755,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -74771,15 +74772,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74791,15 +74792,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74811,12 +74812,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -74828,15 +74829,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74848,12 +74849,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -74865,15 +74866,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74885,12 +74886,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -74902,15 +74903,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74922,12 +74923,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -74939,15 +74940,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -74959,12 +74960,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -74976,12 +74977,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -74993,12 +74994,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -75009,15 +75010,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75026,12 +75027,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -75043,12 +75044,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -75060,15 +75061,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -75080,15 +75081,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75097,15 +75098,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75114,15 +75115,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75131,12 +75132,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -75148,15 +75149,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -75167,15 +75168,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75184,15 +75185,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -75203,15 +75204,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75220,15 +75221,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75237,15 +75238,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75254,15 +75255,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -75271,12 +75272,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -75288,12 +75289,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -75305,12 +75306,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -75322,12 +75323,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -75339,12 +75340,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -75356,12 +75357,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -75373,12 +75374,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -75390,12 +75391,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -75407,12 +75408,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -75424,12 +75425,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -75441,12 +75442,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -75458,12 +75459,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -75475,12 +75476,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -75509,9 +75510,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -75990,46 +75991,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -76042,10 +76043,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -76056,20 +76057,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -76133,7 +76134,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -76158,10 +76159,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -76209,12 +76210,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -76225,11 +76226,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -76809,7 +76810,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr5Parser {
@@ -76828,11 +76829,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -76845,12 +76846,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -76878,15 +76879,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -77185,7 +77186,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -77196,12 +77197,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -77210,9 +77211,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -77221,9 +77222,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -77232,9 +77233,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -77243,9 +77244,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -77254,9 +77255,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -77265,9 +77266,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -77276,9 +77277,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -77287,9 +77288,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -77298,9 +77299,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -77309,9 +77310,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -77320,9 +77321,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -77331,9 +77332,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -77342,10 +77343,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -77353,15 +77354,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -77372,15 +77373,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -77388,15 +77389,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77405,15 +77406,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -77424,15 +77425,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -77444,15 +77445,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -77463,15 +77464,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -77479,15 +77480,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77496,15 +77497,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -77515,15 +77516,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -77535,15 +77536,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77552,15 +77553,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77569,15 +77570,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77586,15 +77587,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77603,15 +77604,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77620,15 +77621,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77637,15 +77638,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77654,15 +77655,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77671,15 +77672,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77688,15 +77689,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77705,15 +77706,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77722,15 +77723,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77739,15 +77740,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77756,12 +77757,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -77773,12 +77774,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -77790,12 +77791,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -77807,15 +77808,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77824,15 +77825,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -77840,15 +77841,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -77859,15 +77860,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77876,15 +77877,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77893,15 +77894,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -77909,15 +77910,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -77928,15 +77929,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -77945,12 +77946,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -77965,12 +77966,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -77982,12 +77983,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -77999,12 +78000,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -78016,15 +78017,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -78036,15 +78037,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -78057,12 +78058,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -78076,15 +78077,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78096,12 +78097,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -78113,15 +78114,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78133,15 +78134,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78153,15 +78154,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78173,12 +78174,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -78190,15 +78191,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78210,15 +78211,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78230,12 +78231,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -78247,15 +78248,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78267,15 +78268,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78287,15 +78288,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78307,15 +78308,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78327,12 +78328,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -78344,15 +78345,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78364,15 +78365,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78384,12 +78385,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -78401,15 +78402,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78421,12 +78422,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -78438,15 +78439,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78458,12 +78459,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -78475,15 +78476,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78495,12 +78496,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -78512,15 +78513,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78532,12 +78533,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -78549,12 +78550,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -78566,12 +78567,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -78582,15 +78583,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78599,12 +78600,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -78616,12 +78617,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -78633,15 +78634,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -78653,15 +78654,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78670,15 +78671,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78687,15 +78688,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78704,12 +78705,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -78721,15 +78722,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -78740,15 +78741,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78757,15 +78758,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -78776,15 +78777,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78793,15 +78794,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78810,15 +78811,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78827,15 +78828,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -78844,12 +78845,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -78861,12 +78862,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -78878,12 +78879,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -78895,12 +78896,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -78912,12 +78913,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -78929,12 +78930,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -78946,12 +78947,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -78963,12 +78964,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -78980,12 +78981,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -78997,12 +78998,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -79014,12 +79015,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -79031,12 +79032,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -79048,12 +79049,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -79082,9 +79083,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -79563,46 +79564,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -79615,10 +79616,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -79629,20 +79630,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -79706,7 +79707,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -79731,10 +79732,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -79782,12 +79783,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -79798,11 +79799,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -80382,7 +80383,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr6Parser {
@@ -80401,11 +80402,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -80418,12 +80419,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -80451,15 +80452,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -80758,7 +80759,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -80769,12 +80770,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -80783,9 +80784,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -80794,9 +80795,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -80805,9 +80806,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -80816,9 +80817,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -80827,9 +80828,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -80838,9 +80839,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -80849,9 +80850,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -80860,9 +80861,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -80871,9 +80872,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -80882,9 +80883,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -80893,9 +80894,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -80904,9 +80905,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -80915,10 +80916,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -80926,15 +80927,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -80945,15 +80946,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -80961,15 +80962,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -80978,15 +80979,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -80997,15 +80998,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -81017,15 +81018,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -81036,15 +81037,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -81052,15 +81053,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81069,15 +81070,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -81088,15 +81089,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -81108,15 +81109,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81125,15 +81126,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81142,15 +81143,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81159,15 +81160,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81176,15 +81177,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81193,15 +81194,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81210,15 +81211,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81227,15 +81228,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81244,15 +81245,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81261,15 +81262,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81278,15 +81279,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81295,15 +81296,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81312,15 +81313,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81329,12 +81330,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -81346,12 +81347,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -81363,12 +81364,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -81380,15 +81381,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81397,15 +81398,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -81413,15 +81414,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -81432,15 +81433,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81449,15 +81450,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81466,15 +81467,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -81482,15 +81483,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -81501,15 +81502,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -81518,12 +81519,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -81538,12 +81539,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -81555,12 +81556,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -81572,12 +81573,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -81589,15 +81590,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -81609,15 +81610,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -81630,12 +81631,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -81649,15 +81650,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81669,12 +81670,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -81686,15 +81687,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81706,15 +81707,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81726,15 +81727,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81746,12 +81747,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -81763,15 +81764,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81783,15 +81784,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81803,12 +81804,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -81820,15 +81821,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81840,15 +81841,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81860,15 +81861,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81880,15 +81881,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81900,12 +81901,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -81917,15 +81918,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81937,15 +81938,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81957,12 +81958,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -81974,15 +81975,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -81994,12 +81995,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -82011,15 +82012,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -82031,12 +82032,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -82048,15 +82049,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -82068,12 +82069,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -82085,15 +82086,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -82105,12 +82106,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -82122,12 +82123,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -82139,12 +82140,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -82155,15 +82156,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82172,12 +82173,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -82189,12 +82190,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -82206,15 +82207,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -82226,15 +82227,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82243,15 +82244,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82260,15 +82261,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82277,12 +82278,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -82294,15 +82295,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -82313,15 +82314,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82330,15 +82331,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -82349,15 +82350,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82366,15 +82367,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82383,15 +82384,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82400,15 +82401,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -82417,12 +82418,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -82434,12 +82435,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -82451,12 +82452,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -82468,12 +82469,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -82485,12 +82486,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -82502,12 +82503,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -82519,12 +82520,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -82536,12 +82537,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -82553,12 +82554,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -82570,12 +82571,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -82587,12 +82588,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -82604,12 +82605,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -82621,12 +82622,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -82655,9 +82656,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -83136,46 +83137,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -83188,10 +83189,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -83202,20 +83203,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -83279,7 +83280,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -83304,10 +83305,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -83355,12 +83356,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -83371,11 +83372,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -83955,7 +83956,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr7Parser {
@@ -83974,11 +83975,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -83991,12 +83992,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -84024,15 +84025,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -84331,7 +84332,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -84342,12 +84343,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -84356,9 +84357,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -84367,9 +84368,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -84378,9 +84379,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -84389,9 +84390,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -84400,9 +84401,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -84411,9 +84412,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -84422,9 +84423,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -84433,9 +84434,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -84444,9 +84445,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -84455,9 +84456,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -84466,9 +84467,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -84477,9 +84478,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -84488,10 +84489,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -84499,15 +84500,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -84518,15 +84519,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -84534,15 +84535,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84551,15 +84552,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -84570,15 +84571,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -84590,15 +84591,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -84609,15 +84610,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -84625,15 +84626,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84642,15 +84643,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -84661,15 +84662,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -84681,15 +84682,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84698,15 +84699,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84715,15 +84716,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84732,15 +84733,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84749,15 +84750,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84766,15 +84767,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84783,15 +84784,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84800,15 +84801,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84817,15 +84818,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84834,15 +84835,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84851,15 +84852,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84868,15 +84869,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84885,15 +84886,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84902,12 +84903,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -84919,12 +84920,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -84936,12 +84937,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -84953,15 +84954,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -84970,15 +84971,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -84986,15 +84987,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -85005,15 +85006,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85022,15 +85023,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85039,15 +85040,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -85055,15 +85056,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -85074,15 +85075,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85091,12 +85092,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -85111,12 +85112,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -85128,12 +85129,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -85145,12 +85146,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -85162,15 +85163,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -85182,15 +85183,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -85203,12 +85204,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -85222,15 +85223,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85242,12 +85243,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -85259,15 +85260,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85279,15 +85280,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85299,15 +85300,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85319,12 +85320,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -85336,15 +85337,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85356,15 +85357,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85376,12 +85377,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -85393,15 +85394,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85413,15 +85414,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85433,15 +85434,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85453,15 +85454,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85473,12 +85474,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -85490,15 +85491,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85510,15 +85511,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85530,12 +85531,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -85547,15 +85548,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85567,12 +85568,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -85584,15 +85585,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85604,12 +85605,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -85621,15 +85622,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85641,12 +85642,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -85658,15 +85659,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85678,12 +85679,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -85695,12 +85696,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -85712,12 +85713,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -85728,15 +85729,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85745,12 +85746,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -85762,12 +85763,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -85779,15 +85780,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -85799,15 +85800,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85816,15 +85817,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85833,15 +85834,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85850,12 +85851,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -85867,15 +85868,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -85886,15 +85887,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85903,15 +85904,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -85922,15 +85923,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85939,15 +85940,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85956,15 +85957,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85973,15 +85974,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -85990,12 +85991,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -86007,12 +86008,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -86024,12 +86025,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -86041,12 +86042,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -86058,12 +86059,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -86075,12 +86076,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -86092,12 +86093,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -86109,12 +86110,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -86126,12 +86127,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -86143,12 +86144,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -86160,12 +86161,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -86177,12 +86178,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -86194,12 +86195,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -86228,9 +86229,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -86709,46 +86710,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -86761,10 +86762,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -86775,20 +86776,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -86852,7 +86853,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -86877,10 +86878,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -86928,12 +86929,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -86944,11 +86945,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -87528,7 +87529,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr8Parser {
@@ -87547,11 +87548,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -87564,12 +87565,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -87597,15 +87598,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -87904,7 +87905,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -87915,12 +87916,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -87929,9 +87930,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -87940,9 +87941,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -87951,9 +87952,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -87962,9 +87963,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -87973,9 +87974,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -87984,9 +87985,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -87995,9 +87996,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -88006,9 +88007,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -88017,9 +88018,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -88028,9 +88029,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -88039,9 +88040,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -88050,9 +88051,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -88061,10 +88062,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -88072,15 +88073,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -88091,15 +88092,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -88107,15 +88108,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88124,15 +88125,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -88143,15 +88144,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -88163,15 +88164,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -88182,15 +88183,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -88198,15 +88199,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88215,15 +88216,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -88234,15 +88235,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -88254,15 +88255,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88271,15 +88272,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88288,15 +88289,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88305,15 +88306,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88322,15 +88323,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88339,15 +88340,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88356,15 +88357,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88373,15 +88374,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88390,15 +88391,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88407,15 +88408,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88424,15 +88425,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88441,15 +88442,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88458,15 +88459,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88475,12 +88476,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -88492,12 +88493,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -88509,12 +88510,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -88526,15 +88527,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88543,15 +88544,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -88559,15 +88560,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -88578,15 +88579,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88595,15 +88596,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88612,15 +88613,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -88628,15 +88629,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -88647,15 +88648,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -88664,12 +88665,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -88684,12 +88685,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -88701,12 +88702,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -88718,12 +88719,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -88735,15 +88736,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -88755,15 +88756,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -88776,12 +88777,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -88795,15 +88796,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88815,12 +88816,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -88832,15 +88833,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88852,15 +88853,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88872,15 +88873,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88892,12 +88893,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -88909,15 +88910,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88929,15 +88930,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88949,12 +88950,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -88966,15 +88967,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -88986,15 +88987,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89006,15 +89007,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89026,15 +89027,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89046,12 +89047,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -89063,15 +89064,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89083,15 +89084,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89103,12 +89104,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -89120,15 +89121,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89140,12 +89141,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -89157,15 +89158,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89177,12 +89178,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -89194,15 +89195,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89214,12 +89215,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -89231,15 +89232,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89251,12 +89252,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -89268,12 +89269,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -89285,12 +89286,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -89301,15 +89302,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89318,12 +89319,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -89335,12 +89336,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -89352,15 +89353,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -89372,15 +89373,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89389,15 +89390,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89406,15 +89407,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89423,12 +89424,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -89440,15 +89441,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -89459,15 +89460,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89476,15 +89477,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -89495,15 +89496,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89512,15 +89513,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89529,15 +89530,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89546,15 +89547,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -89563,12 +89564,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -89580,12 +89581,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -89597,12 +89598,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -89614,12 +89615,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -89631,12 +89632,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -89648,12 +89649,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -89665,12 +89666,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -89682,12 +89683,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -89699,12 +89700,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -89716,12 +89717,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -89733,12 +89734,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -89750,12 +89751,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -89767,12 +89768,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -89801,9 +89802,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -90282,46 +90283,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -90334,10 +90335,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -90348,20 +90349,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Expr;
         type StateIndex = i8;
         type Action = i8;
@@ -90425,7 +90426,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -90450,10 +90451,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -90501,12 +90502,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -90517,11 +90518,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -91101,7 +91102,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct Expr9Parser {
@@ -91120,11 +91121,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Expr, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -91137,12 +91138,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -91170,15 +91171,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Expr,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -91477,7 +91478,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -91488,12 +91489,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -91502,9 +91503,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -91513,9 +91514,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -91524,9 +91525,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -91535,9 +91536,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -91546,9 +91547,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -91557,9 +91558,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -91568,9 +91569,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -91579,9 +91580,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -91590,9 +91591,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -91601,9 +91602,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -91612,9 +91613,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -91623,9 +91624,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -91634,10 +91635,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -91645,15 +91646,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -91664,15 +91665,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -91680,15 +91681,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91697,15 +91698,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -91716,15 +91717,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -91736,15 +91737,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -91755,15 +91756,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -91771,15 +91772,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91788,15 +91789,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -91807,15 +91808,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -91827,15 +91828,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91844,15 +91845,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91861,15 +91862,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91878,15 +91879,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91895,15 +91896,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91912,15 +91913,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91929,15 +91930,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91946,15 +91947,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91963,15 +91964,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91980,15 +91981,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -91997,15 +91998,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92014,15 +92015,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92031,15 +92032,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92048,12 +92049,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -92065,12 +92066,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -92082,12 +92083,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -92099,15 +92100,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92116,15 +92117,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -92132,15 +92133,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -92151,15 +92152,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92168,15 +92169,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92185,15 +92186,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -92201,15 +92202,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -92220,15 +92221,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92237,12 +92238,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -92257,12 +92258,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -92274,12 +92275,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -92291,12 +92292,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -92308,15 +92309,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -92328,15 +92329,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -92349,12 +92350,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -92368,15 +92369,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92388,12 +92389,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -92405,15 +92406,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92425,15 +92426,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92445,15 +92446,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92465,12 +92466,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -92482,15 +92483,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92502,15 +92503,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92522,12 +92523,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -92539,15 +92540,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92559,15 +92560,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92579,15 +92580,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92599,15 +92600,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92619,12 +92620,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -92636,15 +92637,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92656,15 +92657,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92676,12 +92677,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -92693,15 +92694,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92713,12 +92714,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -92730,15 +92731,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92750,12 +92751,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -92767,15 +92768,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92787,12 +92788,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -92804,15 +92805,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92824,12 +92825,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -92841,12 +92842,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -92858,12 +92859,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -92874,15 +92875,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92891,12 +92892,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -92908,12 +92909,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -92925,15 +92926,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -92945,15 +92946,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92962,15 +92963,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92979,15 +92980,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -92996,12 +92997,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -93013,15 +93014,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -93032,15 +93033,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -93049,15 +93050,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -93068,15 +93069,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -93085,15 +93086,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -93102,15 +93103,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -93119,15 +93120,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -93136,12 +93137,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -93153,12 +93154,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -93170,12 +93171,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -93187,12 +93188,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -93204,12 +93205,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -93221,12 +93222,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -93238,12 +93239,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -93255,12 +93256,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -93272,12 +93273,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -93289,12 +93290,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -93306,12 +93307,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -93323,12 +93324,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -93340,12 +93341,12 @@
         (1, 44)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -93374,9 +93375,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -93883,46 +93884,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -93935,10 +93936,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -93949,20 +93950,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Program;
         type StateIndex = i8;
         type Action = i8;
@@ -94026,7 +94027,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -94051,10 +94052,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -94102,12 +94103,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -94118,11 +94119,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -94702,7 +94703,7 @@
                     nonterminal_produced: 45,
                 }
             }
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct ProgramParser {
@@ -94721,11 +94722,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Program, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Program, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -94738,12 +94739,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -94771,15 +94772,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Program,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Program,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -95078,7 +95079,7 @@
             96 => {
                 __reduce96(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -95089,12 +95090,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -95103,9 +95104,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -95114,9 +95115,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -95125,9 +95126,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -95136,9 +95137,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -95147,9 +95148,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -95158,9 +95159,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -95169,9 +95170,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -95180,9 +95181,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -95191,9 +95192,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -95202,9 +95203,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -95213,9 +95214,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -95224,9 +95225,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -95235,10 +95236,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -95246,15 +95247,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -95265,15 +95266,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -95281,15 +95282,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95298,15 +95299,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -95317,15 +95318,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -95337,15 +95338,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -95356,15 +95357,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -95372,15 +95373,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95389,15 +95390,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -95408,15 +95409,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -95428,15 +95429,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95445,15 +95446,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95462,15 +95463,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95479,15 +95480,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95496,15 +95497,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95513,15 +95514,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95530,15 +95531,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95547,15 +95548,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95564,15 +95565,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95581,15 +95582,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95598,15 +95599,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95615,15 +95616,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95632,15 +95633,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95649,12 +95650,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -95666,12 +95667,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -95683,12 +95684,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -95700,15 +95701,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95717,15 +95718,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -95733,15 +95734,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -95752,15 +95753,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95769,15 +95770,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95786,15 +95787,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -95802,15 +95803,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -95821,15 +95822,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -95838,12 +95839,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -95858,12 +95859,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -95875,12 +95876,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -95892,12 +95893,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -95909,15 +95910,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -95929,15 +95930,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -95950,12 +95951,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -95969,15 +95970,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -95989,12 +95990,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -96006,15 +96007,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96026,15 +96027,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96046,15 +96047,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96066,12 +96067,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -96083,15 +96084,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96103,15 +96104,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96123,12 +96124,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -96140,15 +96141,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96160,15 +96161,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96180,15 +96181,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96200,15 +96201,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96220,12 +96221,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -96237,15 +96238,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96257,15 +96258,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96277,12 +96278,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -96294,15 +96295,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96314,12 +96315,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -96331,15 +96332,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96351,12 +96352,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -96368,15 +96369,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96388,12 +96389,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -96405,15 +96406,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96425,12 +96426,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -96442,12 +96443,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -96459,12 +96460,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -96475,15 +96476,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96492,12 +96493,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -96509,12 +96510,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -96526,15 +96527,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -96546,15 +96547,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96563,15 +96564,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96580,15 +96581,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96597,12 +96598,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -96614,15 +96615,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -96633,15 +96634,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96650,15 +96651,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -96669,15 +96670,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96686,15 +96687,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96703,15 +96704,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96720,15 +96721,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -96737,12 +96738,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -96754,12 +96755,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -96771,12 +96772,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -96788,12 +96789,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -96805,12 +96806,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -96822,12 +96823,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -96839,12 +96840,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -96856,12 +96857,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -96873,12 +96874,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -96890,12 +96891,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -96907,12 +96908,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -96924,12 +96925,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -96941,12 +96942,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce96<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Ref = Ref => ActionFn(12);
@@ -96975,9 +96976,9 @@
     extern crate alloc;
     use self::__lalrpop_util::lexer::Token;
     #[allow(dead_code)]
-    pub(crate) enum __Symbol<'input>
+    pub(crate) enum __Symbol<'input>
      {
-        Variant0(&'input str),
+        Variant0(&'input str),
         Variant1(Expr),
         Variant2(alloc::vec::Vec<Expr>),
         Variant3(BinaryOp),
@@ -97047,46 +97048,46 @@
         }
     }
     const __TERMINAL: &[&str] = &[
-        r###""!""###,
-        r###""!=""###,
-        r###""$""###,
-        r###""$?""###,
-        r###""%""###,
-        r###""%=""###,
-        r###""&""###,
-        r###""&&""###,
-        r###""&=""###,
-        r###""(""###,
-        r###"")""###,
-        r###""*""###,
-        r###""*=""###,
-        r###""+""###,
-        r###""+=""###,
-        r###"",""###,
-        r###""-""###,
-        r###""-=""###,
-        r###"".""###,
-        r###""/""###,
-        r###""/=""###,
-        r###"";""###,
-        r###""<""###,
-        r###""<=""###,
-        r###""=""###,
-        r###""==""###,
-        r###"">""###,
-        r###"">=""###,
-        r###""^""###,
-        r###""^=""###,
-        r###""false""###,
-        r###""null""###,
-        r###""true""###,
-        r###""|""###,
-        r###""|=""###,
-        r###""||""###,
-        r###""~""###,
-        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
-        r###"r#"[0-9]+"#"###,
-        r###"r#"[A-Za-z]\\w*"#"###,
+        r###""!""###,
+        r###""!=""###,
+        r###""$""###,
+        r###""$?""###,
+        r###""%""###,
+        r###""%=""###,
+        r###""&""###,
+        r###""&&""###,
+        r###""&=""###,
+        r###""(""###,
+        r###"")""###,
+        r###""*""###,
+        r###""*=""###,
+        r###""+""###,
+        r###""+=""###,
+        r###"",""###,
+        r###""-""###,
+        r###""-=""###,
+        r###"".""###,
+        r###""/""###,
+        r###""/=""###,
+        r###"";""###,
+        r###""<""###,
+        r###""<=""###,
+        r###""=""###,
+        r###""==""###,
+        r###"">""###,
+        r###"">=""###,
+        r###""^""###,
+        r###""^=""###,
+        r###""false""###,
+        r###""null""###,
+        r###""true""###,
+        r###""|""###,
+        r###""|=""###,
+        r###""||""###,
+        r###""~""###,
+        r###"r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""#"###,
+        r###"r#"[0-9]+"#"###,
+        r###"r#"[A-Za-z]\\w*"#"###,
     ];
     fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -97099,10 +97100,10 @@
         }).collect()
     }
     fn __expected_tokens_from_states<
-        'input,
+        'input,
     >(
         __states: &[i8],
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> alloc::vec::Vec<alloc::string::String>
     {
         __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
@@ -97113,20 +97114,20 @@
             }
         }).collect()
     }
-    pub(crate) struct __StateMachine<'input>
+    pub(crate) struct __StateMachine<'input>
     where 
     {
-        input: &'input str,
-        __phantom: core::marker::PhantomData<(&'input ())>,
+        input: &'input str,
+        __phantom: core::marker::PhantomData<(&'input ())>,
     }
-    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
+    impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
     where 
     {
         type Location = usize;
-        type Error = &'static str;
-        type Token = Token<'input>;
+        type Error = &'static str;
+        type Token = Token<'input>;
         type TokenIndex = usize;
-        type Symbol = __Symbol<'input>;
+        type Symbol = __Symbol<'input>;
         type Success = Ref;
         type StateIndex = i8;
         type Action = i8;
@@ -97190,7 +97191,7 @@
             &self,
             recovery: __state_machine::ErrorRecovery<Self>,
         ) -> Self::Symbol {
-            panic!("error recovery not enabled for this grammar")
+            panic!("error recovery not enabled for this grammar")
         }
 
         fn reduce(
@@ -97215,10 +97216,10 @@
         }
     }
     fn __token_to_integer<
-        'input,
+        'input,
     >(
-        __token: &Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __token: &Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> Option<usize>
     {
         match *__token {
@@ -97266,12 +97267,12 @@
         }
     }
     fn __token_to_symbol<
-        'input,
+        'input,
     >(
         __token_index: usize,
-        __token: Token<'input>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __Symbol<'input>
+        __token: Token<'input>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __Symbol<'input>
     {
         match __token_index {
             0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 => match __token {
@@ -97282,11 +97283,11 @@
         }
     }
     fn __simulate_reduce<
-        'input,
+        'input,
     >(
         __reduce_index: i8,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> __state_machine::SimulatedReduce<__StateMachine<'input>>
     {
         match __reduce_index {
             0 => {
@@ -97866,7 +97867,7 @@
                 }
             }
             96 => __state_machine::SimulatedReduce::Accept,
-            _ => panic!("invalid reduction index {}", __reduce_index)
+            _ => panic!("invalid reduction index {}", __reduce_index)
         }
     }
     pub struct RefParser {
@@ -97885,11 +97886,11 @@
 
         #[allow(dead_code)]
         pub fn parse<
-            'input,
+            'input,
         >(
             &self,
-            input: &'input str,
-        ) -> Result<Ref, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
+            input: &'input str,
+        ) -> Result<Ref, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
         {
             let mut __tokens = self.builder.matcher(input);
             __state_machine::Parser::drive(
@@ -97902,12 +97903,12 @@
         }
     }
     fn __accepts<
-        'input,
+        'input,
     >(
         __error_state: Option<i8>,
         __states: &[i8],
         __opt_integer: Option<usize>,
-        _: core::marker::PhantomData<(&'input ())>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> bool
     {
         let mut __states = __states.to_vec();
@@ -97935,15 +97936,15 @@
         }
     }
     pub(crate) fn __reduce<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __action: i8,
         __lookahead_start: Option<&usize>,
         __states: &mut alloc::vec::Vec<i8>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
-    ) -> Option<Result<Ref,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
+    ) -> Option<Result<Ref,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
     {
         let (__pop_states, __nonterminal) = match __action {
             0 => {
@@ -98242,7 +98243,7 @@
                 let __nt = super::__action12::<>(input, __sym0);
                 return Some(Ok(__nt));
             }
-            _ => panic!("invalid action code {}", __action)
+            _ => panic!("invalid action code {}", __action)
         };
         let __states_len = __states.len();
         __states.truncate(__states_len - __pop_states);
@@ -98253,12 +98254,12 @@
     }
     #[inline(never)]
     fn __symbol_type_mismatch() -> ! {
-        panic!("symbol type mismatch")
+        panic!("symbol type mismatch")
     }
     fn __pop_Variant8<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, (String, String), usize)
      {
         match __symbols.pop() {
@@ -98267,9 +98268,9 @@
         }
     }
     fn __pop_Variant3<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, BinaryOp, usize)
      {
         match __symbols.pop() {
@@ -98278,9 +98279,9 @@
         }
     }
     fn __pop_Variant1<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Expr, usize)
      {
         match __symbols.pop() {
@@ -98289,9 +98290,9 @@
         }
     }
     fn __pop_Variant11<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Program, usize)
      {
         match __symbols.pop() {
@@ -98300,9 +98301,9 @@
         }
     }
     fn __pop_Variant5<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, RawValue, usize)
      {
         match __symbols.pop() {
@@ -98311,9 +98312,9 @@
         }
     }
     fn __pop_Variant12<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Ref, usize)
      {
         match __symbols.pop() {
@@ -98322,9 +98323,9 @@
         }
     }
     fn __pop_Variant9<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, String, usize)
      {
         match __symbols.pop() {
@@ -98333,9 +98334,9 @@
         }
     }
     fn __pop_Variant13<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, UnaryOp, usize)
      {
         match __symbols.pop() {
@@ -98344,9 +98345,9 @@
         }
     }
     fn __pop_Variant6<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -98355,9 +98356,9 @@
         }
     }
     fn __pop_Variant2<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, alloc::vec::Vec<Expr>, usize)
      {
         match __symbols.pop() {
@@ -98366,9 +98367,9 @@
         }
     }
     fn __pop_Variant4<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, bool, usize)
      {
         match __symbols.pop() {
@@ -98377,9 +98378,9 @@
         }
     }
     fn __pop_Variant7<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, core::option::Option<Expr>, usize)
      {
         match __symbols.pop() {
@@ -98388,9 +98389,9 @@
         }
     }
     fn __pop_Variant10<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
     ) -> (usize, i64, usize)
      {
         match __symbols.pop() {
@@ -98399,10 +98400,10 @@
         }
     }
     fn __pop_Variant0<
-      'input,
+      'input,
     >(
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
-    ) -> (usize, &'input str, usize)
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
+    ) -> (usize, &'input str, usize)
      {
         match __symbols.pop() {
             Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
@@ -98410,15 +98411,15 @@
         }
     }
     pub(crate) fn __reduce0<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",") = Expr, "," => ActionFn(86);
+        // (<Expr> ",") = Expr, "," => ActionFn(86);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -98429,15 +98430,15 @@
         (2, 0)
     }
     pub(crate) fn __reduce1<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* =  => ActionFn(84);
+        // (<Expr> ",")* =  => ActionFn(84);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action84::<>(input, &__start, &__end);
@@ -98445,15 +98446,15 @@
         (0, 1)
     }
     pub(crate) fn __reduce2<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
+        // (<Expr> ",")* = (<Expr> ",")+ => ActionFn(85);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98462,15 +98463,15 @@
         (1, 1)
     }
     pub(crate) fn __reduce3<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
+        // (<Expr> ",")+ = Expr, "," => ActionFn(91);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -98481,15 +98482,15 @@
         (2, 2)
     }
     pub(crate) fn __reduce4<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
+        // (<Expr> ",")+ = (<Expr> ",")+, Expr, "," => ActionFn(92);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -98501,15 +98502,15 @@
         (3, 2)
     }
     pub(crate) fn __reduce5<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";") = Expr, ";" => ActionFn(81);
+        // (<Expr> ";") = Expr, ";" => ActionFn(81);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -98520,15 +98521,15 @@
         (2, 3)
     }
     pub(crate) fn __reduce6<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* =  => ActionFn(79);
+        // (<Expr> ";")* =  => ActionFn(79);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action79::<>(input, &__start, &__end);
@@ -98536,15 +98537,15 @@
         (0, 4)
     }
     pub(crate) fn __reduce7<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
+        // (<Expr> ";")* = (<Expr> ";")+ => ActionFn(80);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98553,15 +98554,15 @@
         (1, 4)
     }
     pub(crate) fn __reduce8<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
+        // (<Expr> ";")+ = Expr, ";" => ActionFn(95);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant0(__symbols);
         let __sym0 = __pop_Variant1(__symbols);
@@ -98572,15 +98573,15 @@
         (2, 5)
     }
     pub(crate) fn __reduce9<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
+        // (<Expr> ";")+ = (<Expr> ";")+, Expr, ";" => ActionFn(96);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -98592,15 +98593,15 @@
         (3, 5)
     }
     pub(crate) fn __reduce10<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "=" => ActionFn(54);
+        // AssignOp = "=" => ActionFn(54);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98609,15 +98610,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce11<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "+=" => ActionFn(55);
+        // AssignOp = "+=" => ActionFn(55);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98626,15 +98627,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce12<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "-=" => ActionFn(56);
+        // AssignOp = "-=" => ActionFn(56);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98643,15 +98644,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce13<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "*=" => ActionFn(57);
+        // AssignOp = "*=" => ActionFn(57);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98660,15 +98661,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce14<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "/=" => ActionFn(58);
+        // AssignOp = "/=" => ActionFn(58);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98677,15 +98678,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce15<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "%=" => ActionFn(59);
+        // AssignOp = "%=" => ActionFn(59);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98694,15 +98695,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce16<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "&=" => ActionFn(60);
+        // AssignOp = "&=" => ActionFn(60);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98711,15 +98712,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce17<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "|=" => ActionFn(61);
+        // AssignOp = "|=" => ActionFn(61);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98728,15 +98729,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce18<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // AssignOp = "^=" => ActionFn(62);
+        // AssignOp = "^=" => ActionFn(62);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98745,15 +98746,15 @@
         (1, 6)
     }
     pub(crate) fn __reduce19<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "true" => ActionFn(73);
+        // Bool = "true" => ActionFn(73);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98762,15 +98763,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce20<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Bool = "false" => ActionFn(74);
+        // Bool = "false" => ActionFn(74);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98779,15 +98780,15 @@
         (1, 7)
     }
     pub(crate) fn __reduce21<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "~" => ActionFn(68);
+        // Const = "~" => ActionFn(68);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98796,15 +98797,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce22<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Const = "null" => ActionFn(69);
+        // Const = "null" => ActionFn(69);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98813,12 +98814,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce23<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Bool => ActionFn(70);
@@ -98830,12 +98831,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce24<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Num => ActionFn(71);
@@ -98847,12 +98848,12 @@
         (1, 8)
     }
     pub(crate) fn __reduce25<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Const = Str => ActionFn(72);
@@ -98864,15 +98865,15 @@
         (1, 8)
     }
     pub(crate) fn __reduce26<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = Expr => ActionFn(99);
+        // Delimiter<Expr, ","> = Expr => ActionFn(99);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98881,15 +98882,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce27<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> =  => ActionFn(100);
+        // Delimiter<Expr, ","> =  => ActionFn(100);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action100::<>(input, &__start, &__end);
@@ -98897,15 +98898,15 @@
         (0, 9)
     }
     pub(crate) fn __reduce28<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
+        // Delimiter<Expr, ","> = (<Expr> ",")+, Expr => ActionFn(101);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -98916,15 +98917,15 @@
         (2, 9)
     }
     pub(crate) fn __reduce29<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
+        // Delimiter<Expr, ","> = (<Expr> ",")+ => ActionFn(102);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98933,15 +98934,15 @@
         (1, 9)
     }
     pub(crate) fn __reduce30<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
+        // Delimiter<Expr, ";"> = Expr => ActionFn(103);
         let __sym0 = __pop_Variant1(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -98950,15 +98951,15 @@
         (1, 10)
     }
     pub(crate) fn __reduce31<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> =  => ActionFn(104);
+        // Delimiter<Expr, ";"> =  => ActionFn(104);
         let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
         let __end = __start.clone();
         let __nt = super::__action104::<>(input, &__start, &__end);
@@ -98966,15 +98967,15 @@
         (0, 10)
     }
     pub(crate) fn __reduce32<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+, Expr => ActionFn(105);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant1(__symbols);
         let __sym0 = __pop_Variant2(__symbols);
@@ -98985,15 +98986,15 @@
         (2, 10)
     }
     pub(crate) fn __reduce33<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
+        // Delimiter<Expr, ";"> = (<Expr> ";")+ => ActionFn(106);
         let __sym0 = __pop_Variant2(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99002,12 +99003,12 @@
         (1, 10)
     }
     pub(crate) fn __reduce34<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Ref, AssignOp, Expr => ActionFn(52);
@@ -99022,12 +99023,12 @@
         (3, 11)
     }
     pub(crate) fn __reduce35<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr = Expr10 => ActionFn(53);
@@ -99039,12 +99040,12 @@
         (1, 11)
     }
     pub(crate) fn __reduce36<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Ref => ActionFn(22);
@@ -99056,12 +99057,12 @@
         (1, 12)
     }
     pub(crate) fn __reduce37<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = Const => ActionFn(23);
@@ -99073,15 +99074,15 @@
         (1, 12)
     }
     pub(crate) fn __reduce38<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
+        // Expr1 = "(", FullExpr, ")" => ActionFn(24);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant0(__symbols);
         let __sym1 = __pop_Variant1(__symbols);
@@ -99093,15 +99094,15 @@
         (3, 12)
     }
     pub(crate) fn __reduce39<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
+        // Expr1 = FuncName, "(", Exprs, ")" => ActionFn(25);
         assert!(__symbols.len() >= 4);
         let __sym3 = __pop_Variant0(__symbols);
         let __sym2 = __pop_Variant6(__symbols);
@@ -99114,12 +99115,12 @@
         (4, 12)
     }
     pub(crate) fn __reduce40<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr1 = UnaryOp, Expr1 => ActionFn(26);
@@ -99133,15 +99134,15 @@
         (2, 12)
     }
     pub(crate) fn __reduce41<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
+        // Expr10 = Expr10, "||", Expr9 => ActionFn(50);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99153,12 +99154,12 @@
         (3, 13)
     }
     pub(crate) fn __reduce42<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr10 = Expr9 => ActionFn(51);
@@ -99170,15 +99171,15 @@
         (1, 13)
     }
     pub(crate) fn __reduce43<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
+        // Expr2 = Expr2, "*", Expr1 => ActionFn(27);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99190,15 +99191,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce44<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
+        // Expr2 = Expr2, "/", Expr1 => ActionFn(28);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99210,15 +99211,15 @@
         (3, 14)
     }
     pub(crate) fn __reduce45<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
+        // Expr2 = Expr2, "%", Expr1 => ActionFn(29);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99230,12 +99231,12 @@
         (3, 14)
     }
     pub(crate) fn __reduce46<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr2 = Expr1 => ActionFn(30);
@@ -99247,15 +99248,15 @@
         (1, 14)
     }
     pub(crate) fn __reduce47<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
+        // Expr3 = Expr3, "+", Expr2 => ActionFn(31);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99267,15 +99268,15 @@
         (3, 15)
     }
     pub(crate) fn __reduce48<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
+        // Expr3 = Expr3, "-", Expr2 => ActionFn(32);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99287,12 +99288,12 @@
         (3, 15)
     }
     pub(crate) fn __reduce49<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr3 = Expr2 => ActionFn(33);
@@ -99304,15 +99305,15 @@
         (1, 15)
     }
     pub(crate) fn __reduce50<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
+        // Expr4 = Expr4, "<", Expr3 => ActionFn(34);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99324,15 +99325,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce51<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
+        // Expr4 = Expr4, "<=", Expr3 => ActionFn(35);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99344,15 +99345,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce52<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
+        // Expr4 = Expr4, ">", Expr3 => ActionFn(36);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99364,15 +99365,15 @@
         (3, 16)
     }
     pub(crate) fn __reduce53<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
+        // Expr4 = Expr4, ">=", Expr3 => ActionFn(37);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99384,12 +99385,12 @@
         (3, 16)
     }
     pub(crate) fn __reduce54<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr4 = Expr3 => ActionFn(38);
@@ -99401,15 +99402,15 @@
         (1, 16)
     }
     pub(crate) fn __reduce55<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
+        // Expr5 = Expr5, "==", Expr4 => ActionFn(39);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99421,15 +99422,15 @@
         (3, 17)
     }
     pub(crate) fn __reduce56<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
+        // Expr5 = Expr5, "!=", Expr4 => ActionFn(40);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99441,12 +99442,12 @@
         (3, 17)
     }
     pub(crate) fn __reduce57<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr5 = Expr4 => ActionFn(41);
@@ -99458,15 +99459,15 @@
         (1, 17)
     }
     pub(crate) fn __reduce58<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
+        // Expr6 = Expr6, "&", Expr5 => ActionFn(42);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99478,12 +99479,12 @@
         (3, 18)
     }
     pub(crate) fn __reduce59<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr6 = Expr5 => ActionFn(43);
@@ -99495,15 +99496,15 @@
         (1, 18)
     }
     pub(crate) fn __reduce60<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
+        // Expr7 = Expr7, "^", Expr6 => ActionFn(44);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99515,12 +99516,12 @@
         (3, 19)
     }
     pub(crate) fn __reduce61<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr7 = Expr6 => ActionFn(45);
@@ -99532,15 +99533,15 @@
         (1, 19)
     }
     pub(crate) fn __reduce62<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
+        // Expr8 = Expr8, "|", Expr7 => ActionFn(46);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99552,12 +99553,12 @@
         (3, 20)
     }
     pub(crate) fn __reduce63<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr8 = Expr7 => ActionFn(47);
@@ -99569,15 +99570,15 @@
         (1, 20)
     }
     pub(crate) fn __reduce64<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
+        // Expr9 = Expr9, "&&", Expr8 => ActionFn(48);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant1(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99589,12 +99590,12 @@
         (3, 21)
     }
     pub(crate) fn __reduce65<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr9 = Expr8 => ActionFn(49);
@@ -99606,12 +99607,12 @@
         (1, 21)
     }
     pub(crate) fn __reduce66<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? = Expr => ActionFn(82);
@@ -99623,12 +99624,12 @@
         (1, 22)
     }
     pub(crate) fn __reduce67<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Expr? =  => ActionFn(83);
@@ -99639,15 +99640,15 @@
         (0, 22)
     }
     pub(crate) fn __reduce68<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
+        // Exprs = Delimiter<Expr, ","> => ActionFn(15);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99656,12 +99657,12 @@
         (1, 23)
     }
     pub(crate) fn __reduce69<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FullExpr = Expr => ActionFn(21);
@@ -99673,12 +99674,12 @@
         (1, 24)
     }
     pub(crate) fn __reduce70<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // FuncName = Id => ActionFn(16);
@@ -99690,15 +99691,15 @@
         (1, 25)
     }
     pub(crate) fn __reduce71<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // FuncName = Id, ".", Id => ActionFn(17);
+        // FuncName = Id, ".", Id => ActionFn(17);
         assert!(__symbols.len() >= 3);
         let __sym2 = __pop_Variant9(__symbols);
         let __sym1 = __pop_Variant0(__symbols);
@@ -99710,15 +99711,15 @@
         (3, 25)
     }
     pub(crate) fn __reduce72<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
+        // Id = r#"[A-Za-z]\\w*"# => ActionFn(67);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99727,15 +99728,15 @@
         (1, 26)
     }
     pub(crate) fn __reduce73<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Num = r#"[0-9]+"# => ActionFn(75);
+        // Num = r#"[0-9]+"# => ActionFn(75);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99744,15 +99745,15 @@
         (1, 27)
     }
     pub(crate) fn __reduce74<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Program = Delimiter<Expr, ";"> => ActionFn(14);
+        // Program = Delimiter<Expr, ";"> => ActionFn(14);
         let __sym0 = __pop_Variant6(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99761,12 +99762,12 @@
         (1, 28)
     }
     pub(crate) fn __reduce75<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // Ref = Id => ActionFn(63);
@@ -99778,15 +99779,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce76<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Id => ActionFn(64);
+        // Ref = "$", Id => ActionFn(64);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant9(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -99797,15 +99798,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce77<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$?" => ActionFn(65);
+        // Ref = "$?" => ActionFn(65);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99814,15 +99815,15 @@
         (1, 29)
     }
     pub(crate) fn __reduce78<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Ref = "$", Num => ActionFn(66);
+        // Ref = "$", Num => ActionFn(66);
         assert!(__symbols.len() >= 2);
         let __sym1 = __pop_Variant10(__symbols);
         let __sym0 = __pop_Variant0(__symbols);
@@ -99833,15 +99834,15 @@
         (2, 29)
     }
     pub(crate) fn __reduce79<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
+        // Str = r#"\"[^\"\\\\]*(\\\\.[^\"\\\\]*)*\""# => ActionFn(76);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99850,15 +99851,15 @@
         (1, 30)
     }
     pub(crate) fn __reduce80<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "+" => ActionFn(18);
+        // UnaryOp = "+" => ActionFn(18);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99867,15 +99868,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce81<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "-" => ActionFn(19);
+        // UnaryOp = "-" => ActionFn(19);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99884,15 +99885,15 @@
         (1, 31)
     }
     pub(crate) fn __reduce82<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
-        // UnaryOp = "!" => ActionFn(20);
+        // UnaryOp = "!" => ActionFn(20);
         let __sym0 = __pop_Variant0(__symbols);
         let __start = __sym0.0;
         let __end = __sym0.2;
@@ -99901,12 +99902,12 @@
         (1, 31)
     }
     pub(crate) fn __reduce83<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Const = Const => ActionFn(13);
@@ -99918,12 +99919,12 @@
         (1, 32)
     }
     pub(crate) fn __reduce84<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr = Expr => ActionFn(11);
@@ -99935,12 +99936,12 @@
         (1, 33)
     }
     pub(crate) fn __reduce85<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr1 = Expr1 => ActionFn(1);
@@ -99952,12 +99953,12 @@
         (1, 34)
     }
     pub(crate) fn __reduce86<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr10 = Expr10 => ActionFn(10);
@@ -99969,12 +99970,12 @@
         (1, 35)
     }
     pub(crate) fn __reduce87<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr2 = Expr2 => ActionFn(2);
@@ -99986,12 +99987,12 @@
         (1, 36)
     }
     pub(crate) fn __reduce88<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr3 = Expr3 => ActionFn(3);
@@ -100003,12 +100004,12 @@
         (1, 37)
     }
     pub(crate) fn __reduce89<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr4 = Expr4 => ActionFn(4);
@@ -100020,12 +100021,12 @@
         (1, 38)
     }
     pub(crate) fn __reduce90<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr5 = Expr5 => ActionFn(5);
@@ -100037,12 +100038,12 @@
         (1, 39)
     }
     pub(crate) fn __reduce91<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr6 = Expr6 => ActionFn(6);
@@ -100054,12 +100055,12 @@
         (1, 40)
     }
     pub(crate) fn __reduce92<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr7 = Expr7 => ActionFn(7);
@@ -100071,12 +100072,12 @@
         (1, 41)
     }
     pub(crate) fn __reduce93<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr8 = Expr8 => ActionFn(8);
@@ -100088,12 +100089,12 @@
         (1, 42)
     }
     pub(crate) fn __reduce94<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Expr9 = Expr9 => ActionFn(9);
@@ -100105,12 +100106,12 @@
         (1, 43)
     }
     pub(crate) fn __reduce95<
-        'input,
+        'input,
     >(
-        input: &'input str,
+        input: &'input str,
         __lookahead_start: Option<&usize>,
-        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
-        _: core::marker::PhantomData<(&'input ())>,
+        __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
+        _: core::marker::PhantomData<(&'input ())>,
     ) -> (usize, usize)
     {
         // __Program = Program => ActionFn(0);
@@ -100137,47 +100138,47 @@
     extern crate alloc;
     pub fn new_builder() -> __lalrpop_util::lexer::MatcherBuilder {
         let __strs: &[(&str, bool)] = &[
-            ("^((?:\"[\0-!\\#-\\[\\]-\u{10ffff}]*((?:\\\\[\0-\t\u{b}-\u{10ffff}][\0-!\\#-\\[\\]-\u{10ffff}]*))*\"))", false),
-            ("^([0-9]+)", false),
-            ("^((?:[A-Za-z][0-9A-Z_a-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ\u{300}-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ\u{483}-ԯԱ-Ֆՙՠ-ֈ\u{591}-\u{5bd}\u{5bf}\u{5c1}\u{5c2}\u{5c4}\u{5c5}\u{5c7}א-תׯ-ײ\u{610}-\u{61a}ؠ-٩ٮ-ۓە-\u{6dc}\u{6df}-\u{6e8}\u{6ea}-ۼۿܐ-\u{74a}ݍ-ޱ߀-ߵߺ\u{7fd}ࠀ-\u{82d}ࡀ-\u{85b}ࡠ-ࡪࡰ-ࢇࢉ-ࢎ\u{898}-\u{8e1}\u{8e3}-\u{963}०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ\u{9bc}-\u{9c4}েৈো-ৎ\u{9d7}ড়ঢ়য়-\u{9e3}০-ৱৼ\u{9fe}\u{a01}-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ\u{a3c}ਾ-\u{a42}\u{a47}\u{a48}\u{a4b}-\u{a4d}\u{a51}ਖ਼-ੜਫ਼੦-\u{a75}\u{a81}-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ\u{abc}-\u{ac5}\u{ac7}-ૉો-\u{acd}ૐૠ-\u{ae3}૦-૯ૹ-\u{aff}\u{b01}-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ\u{b3c}-\u{b44}େୈୋ-\u{b4d}\u{b55}-\u{b57}ଡ଼ଢ଼ୟ-\u{b63}୦-୯ୱ\u{b82}ஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹ\u{bbe}-ூெ-ைொ-\u{bcd}ௐ\u{bd7}௦-௯\u{c00}-ఌఎ-ఐఒ-నప-హ\u{c3c}-ౄ\u{c46}-\u{c48}\u{c4a}-\u{c4d}\u{c55}\u{c56}ౘ-ౚౝౠ-\u{c63}౦-౯ಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ\u{cbc}-ೄ\u{cc6}-ೈೊ-\u{ccd}\u{cd5}\u{cd6}ೝೞೠ-\u{ce3}೦-೯ೱ-ೳ\u{d00}-ഌഎ-ഐഒ-\u{d44}െ-ൈൊ-ൎൔ-\u{d57}ൟ-\u{d63}൦-൯ൺ-ൿ\u{d81}-ඃඅ-ඖක-නඳ-රලව-ෆ\u{dca}\u{dcf}-\u{dd4}\u{dd6}ෘ-\u{ddf}෦-෯ෲෳก-\u{e3a}เ-\u{e4e}๐-๙ກຂຄຆ-ຊຌ-ຣລວ-ຽເ-ໄໆ\u{ec8}-\u{ece}໐-໙ໜ-ໟༀ\u{f18}\u{f19}༠-༩\u{f35}\u{f37}\u{f39}༾-ཇཉ-ཬ\u{f71}-\u{f84}\u{f86}-\u{f97}\u{f99}-\u{fbc}\u{fc6}က-၉ၐ-\u{109d}Ⴀ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ\u{135d}-\u{135f}ᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-᜕ᜟ-᜴ᝀ-\u{1753}ᝠ-ᝬᝮ-ᝰ\u{1772}\u{1773}ក-\u{17d3}ៗៜ\u{17dd}០-៩\u{180b}-\u{180d}\u{180f}-᠙ᠠ-ᡸᢀ-ᢪᢰ-ᣵᤀ-ᤞ\u{1920}-ᤫᤰ-\u{193b}᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-\u{1a1b}ᨠ-\u{1a5e}\u{1a60}-\u{1a7c}\u{1a7f}-᪉᪐-᪙ᪧ\u{1ab0}-\u{1ace}\u{1b00}-ᭌ᭐-᭙\u{1b6b}-\u{1b73}\u{1b80}-᯳ᰀ-\u{1c37}᱀-᱉ᱍ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿ\u{1cd0}-\u{1cd2}\u{1cd4}-ᳺᴀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ\u{200c}\u{200d}‿⁀⁔ⁱⁿₐ-ₜ\u{20d0}-\u{20f0}ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ\u{2d7f}-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ\u{2de0}-\u{2dff}ⸯ々-〇〡-\u{302f}〱-〵〸-〼ぁ-ゖ\u{3099}\u{309a}ゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-\u{a672}\u{a674}-\u{a67d}ꙿ-\u{a6f1}ꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠧ\u{a82c}ꡀ-ꡳꢀ-\u{a8c5}꣐-꣙\u{a8e0}-ꣷꣻꣽ-\u{a92d}ꤰ-꥓ꥠ-ꥼ\u{a980}-꧀ꧏ-꧙ꧠ-ꧾꨀ-\u{aa36}ꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-\u{aaf6}ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯪ꯬\u{abed}꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ\u{fe00}-\u{fe0f}\u{fe20}-\u{fe2f}︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ𐀀-𐀋𐀍-𐀦𐀨-𐀺𐀼𐀽𐀿-𐁍𐁐-𐁝𐂀-𐃺𐅀-𐅴\u{101fd}𐊀-𐊜𐊠-𐋐\u{102e0}𐌀-𐌟𐌭-𐍊𐍐-\u{1037a}𐎀-𐎝𐎠-𐏃𐏈-𐏏𐏑-𐏕𐐀-𐒝𐒠-𐒩𐒰-𐓓𐓘-𐓻𐔀-𐔧𐔰-𐕣𐕰-𐕺𐕼-𐖊𐖌-𐖒𐖔𐖕𐖗-𐖡𐖣-𐖱𐖳-𐖹𐖻𐖼𐘀-𐜶𐝀-𐝕𐝠-𐝧𐞀-𐞅𐞇-𐞰𐞲-𐞺𐠀-𐠅𐠈𐠊-𐠵𐠷𐠸𐠼𐠿-𐡕𐡠-𐡶𐢀-𐢞𐣠-𐣲𐣴𐣵𐤀-𐤕𐤠-𐤹𐦀-𐦷𐦾𐦿𐨀-\u{10a03}\u{10a05}\u{10a06}\u{10a0c}-𐨓𐨕-𐨗𐨙-𐨵\u{10a38}-\u{10a3a}\u{10a3f}𐩠-𐩼𐪀-𐪜𐫀-𐫇𐫉-\u{10ae6}𐬀-𐬵𐭀-𐭕𐭠-𐭲𐮀-𐮑𐰀-𐱈𐲀-𐲲𐳀-𐳲𐴀-\u{10d27}𐴰-𐴹𐺀-𐺩\u{10eab}\u{10eac}𐺰𐺱\u{10efd}-𐼜𐼧𐼰-\u{10f50}𐽰-\u{10f85}𐾰-𐿄𐿠-𐿶𑀀-\u{11046}𑁦-𑁵\u{1107f}-\u{110ba}\u{110c2}𑃐-𑃨𑃰-𑃹\u{11100}-\u{11134}𑄶-𑄿𑅄-𑅇𑅐-\u{11173}𑅶\u{11180}-𑇄\u{111c9}-\u{111cc}𑇎-𑇚𑇜𑈀-𑈑𑈓-\u{11237}\u{1123e}-\u{11241}𑊀-𑊆𑊈𑊊-𑊍𑊏-𑊝𑊟-𑊨𑊰-\u{112ea}𑋰-𑋹\u{11300}-𑌃𑌅-𑌌𑌏𑌐𑌓-𑌨𑌪-𑌰𑌲𑌳𑌵-𑌹\u{1133b}-𑍄𑍇𑍈𑍋-𑍍𑍐\u{11357}𑍝-𑍣\u{11366}-\u{1136c}\u{11370}-\u{11374}𑐀-𑑊𑑐-𑑙\u{1145e}-𑑡𑒀-𑓅𑓇𑓐-𑓙𑖀-\u{115b5}𑖸-\u{115c0}𑗘-\u{115dd}𑘀-\u{11640}𑙄𑙐-𑙙𑚀-𑚸𑛀-𑛉𑜀-𑜚\u{1171d}-\u{1172b}𑜰-𑜹𑝀-𑝆𑠀-\u{1183a}𑢠-𑣩𑣿-𑤆𑤉𑤌-𑤓𑤕𑤖𑤘-𑤵𑤷𑤸\u{1193b}-\u{11943}𑥐-𑥙𑦠-𑦧𑦪-\u{119d7}\u{119da}-𑧡𑧣𑧤𑨀-\u{11a3e}\u{11a47}𑩐-\u{11a99}𑪝𑪰-𑫸𑰀-𑰈𑰊-\u{11c36}\u{11c38}-𑱀𑱐-𑱙𑱲-𑲏\u{11c92}-\u{11ca7}𑲩-\u{11cb6}𑴀-𑴆𑴈𑴉𑴋-\u{11d36}\u{11d3a}\u{11d3c}\u{11d3d}\u{11d3f}-\u{11d47}𑵐-𑵙𑵠-𑵥𑵧𑵨𑵪-𑶎\u{11d90}\u{11d91}𑶓-𑶘𑶠-𑶩𑻠-𑻶\u{11f00}-𑼐𑼒-\u{11f3a}𑼾-\u{11f42}𑽐-𑽙𑾰𒀀-𒎙𒐀-𒑮𒒀-𒕃𒾐-𒿰𓀀-𓐯\u{13440}-\u{13455}𔐀-𔙆𖠀-𖨸𖩀-𖩞𖩠-𖩩𖩰-𖪾𖫀-𖫉𖫐-𖫭\u{16af0}-\u{16af4}𖬀-\u{16b36}𖭀-𖭃𖭐-𖭙𖭣-𖭷𖭽-𖮏𖹀-𖹿𖼀-𖽊\u{16f4f}-𖾇\u{16f8f}-𖾟𖿠𖿡𖿣\u{16fe4}𖿰𖿱𗀀-𘟷𘠀-𘳕𘴀-𘴈𚿰-𚿳𚿵-𚿻𚿽𚿾𛀀-𛄢𛄲𛅐-𛅒𛅕𛅤-𛅧𛅰-𛋻𛰀-𛱪𛱰-𛱼𛲀-𛲈𛲐-𛲙\u{1bc9d}\u{1bc9e}\u{1cf00}-\u{1cf2d}\u{1cf30}-\u{1cf46}\u{1d165}-\u{1d169}𝅭-\u{1d172}\u{1d17b}-\u{1d182}\u{1d185}-\u{1d18b}\u{1d1aa}-\u{1d1ad}\u{1d242}-\u{1d244}𝐀-𝑔𝑖-𝒜𝒞𝒟𝒢𝒥𝒦𝒩-𝒬𝒮-𝒹𝒻𝒽-𝓃𝓅-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔞-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕒-𝚥𝚨-𝛀𝛂-𝛚𝛜-𝛺𝛼-𝜔𝜖-𝜴𝜶-𝝎𝝐-𝝮𝝰-𝞈𝞊-𝞨𝞪-𝟂𝟄-𝟋𝟎-𝟿\u{1da00}-\u{1da36}\u{1da3b}-\u{1da6c}\u{1da75}\u{1da84}\u{1da9b}-\u{1da9f}\u{1daa1}-\u{1daaf}𝼀-𝼞𝼥-𝼪\u{1e000}-\u{1e006}\u{1e008}-\u{1e018}\u{1e01b}-\u{1e021}\u{1e023}\u{1e024}\u{1e026}-\u{1e02a}𞀰-𞁭\u{1e08f}𞄀-𞄬\u{1e130}-𞄽𞅀-𞅉𞅎𞊐-\u{1e2ae}𞋀-𞋹𞓐-𞓹𞟠-𞟦𞟨-𞟫𞟭𞟮𞟰-𞟾𞠀-𞣄\u{1e8d0}-\u{1e8d6}𞤀-𞥋𞥐-𞥙𞸀-𞸃𞸅-𞸟𞸡𞸢𞸤𞸧𞸩-𞸲𞸴-𞸷𞸹𞸻𞹂𞹇𞹉𞹋𞹍-𞹏𞹑𞹒𞹔𞹗𞹙𞹛𞹝𞹟𞹡𞹢𞹤𞹧-𞹪𞹬-𞹲𞹴-𞹷𞹹-𞹼𞹾𞺀-𞺉𞺋-𞺛𞺡-𞺣𞺥-𞺩𞺫-𞺻🄰-🅉🅐-🅩🅰-🆉🯰-🯹𠀀-𪛟𪜀-𫜹𫝀-𫠝𫠠-𬺡𬺰-𮯠丽-𪘀𰀀-𱍊𱍐-𲎯\u{e0100}-\u{e01ef}]*))", false),
-            ("^(!)", false),
-            ("^((?:!=))", false),
-            ("^(\\$)", false),
-            ("^((?:\\$\\?))", false),
-            ("^(%)", false),
-            ("^((?:%=))", false),
-            ("^(\\&)", false),
-            ("^((?:\\&\\&))", false),
-            ("^((?:\\&=))", false),
-            ("^(\\()", false),
-            ("^(\\))", false),
-            ("^(\\*)", false),
-            ("^((?:\\*=))", false),
-            ("^(\\+)", false),
-            ("^((?:\\+=))", false),
-            ("^(,)", false),
-            ("^(\\-)", false),
-            ("^((?:\\-=))", false),
-            ("^(\\.)", false),
-            ("^(/)", false),
-            ("^((?:/=))", false),
-            ("^(;)", false),
-            ("^(<)", false),
-            ("^((?:<=))", false),
-            ("^(=)", false),
-            ("^((?:==))", false),
-            ("^(>)", false),
-            ("^((?:>=))", false),
-            ("^(\\^)", false),
-            ("^((?:\\^=))", false),
-            ("^((?:false))", false),
-            ("^((?:null))", false),
-            ("^((?:true))", false),
-            ("^(\\|)", false),
-            ("^((?:\\|=))", false),
-            ("^((?:\\|\\|))", false),
-            ("^(\\~)", false),
-            (r"^(\s*)", true),
+            ("^((?:\"[\0-!\\#-\\[\\]-\u{10ffff}]*((?:\\\\[\0-\t\u{b}-\u{10ffff}][\0-!\\#-\\[\\]-\u{10ffff}]*))*\"))", false),
+            ("^([0-9]+)", false),
+            ("^((?:[A-Za-z][0-9A-Z_a-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ\u{300}-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ\u{483}-ԯԱ-Ֆՙՠ-ֈ\u{591}-\u{5bd}\u{5bf}\u{5c1}\u{5c2}\u{5c4}\u{5c5}\u{5c7}א-תׯ-ײ\u{610}-\u{61a}ؠ-٩ٮ-ۓە-\u{6dc}\u{6df}-\u{6e8}\u{6ea}-ۼۿܐ-\u{74a}ݍ-ޱ߀-ߵߺ\u{7fd}ࠀ-\u{82d}ࡀ-\u{85b}ࡠ-ࡪࡰ-ࢇࢉ-ࢎ\u{898}-\u{8e1}\u{8e3}-\u{963}०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ\u{9bc}-\u{9c4}েৈো-ৎ\u{9d7}ড়ঢ়য়-\u{9e3}০-ৱৼ\u{9fe}\u{a01}-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ\u{a3c}ਾ-\u{a42}\u{a47}\u{a48}\u{a4b}-\u{a4d}\u{a51}ਖ਼-ੜਫ਼੦-\u{a75}\u{a81}-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ\u{abc}-\u{ac5}\u{ac7}-ૉો-\u{acd}ૐૠ-\u{ae3}૦-૯ૹ-\u{aff}\u{b01}-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ\u{b3c}-\u{b44}େୈୋ-\u{b4d}\u{b55}-\u{b57}ଡ଼ଢ଼ୟ-\u{b63}୦-୯ୱ\u{b82}ஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹ\u{bbe}-ூெ-ைொ-\u{bcd}ௐ\u{bd7}௦-௯\u{c00}-ఌఎ-ఐఒ-నప-హ\u{c3c}-ౄ\u{c46}-\u{c48}\u{c4a}-\u{c4d}\u{c55}\u{c56}ౘ-ౚౝౠ-\u{c63}౦-౯ಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ\u{cbc}-ೄ\u{cc6}-ೈೊ-\u{ccd}\u{cd5}\u{cd6}ೝೞೠ-\u{ce3}೦-೯ೱ-ೳ\u{d00}-ഌഎ-ഐഒ-\u{d44}െ-ൈൊ-ൎൔ-\u{d57}ൟ-\u{d63}൦-൯ൺ-ൿ\u{d81}-ඃඅ-ඖක-නඳ-රලව-ෆ\u{dca}\u{dcf}-\u{dd4}\u{dd6}ෘ-\u{ddf}෦-෯ෲෳก-\u{e3a}เ-\u{e4e}๐-๙ກຂຄຆ-ຊຌ-ຣລວ-ຽເ-ໄໆ\u{ec8}-\u{ece}໐-໙ໜ-ໟༀ\u{f18}\u{f19}༠-༩\u{f35}\u{f37}\u{f39}༾-ཇཉ-ཬ\u{f71}-\u{f84}\u{f86}-\u{f97}\u{f99}-\u{fbc}\u{fc6}က-၉ၐ-\u{109d}Ⴀ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ\u{135d}-\u{135f}ᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-᜕ᜟ-᜴ᝀ-\u{1753}ᝠ-ᝬᝮ-ᝰ\u{1772}\u{1773}ក-\u{17d3}ៗៜ\u{17dd}០-៩\u{180b}-\u{180d}\u{180f}-᠙ᠠ-ᡸᢀ-ᢪᢰ-ᣵᤀ-ᤞ\u{1920}-ᤫᤰ-\u{193b}᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-\u{1a1b}ᨠ-\u{1a5e}\u{1a60}-\u{1a7c}\u{1a7f}-᪉᪐-᪙ᪧ\u{1ab0}-\u{1ace}\u{1b00}-ᭌ᭐-᭙\u{1b6b}-\u{1b73}\u{1b80}-᯳ᰀ-\u{1c37}᱀-᱉ᱍ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿ\u{1cd0}-\u{1cd2}\u{1cd4}-ᳺᴀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ\u{200c}\u{200d}‿⁀⁔ⁱⁿₐ-ₜ\u{20d0}-\u{20f0}ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ\u{2d7f}-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ\u{2de0}-\u{2dff}ⸯ々-〇〡-\u{302f}〱-〵〸-〼ぁ-ゖ\u{3099}\u{309a}ゝ-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-\u{a672}\u{a674}-\u{a67d}ꙿ-\u{a6f1}ꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠧ\u{a82c}ꡀ-ꡳꢀ-\u{a8c5}꣐-꣙\u{a8e0}-ꣷꣻꣽ-\u{a92d}ꤰ-꥓ꥠ-ꥼ\u{a980}-꧀ꧏ-꧙ꧠ-ꧾꨀ-\u{aa36}ꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-\u{aaf6}ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯪ꯬\u{abed}꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ\u{fe00}-\u{fe0f}\u{fe20}-\u{fe2f}︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ𐀀-𐀋𐀍-𐀦𐀨-𐀺𐀼𐀽𐀿-𐁍𐁐-𐁝𐂀-𐃺𐅀-𐅴\u{101fd}𐊀-𐊜𐊠-𐋐\u{102e0}𐌀-𐌟𐌭-𐍊𐍐-\u{1037a}𐎀-𐎝𐎠-𐏃𐏈-𐏏𐏑-𐏕𐐀-𐒝𐒠-𐒩𐒰-𐓓𐓘-𐓻𐔀-𐔧𐔰-𐕣𐕰-𐕺𐕼-𐖊𐖌-𐖒𐖔𐖕𐖗-𐖡𐖣-𐖱𐖳-𐖹𐖻𐖼𐘀-𐜶𐝀-𐝕𐝠-𐝧𐞀-𐞅𐞇-𐞰𐞲-𐞺𐠀-𐠅𐠈𐠊-𐠵𐠷𐠸𐠼𐠿-𐡕𐡠-𐡶𐢀-𐢞𐣠-𐣲𐣴𐣵𐤀-𐤕𐤠-𐤹𐦀-𐦷𐦾𐦿𐨀-\u{10a03}\u{10a05}\u{10a06}\u{10a0c}-𐨓𐨕-𐨗𐨙-𐨵\u{10a38}-\u{10a3a}\u{10a3f}𐩠-𐩼𐪀-𐪜𐫀-𐫇𐫉-\u{10ae6}𐬀-𐬵𐭀-𐭕𐭠-𐭲𐮀-𐮑𐰀-𐱈𐲀-𐲲𐳀-𐳲𐴀-\u{10d27}𐴰-𐴹𐺀-𐺩\u{10eab}\u{10eac}𐺰𐺱\u{10efd}-𐼜𐼧𐼰-\u{10f50}𐽰-\u{10f85}𐾰-𐿄𐿠-𐿶𑀀-\u{11046}𑁦-𑁵\u{1107f}-\u{110ba}\u{110c2}𑃐-𑃨𑃰-𑃹\u{11100}-\u{11134}𑄶-𑄿𑅄-𑅇𑅐-\u{11173}𑅶\u{11180}-𑇄\u{111c9}-\u{111cc}𑇎-𑇚𑇜𑈀-𑈑𑈓-\u{11237}\u{1123e}-\u{11241}𑊀-𑊆𑊈𑊊-𑊍𑊏-𑊝𑊟-𑊨𑊰-\u{112ea}𑋰-𑋹\u{11300}-𑌃𑌅-𑌌𑌏𑌐𑌓-𑌨𑌪-𑌰𑌲𑌳𑌵-𑌹\u{1133b}-𑍄𑍇𑍈𑍋-𑍍𑍐\u{11357}𑍝-𑍣\u{11366}-\u{1136c}\u{11370}-\u{11374}𑐀-𑑊𑑐-𑑙\u{1145e}-𑑡𑒀-𑓅𑓇𑓐-𑓙𑖀-\u{115b5}𑖸-\u{115c0}𑗘-\u{115dd}𑘀-\u{11640}𑙄𑙐-𑙙𑚀-𑚸𑛀-𑛉𑜀-𑜚\u{1171d}-\u{1172b}𑜰-𑜹𑝀-𑝆𑠀-\u{1183a}𑢠-𑣩𑣿-𑤆𑤉𑤌-𑤓𑤕𑤖𑤘-𑤵𑤷𑤸\u{1193b}-\u{11943}𑥐-𑥙𑦠-𑦧𑦪-\u{119d7}\u{119da}-𑧡𑧣𑧤𑨀-\u{11a3e}\u{11a47}𑩐-\u{11a99}𑪝𑪰-𑫸𑰀-𑰈𑰊-\u{11c36}\u{11c38}-𑱀𑱐-𑱙𑱲-𑲏\u{11c92}-\u{11ca7}𑲩-\u{11cb6}𑴀-𑴆𑴈𑴉𑴋-\u{11d36}\u{11d3a}\u{11d3c}\u{11d3d}\u{11d3f}-\u{11d47}𑵐-𑵙𑵠-𑵥𑵧𑵨𑵪-𑶎\u{11d90}\u{11d91}𑶓-𑶘𑶠-𑶩𑻠-𑻶\u{11f00}-𑼐𑼒-\u{11f3a}𑼾-\u{11f42}𑽐-𑽙𑾰𒀀-𒎙𒐀-𒑮𒒀-𒕃𒾐-𒿰𓀀-𓐯\u{13440}-\u{13455}𔐀-𔙆𖠀-𖨸𖩀-𖩞𖩠-𖩩𖩰-𖪾𖫀-𖫉𖫐-𖫭\u{16af0}-\u{16af4}𖬀-\u{16b36}𖭀-𖭃𖭐-𖭙𖭣-𖭷𖭽-𖮏𖹀-𖹿𖼀-𖽊\u{16f4f}-𖾇\u{16f8f}-𖾟𖿠𖿡𖿣\u{16fe4}𖿰𖿱𗀀-𘟷𘠀-𘳕𘴀-𘴈𚿰-𚿳𚿵-𚿻𚿽𚿾𛀀-𛄢𛄲𛅐-𛅒𛅕𛅤-𛅧𛅰-𛋻𛰀-𛱪𛱰-𛱼𛲀-𛲈𛲐-𛲙\u{1bc9d}\u{1bc9e}\u{1cf00}-\u{1cf2d}\u{1cf30}-\u{1cf46}\u{1d165}-\u{1d169}𝅭-\u{1d172}\u{1d17b}-\u{1d182}\u{1d185}-\u{1d18b}\u{1d1aa}-\u{1d1ad}\u{1d242}-\u{1d244}𝐀-𝑔𝑖-𝒜𝒞𝒟𝒢𝒥𝒦𝒩-𝒬𝒮-𝒹𝒻𝒽-𝓃𝓅-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔞-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕒-𝚥𝚨-𝛀𝛂-𝛚𝛜-𝛺𝛼-𝜔𝜖-𝜴𝜶-𝝎𝝐-𝝮𝝰-𝞈𝞊-𝞨𝞪-𝟂𝟄-𝟋𝟎-𝟿\u{1da00}-\u{1da36}\u{1da3b}-\u{1da6c}\u{1da75}\u{1da84}\u{1da9b}-\u{1da9f}\u{1daa1}-\u{1daaf}𝼀-𝼞𝼥-𝼪\u{1e000}-\u{1e006}\u{1e008}-\u{1e018}\u{1e01b}-\u{1e021}\u{1e023}\u{1e024}\u{1e026}-\u{1e02a}𞀰-𞁭\u{1e08f}𞄀-𞄬\u{1e130}-𞄽𞅀-𞅉𞅎𞊐-\u{1e2ae}𞋀-𞋹𞓐-𞓹𞟠-𞟦𞟨-𞟫𞟭𞟮𞟰-𞟾𞠀-𞣄\u{1e8d0}-\u{1e8d6}𞤀-𞥋𞥐-𞥙𞸀-𞸃𞸅-𞸟𞸡𞸢𞸤𞸧𞸩-𞸲𞸴-𞸷𞸹𞸻𞹂𞹇𞹉𞹋𞹍-𞹏𞹑𞹒𞹔𞹗𞹙𞹛𞹝𞹟𞹡𞹢𞹤𞹧-𞹪𞹬-𞹲𞹴-𞹷𞹹-𞹼𞹾𞺀-𞺉𞺋-𞺛𞺡-𞺣𞺥-𞺩𞺫-𞺻🄰-🅉🅐-🅩🅰-🆉🯰-🯹𠀀-𪛟𪜀-𫜹𫝀-𫠝𫠠-𬺡𬺰-𮯠丽-𪘀𰀀-𱍊𱍐-𲎯\u{e0100}-\u{e01ef}]*))", false),
+            ("^(!)", false),
+            ("^((?:!=))", false),
+            ("^(\\$)", false),
+            ("^((?:\\$\\?))", false),
+            ("^(%)", false),
+            ("^((?:%=))", false),
+            ("^(\\&)", false),
+            ("^((?:\\&\\&))", false),
+            ("^((?:\\&=))", false),
+            ("^(\\()", false),
+            ("^(\\))", false),
+            ("^(\\*)", false),
+            ("^((?:\\*=))", false),
+            ("^(\\+)", false),
+            ("^((?:\\+=))", false),
+            ("^(,)", false),
+            ("^(\\-)", false),
+            ("^((?:\\-=))", false),
+            ("^(\\.)", false),
+            ("^(/)", false),
+            ("^((?:/=))", false),
+            ("^(;)", false),
+            ("^(<)", false),
+            ("^((?:<=))", false),
+            ("^(=)", false),
+            ("^((?:==))", false),
+            ("^(>)", false),
+            ("^((?:>=))", false),
+            ("^(\\^)", false),
+            ("^((?:\\^=))", false),
+            ("^((?:false))", false),
+            ("^((?:null))", false),
+            ("^((?:true))", false),
+            ("^(\\|)", false),
+            ("^((?:\\|=))", false),
+            ("^((?:\\|\\|))", false),
+            ("^(\\~)", false),
+            (r"^(\s*)", true),
         ];
         __lalrpop_util::lexer::MatcherBuilder::new(__strs.iter().copied()).unwrap()
     }
@@ -100187,9 +100188,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action0<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Program, usize),
 ) -> Program
 {
@@ -100199,9 +100200,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action1<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100211,9 +100212,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action2<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100223,9 +100224,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action3<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100235,9 +100236,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action4<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100247,9 +100248,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action5<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100259,9 +100260,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action6<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100271,9 +100272,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action7<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100283,9 +100284,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action8<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100295,9 +100296,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action9<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100307,9 +100308,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action10<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100319,9 +100320,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action11<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100331,9 +100332,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action12<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Ref, usize),
 ) -> Ref
 {
@@ -100343,9 +100344,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action13<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, RawValue, usize),
 ) -> RawValue
 {
@@ -100355,9 +100356,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action14<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Vec<Expr>, usize),
 ) -> Program
 {
@@ -100367,9 +100368,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action15<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Vec<Expr>, usize),
 ) -> Vec<Expr>
 {
@@ -100379,9 +100380,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action16<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, i, _): (usize, String, usize),
 ) -> (String, String)
 {
@@ -100391,11 +100392,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action17<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, ns, _): (usize, String, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, name, _): (usize, String, usize),
 ) -> (String, String)
 {
@@ -100405,10 +100406,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action18<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> UnaryOp
 {
     UnaryOp::Positive
@@ -100417,10 +100418,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action19<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> UnaryOp
 {
     UnaryOp::Negative
@@ -100429,10 +100430,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action20<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> UnaryOp
 {
     UnaryOp::Not
@@ -100441,9 +100442,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action21<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100453,9 +100454,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action22<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, r, _): (usize, Ref, usize),
 ) -> Expr
 {
@@ -100465,9 +100466,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action23<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, c, _): (usize, RawValue, usize),
 ) -> Expr
 {
@@ -100477,12 +100478,12 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action24<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, _, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, _, _): (usize, &'input str, usize),
     (_, e, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
 ) -> Expr
 {
     e
@@ -100491,13 +100492,13 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action25<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, i, _): (usize, (String, String), usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, a, _): (usize, Vec<Expr>, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
 ) -> Expr
 {
     Expr::Call(i.0, i.1, a)
@@ -100506,9 +100507,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action26<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, o, _): (usize, UnaryOp, usize),
     (_, e, _): (usize, Expr, usize),
 ) -> Expr
@@ -100519,11 +100520,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action27<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100533,11 +100534,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action28<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100547,11 +100548,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action29<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100561,9 +100562,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action30<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100573,11 +100574,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action31<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100587,11 +100588,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action32<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100601,9 +100602,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action33<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100613,11 +100614,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action34<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100627,11 +100628,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action35<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100641,11 +100642,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action36<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100655,11 +100656,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action37<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100669,9 +100670,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action38<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100681,11 +100682,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action39<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100695,11 +100696,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action40<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100709,9 +100710,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action41<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100721,11 +100722,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action42<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100735,9 +100736,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action43<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100747,11 +100748,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action44<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100761,9 +100762,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action45<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100773,11 +100774,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action46<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100787,9 +100788,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action47<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100799,11 +100800,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action48<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100813,9 +100814,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action49<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100825,11 +100826,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action50<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, le, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
     (_, re, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100839,9 +100840,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action51<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100851,9 +100852,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action52<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, r, _): (usize, Ref, usize),
     (_, o, _): (usize, BinaryOp, usize),
     (_, e, _): (usize, Expr, usize),
@@ -100865,9 +100866,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action53<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> Expr
 {
@@ -100877,10 +100878,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action54<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Assign
@@ -100889,10 +100890,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action55<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Add)
@@ -100901,10 +100902,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action56<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Minus)
@@ -100913,10 +100914,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action57<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Mul)
@@ -100925,10 +100926,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action58<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Div)
@@ -100937,10 +100938,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action59<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Mod)
@@ -100949,10 +100950,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action60<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::And)
@@ -100961,10 +100962,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action61<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Or)
@@ -100973,10 +100974,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action62<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> BinaryOp
 {
     BinaryOp::Inplace(ValBinaryOp::Xor)
@@ -100985,9 +100986,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action63<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, i, _): (usize, String, usize),
 ) -> Ref
 {
@@ -100997,10 +100998,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action64<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, _, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, _, _): (usize, &'input str, usize),
     (_, i, _): (usize, String, usize),
 ) -> Ref
 {
@@ -101010,22 +101011,22 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action65<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> Ref
 {
-    Ref::Ctx("?".to_string())
+    Ref::Ctx("?".to_string())
 }
 
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action66<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, _, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, _, _): (usize, &'input str, usize),
     (_, i, _): (usize, i64, usize),
 ) -> Ref
 {
@@ -101035,10 +101036,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action67<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, s, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, s, _): (usize, &'input str, usize),
 ) -> String
 {
     s.into()
@@ -101047,10 +101048,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action68<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> RawValue
 {
     RawValue::Unit
@@ -101059,10 +101060,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action69<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> RawValue
 {
     RawValue::Unit
@@ -101071,9 +101072,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action70<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, b, _): (usize, bool, usize),
 ) -> RawValue
 {
@@ -101083,9 +101084,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action71<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, n, _): (usize, i64, usize),
 ) -> RawValue
 {
@@ -101095,9 +101096,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action72<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, s, _): (usize, String, usize),
 ) -> RawValue
 {
@@ -101107,10 +101108,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action73<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> bool
 {
     true
@@ -101119,10 +101120,10 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action74<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, __0, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, __0, _): (usize, &'input str, usize),
 ) -> bool
 {
     false
@@ -101131,22 +101132,22 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action75<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, s, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, s, _): (usize, &'input str, usize),
 ) -> i64
 {
-    unwrap_or_default_log!(i64::from_str(s), "Parse num error")
+    unwrap_or_default_log!(i64::from_str(s), "Parse num error")
 }
 
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action76<
-    'input,
+    'input,
 >(
-    input: &'input str,
-    (_, s, _): (usize, &'input str, usize),
+    input: &'input str,
+    (_, s, _): (usize, &'input str, usize),
 ) -> String
 {
     s[1..s.len() - 1].into()
@@ -101155,9 +101156,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action77<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, mut v, _): (usize, alloc::vec::Vec<Expr>, usize),
     (_, e, _): (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
@@ -101174,9 +101175,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action78<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, mut v, _): (usize, alloc::vec::Vec<Expr>, usize),
     (_, e, _): (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
@@ -101193,9 +101194,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action79<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __lookbehind: &usize,
     __lookahead: &usize,
 ) -> alloc::vec::Vec<Expr>
@@ -101206,9 +101207,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action80<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, v, _): (usize, alloc::vec::Vec<Expr>, usize),
 ) -> alloc::vec::Vec<Expr>
 {
@@ -101218,11 +101219,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action81<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
 ) -> Expr
 {
     __0
@@ -101231,9 +101232,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action82<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> core::option::Option<Expr>
 {
@@ -101243,9 +101244,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action83<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __lookbehind: &usize,
     __lookahead: &usize,
 ) -> core::option::Option<Expr>
@@ -101256,9 +101257,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action84<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __lookbehind: &usize,
     __lookahead: &usize,
 ) -> alloc::vec::Vec<Expr>
@@ -101269,9 +101270,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action85<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, v, _): (usize, alloc::vec::Vec<Expr>, usize),
 ) -> alloc::vec::Vec<Expr>
 {
@@ -101281,11 +101282,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action86<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
-    (_, _, _): (usize, &'input str, usize),
+    (_, _, _): (usize, &'input str, usize),
 ) -> Expr
 {
     __0
@@ -101294,9 +101295,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action87<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> alloc::vec::Vec<Expr>
 {
@@ -101306,9 +101307,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action88<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, v, _): (usize, alloc::vec::Vec<Expr>, usize),
     (_, e, _): (usize, Expr, usize),
 ) -> alloc::vec::Vec<Expr>
@@ -101319,9 +101320,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action89<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, __0, _): (usize, Expr, usize),
 ) -> alloc::vec::Vec<Expr>
 {
@@ -101331,9 +101332,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action90<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     (_, v, _): (usize, alloc::vec::Vec<Expr>, usize),
     (_, e, _): (usize, Expr, usize),
 ) -> alloc::vec::Vec<Expr>
@@ -101344,11 +101345,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action91<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, Expr, usize),
-    __1: (usize, &'input str, usize),
+    __1: (usize, &'input str, usize),
 ) -> alloc::vec::Vec<Expr>
 {
     let __start0 = __0.0;
@@ -101368,12 +101369,12 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action92<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, Expr, usize),
-    __2: (usize, &'input str, usize),
+    __2: (usize, &'input str, usize),
 ) -> alloc::vec::Vec<Expr>
 {
     let __start0 = __1.0;
@@ -101394,9 +101395,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action93<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
 {
@@ -101418,9 +101419,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action94<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
@@ -101442,11 +101443,11 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action95<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, Expr, usize),
-    __1: (usize, &'input str, usize),
+    __1: (usize, &'input str, usize),
 ) -> alloc::vec::Vec<Expr>
 {
     let __start0 = __0.0;
@@ -101466,12 +101467,12 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action96<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, Expr, usize),
-    __2: (usize, &'input str, usize),
+    __2: (usize, &'input str, usize),
 ) -> alloc::vec::Vec<Expr>
 {
     let __start0 = __1.0;
@@ -101492,9 +101493,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action97<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
 {
@@ -101516,9 +101517,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action98<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, core::option::Option<Expr>, usize),
 ) -> Vec<Expr>
@@ -101540,9 +101541,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action99<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, Expr, usize),
 ) -> Vec<Expr>
 {
@@ -101562,9 +101563,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action100<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __lookbehind: &usize,
     __lookahead: &usize,
 ) -> Vec<Expr>
@@ -101586,9 +101587,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action101<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, Expr, usize),
 ) -> Vec<Expr>
@@ -101610,9 +101611,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action102<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
 ) -> Vec<Expr>
 {
@@ -101634,9 +101635,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action103<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, Expr, usize),
 ) -> Vec<Expr>
 {
@@ -101656,9 +101657,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action104<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __lookbehind: &usize,
     __lookahead: &usize,
 ) -> Vec<Expr>
@@ -101680,9 +101681,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action105<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
     __1: (usize, Expr, usize),
 ) -> Vec<Expr>
@@ -101704,9 +101705,9 @@
 #[allow(unused_variables)]
 #[allow(clippy::too_many_arguments)]
 fn __action106<
-    'input,
+    'input,
 >(
-    input: &'input str,
+    input: &'input str,
     __0: (usize, alloc::vec::Vec<Expr>, usize),
 ) -> Vec<Expr>
 {
@@ -101726,20 +101727,20 @@
 }
 #[allow(clippy::type_complexity)]
 
-pub trait __ToTriple<'input, >
+pub trait __ToTriple<'input, >
 {
-    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>;
+    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>;
 }
 
-impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize)
+impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize)
 {
-    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
+    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
         Ok(value)
     }
 }
-impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize), &'static str>
+impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize), &'static str>
 {
-    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
+    fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
         match value {
             Ok(v) => Ok(v),
             Err(error) => Err(__lalrpop_util::ParseError::User { error }),
diff --git a/doc/src/ayaka_script/lib.rs.html b/doc/src/ayaka_script/lib.rs.html
index e78d35a2..11684d0d 100644
--- a/doc/src/ayaka_script/lib.rs.html
+++ b/doc/src/ayaka_script/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -118,9 +119,9 @@
 #![warn(missing_docs)]
 #![deny(unsafe_code)]
 
-#[cfg(feature = "parser")]
+#[cfg(feature = "parser")]
 mod parser;
-#[cfg(feature = "parser")]
+#[cfg(feature = "parser")]
 pub use parser::*;
 
 #[doc(no_inline)]
diff --git a/doc/src/ayaka_script/parser.rs.html b/doc/src/ayaka_script/parser.rs.html
index 828fd9a3..42ceb863 100644
--- a/doc/src/ayaka_script/parser.rs.html
+++ b/doc/src/ayaka_script/parser.rs.html
@@ -1,4 +1,5 @@
-parser.rs - source
1
+parser.rs - source
+    
1
 2
 3
 4
@@ -138,7 +139,7 @@
     fn from_str(s: &str) -> Result<Self, Self::Err> {
         ProgramParser::new()
             .parse(s)
-            .map_err(|e| anyhow::anyhow!("{}", e))
+            .map_err(|e| anyhow::anyhow!("{}", e))
     }
 }
 
@@ -155,55 +156,55 @@
         assert_eq!(
             ProgramParser::new()
                 .parse(
-                    "foo(a);
-                    foo.bar(a, b)"
+                    "foo(a);
+                    foo.bar(a, b)"
                 )
                 .unwrap(),
             Program(vec![
-                Expr::Call(String::default(), "foo".into(), vec![var("a")]),
-                Expr::Call("foo".into(), "bar".into(), vec![var("a"), var("b")])
+                Expr::Call(String::default(), "foo".into(), vec![var("a")]),
+                Expr::Call("foo".into(), "bar".into(), vec![var("a"), var("b")])
             ])
         );
     }
 
     #[test]
     fn expr() {
-        assert_eq!(ExprParser::new().parse("a").unwrap(), var("a"));
+        assert_eq!(ExprParser::new().parse("a").unwrap(), var("a"));
         assert_eq!(
-            ExprParser::new().parse("!(a && b || c)").unwrap(),
+            ExprParser::new().parse("!(a && b || c)").unwrap(),
             Expr::Unary(
                 UnaryOp::Not,
                 Box::new(Expr::Binary(
                     Box::new(Expr::Binary(
-                        Box::new(var("a")),
+                        Box::new(var("a")),
                         BinaryOp::Logic(LogicBinaryOp::And),
-                        Box::new(var("b"))
+                        Box::new(var("b"))
                     )),
                     BinaryOp::Logic(LogicBinaryOp::Or),
-                    Box::new(var("c"))
+                    Box::new(var("c"))
                 ))
             )
         );
         assert_eq!(
-            ExprParser::new().parse("foo(a)").unwrap(),
-            Expr::Call(String::default(), "foo".into(), vec![var("a")])
+            ExprParser::new().parse("foo(a)").unwrap(),
+            Expr::Call(String::default(), "foo".into(), vec![var("a")])
         );
         assert_eq!(
-            ExprParser::new().parse("foo.bar(a, b)").unwrap(),
-            Expr::Call("foo".into(), "bar".into(), vec![var("a"), var("b")])
+            ExprParser::new().parse("foo.bar(a, b)").unwrap(),
+            Expr::Call("foo".into(), "bar".into(), vec![var("a"), var("b")])
         );
         assert_eq!(
-            ExprParser::new().parse("a + (b * (c & d))").unwrap(),
+            ExprParser::new().parse("a + (b * (c & d))").unwrap(),
             Expr::Binary(
-                Box::new(var("a")),
+                Box::new(var("a")),
                 BinaryOp::Val(ValBinaryOp::Add),
                 Box::new(Expr::Binary(
-                    Box::new(var("b")),
+                    Box::new(var("b")),
                     BinaryOp::Val(ValBinaryOp::Mul),
                     Box::new(Expr::Binary(
-                        Box::new(var("c")),
+                        Box::new(var("c")),
                         BinaryOp::Val(ValBinaryOp::And),
-                        Box::new(var("d"))
+                        Box::new(var("d"))
                     ))
                 ))
             )
@@ -212,32 +213,32 @@
 
     #[test]
     fn r#const() {
-        assert_eq!(ConstParser::new().parse("~").unwrap(), RawValue::Unit);
+        assert_eq!(ConstParser::new().parse("~").unwrap(), RawValue::Unit);
 
         assert_eq!(
-            ConstParser::new().parse("true").unwrap(),
+            ConstParser::new().parse("true").unwrap(),
             RawValue::Bool(true)
         );
         assert_eq!(
-            ConstParser::new().parse("false").unwrap(),
+            ConstParser::new().parse("false").unwrap(),
             RawValue::Bool(false)
         );
 
         assert_eq!(
-            ConstParser::new().parse("114514").unwrap(),
+            ConstParser::new().parse("114514").unwrap(),
             RawValue::Num(114514.into())
         );
 
         assert_eq!(
-            ConstParser::new().parse("\"Hello world!\"").unwrap(),
-            RawValue::Str("Hello world!".into())
+            ConstParser::new().parse("\"Hello world!\"").unwrap(),
+            RawValue::Str("Hello world!".into())
         );
     }
 
     #[test]
     fn r#ref() {
-        assert_eq!(RefParser::new().parse("a").unwrap(), Ref::Var("a".into()));
-        assert_eq!(RefParser::new().parse("$a").unwrap(), Ref::Ctx("a".into()));
+        assert_eq!(RefParser::new().parse("a").unwrap(), Ref::Var("a".into()));
+        assert_eq!(RefParser::new().parse("$a").unwrap(), Ref::Ctx("a".into()));
     }
 }
 
\ No newline at end of file diff --git a/doc/static.files/main-305769736d49e732.js b/doc/static.files/main-305769736d49e732.js new file mode 100644 index 00000000..b8b91afa --- /dev/null +++ b/doc/static.files/main-305769736d49e732.js @@ -0,0 +1,11 @@ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-sidebar.offsetLeft-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/doc/static.files/main-5f34af1a0ee6bacd.js b/doc/static.files/main-5f34af1a0ee6bacd.js deleted file mode 100644 index f8ae3ca7..00000000 --- a/doc/static.files/main-5f34af1a0ee6bacd.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.body,"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.body,"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(link.href===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/doc/static.files/noscript-5d8b3c7633ad77ba.css b/doc/static.files/noscript-5d8b3c7633ad77ba.css deleted file mode 100644 index 8c63ef06..00000000 --- a/doc/static.files/noscript-5d8b3c7633ad77ba.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);}} \ No newline at end of file diff --git a/doc/static.files/noscript-feafe1bb7466e4bd.css b/doc/static.files/noscript-feafe1bb7466e4bd.css new file mode 100644 index 00000000..7bbe07f1 --- /dev/null +++ b/doc/static.files/noscript-feafe1bb7466e4bd.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/doc/static.files/rustdoc-804b98a1284a310a.css b/doc/static.files/rustdoc-804b98a1284a310a.css new file mode 100644 index 00000000..7270f76d --- /dev/null +++ b/doc/static.files/rustdoc-804b98a1284a310a.css @@ -0,0 +1,18 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:100;}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:200;position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .rustdoc.src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;z-index:100;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:2;margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;}.hide-sidebar #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.hide-sidebar #sidebar-button{position:static;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;color:var(--main-color);}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#src-sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;border:1px solid;border-left:0;}.src-sidebar-expanded #src-sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{max-width:100vw;width:100vw;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}.sub-logo-container>img{height:35px;width:35px;margin-bottom:var(--nav-sub-mobile-padding);}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a,:root[data-theme="ayu"] #source-sidebar>.title{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/doc/static.files/rustdoc-9ee3a5e31a2afa3e.css b/doc/static.files/rustdoc-9ee3a5e31a2afa3e.css deleted file mode 100644 index 8749d0eb..00000000 --- a/doc/static.files/rustdoc-9ee3a5e31a2afa3e.css +++ /dev/null @@ -1,10 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.small-section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 200px;overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;z-index:1;}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:300px;}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.method .where,.fn .where,.where.fmt-newline{display:block;white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.small-section-header{display:block;position:relative;}.small-section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block a.current{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ - ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:2;margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ - \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{min-height:36px;display:flex;padding:3px;margin-bottom:5px;align-items:center;vertical-align:text-bottom;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji{font-size:1.25rem;margin-right:0.3rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#settings-menu>a,#help-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus{border-color:var(--settings-button-border-focus);}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;color:var(--main-color);}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#src-sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;border:1px solid;border-left:0;}.src-sidebar-expanded #src-sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#copy-path,#help-button{display:none;}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{max-width:100vw;width:100vw;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}.sub-logo-container>img{height:35px;width:35px;margin-bottom:var(--nav-sub-mobile-padding);}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a,:root[data-theme="ayu"] #source-sidebar>.title{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img{filter:invert(100);} \ No newline at end of file diff --git a/doc/static.files/search-2b6ce74ff89ae146.js b/doc/static.files/search-2b6ce74ff89ae146.js new file mode 100644 index 00000000..05459703 --- /dev/null +++ b/doc/static.files/search-2b6ce74ff89ae146.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let functionTypeFingerprint;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-]".indexOf(c)!==-1}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",normalizedPathLast:"never",generics:[],bindings:new Map(),typeFilter:"primitive",bindingName,}}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){bindings.set(gen.bindingName.name,[gen,...gen.bindingName.generics]);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb);if(passesUnification){return true}}return false});if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false});return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens){if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens)}return false}function checkIfInList(list,elem,whereClause,mgens){for(const entry of list){if(checkType(entry,elem,whereClause,mgens)){return true}}return false}function checkType(row,elem,whereClause,mgens){if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxEditDistance){continue pathiter}dist_total+=dist}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +${item.alias} - see \ +
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ +${item.displayPath}${name}\ +
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=[];bindings=new Map()}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=new Map()}}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,bindings,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:[],bindings:new Map(),};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length}}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/doc/static.files/search-8fbf244ebcf71464.js b/doc/static.files/search-8fbf244ebcf71464.js deleted file mode 100644 index 168023b4..00000000 --- a/doc/static.files/search-8fbf244ebcf71464.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias","generic",];const longItemTypes=["module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","primitive type","assoc type","constant","assoc const","union","foreign type","keyword","existential type","attribute macro","derive macro","trait alias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-]".indexOf(c)!==-1}function isStopCharacter(c){return isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","}function isPathSeparator(c){return c===":"||isWhitespace(c)}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(!isWhitespace(c)){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",generics:[],typeFilter:"primitive",}}if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(path.includes("::::")){throw["Unexpected ","::::"]}else if(path.includes(" ::")){throw["Unexpected "," ::"]}else if(path.includes(":: ")){throw["Unexpected ",":: "]}const pathSegments=path.split(/::|\s+/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast:pathSegments[pathSegments.length-1],generics:generics,typeFilter,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",","," or ",endChar,...extra,", found ",c,]}throw["Expected ",",",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(isWhitespace(c)){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}}userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of result_list){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(result_list)}function checkGenerics(fnType,queryElem,whereClause,mgensInout){return unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgensInout,mgens=>{if(mgensInout){for(const[fid,qid]of mgens.entries()){mgensInout.set(fid,qid)}}return true})}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){let mgens=new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;let fl=fnTypesIn.length;let fnTypes=fnTypesIn.slice();const backtracking=[];let i=0;let j=0;const backtrack=()=>{while(backtracking.length!==0){const{fnTypesScratch,mgensScratch,queryElemsOffset,fnTypesOffset,unbox,}=backtracking.pop();mgens=new Map(mgensScratch);const fnType=fnTypesScratch[fnTypesOffset];const queryElem=queryElems[queryElemsOffset];if(unbox){if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}mgens.set(fnType.id,0)}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;fnTypes=fnTypesScratch.toSpliced(fnTypesOffset,1,...generics);fl=fnTypes.length;i=queryElemsOffset-1}else{if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}mgens.set(fnType.id,queryElem.id)}fnTypes=fnTypesScratch.slice();fl=fnTypes.length;const tmp=fnTypes[queryElemsOffset];fnTypes[queryElemsOffset]=fnTypes[fnTypesOffset];fnTypes[fnTypesOffset]=tmp;i=queryElemsOffset}return true}return false};for(i=0;i!==ql;++i){const queryElem=queryElems[i];const matchCandidates=[];let fnTypesScratch=null;let mgensScratch=null;for(j=i;j!==fl;++j){const fnType=fnTypes[j];if(unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgens,mgensScratch=>{matchCandidates.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:false,});return false})}if(unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}if(!mgensScratch){mgensScratch=new Map(mgens)}backtracking.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:true,})}}if(matchCandidates.length===0){if(backtrack()){continue}else{return false}}const{fnTypesOffset:candidate,mgensScratch:mgensNew}=matchCandidates.pop();if(fnTypes[candidate].id<0&&queryElems[i].id<0){mgens.set(fnTypes[candidate].id,queryElems[i].id)}for(const[fid,qid]of mgensNew){mgens.set(fid,qid)}const tmp=fnTypes[candidate];fnTypes[candidate]=fnTypes[i];fnTypes[i]=tmp;for(const otherCandidate of matchCandidates){backtracking.push(otherCandidate)}while(i===(ql-1)&&solutionCb&&!solutionCb(mgens)){if(!backtrack()){return false}}}return true}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgens.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id){return false}if(fnType.generics.length===0&&queryElem.generics.length!==0){return false}const queryElemPathLength=queryElem.pathWithoutLast.length;if(queryElemPathLength>0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i=0){if(!whereClause){return false}if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause)}else if(fnType.generics&&fnType.generics.length>0){return checkIfInList(fnType.generics,queryElem,whereClause)}return false}function checkIfInList(list,elem,whereClause){for(const entry of list){if(checkType(entry,elem,whereClause)){return true}}return false}function checkType(row,elem,whereClause){if(row.id===null){return row.generics.length>0?checkIfInList(row.generics,elem,whereClause):false}if(row.id<0&&elem.id>=0){const gid=(-row.id)-1;return checkIfInList(whereClause[gid],elem,whereClause)}if(row.id<0&&elem.id<0){return true}const matchesExact=row.id===elem.id;const matchesArrayOrSlice=elem.id===typeNameIdOfArrayOrSlice&&(row.id===typeNameIdOfSlice||row.id===typeNameIdOfArray);if((matchesExact||matchesArrayOrSlice)&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem,whereClause,new Map())}return true}return checkIfInList(row.generics,elem,whereClause)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return maxEditDistance+1}for(let i=0;ilength){break}let dist_total=0;let aborted=false;for(let x=0;xmaxEditDistance){aborted=true;break}dist_total+=dist}if(!aborted){ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){const inBounds=dist<=maxEditDistance||index!==-1;if(dist===0||(!parsedQuery.literalSearch&&inBounds)){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let index=-1,path_dist=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);if(in_args){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(returned){addIntoResults(results_returned,fullId,pos,-1,0,0,maxEditDistance)}if(!typePassesFilter(elem.typeFilter,row.ty)){return}const row_index=row.normalizedName.indexOf(elem.pathLast);const word_index=searchWord.indexOf(elem.pathLast);if(row_index===-1){index=word_index}else if(word_index===-1){index=row_index}else if(word_index1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(searchWord,elem.pathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}addIntoResults(results,row.id,pos,0,0,0,Number.MAX_VALUE)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem){if(typeNameIdMap.has(elem.pathLast)){elem.id=typeNameIdMap.get(elem.pathLast)}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.pathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}}for(const elem of parsedQuery.elems){convertNameToId(elem)}for(const elem of parsedQuery.returned){convertNameToId(elem)}if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||editDistance(name,key,maxEditDistance)<=maxEditDistance)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";length+=1;const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ -${item.alias} - see \ -
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ -${item.displayPath}${name}\ -
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(e,forced){if(e){e.preventDefault()}const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name),ty:item.ty,path:item.path,generics,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file diff --git a/doc/static.files/settings-4313503d2e1961c2.js b/doc/static.files/settings-4313503d2e1961c2.js new file mode 100644 index 00000000..ab425fe4 --- /dev/null +++ b/doc/static.files/settings-4313503d2e1961c2.js @@ -0,0 +1,17 @@ +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break;case"hide-sidebar":if(value===true){addClass(document.documentElement,"hide-sidebar")}else{removeClass(document.documentElement,"hide-sidebar")}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ +
+
${setting_name}
+
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ + `});output+=`\ +
+
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ +
\ + \ +
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Hide persistent navigation bar","js_name":"hide-sidebar","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked}})}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/doc/static.files/settings-74424d7eec62a23e.js b/doc/static.files/settings-74424d7eec62a23e.js deleted file mode 100644 index 3014f75c..00000000 --- a/doc/static.files/settings-74424d7eec62a23e.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ -
-
${setting_name}
-
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ - `});output+=`\ -
-
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ -
\ - \ -
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display=""}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(elemIsInParent(event.target,settingsMenu)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/doc/static.files/src-script-3280b574d94e47b4.js b/doc/static.files/src-script-3280b574d94e47b4.js deleted file mode 100644 index 9ea88921..00000000 --- a/doc/static.files/src-script-3280b574d94e47b4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth"){addClass(document.documentElement,"src-sidebar-expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{removeClass(document.documentElement,"src-sidebar-expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="src-sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(srcIndex).forEach(key=>{srcIndex[key][NAME_OFFSET]=key;hasFoundFile=createDirEntry(srcIndex[key],sidebar,"",hasFoundFile)});container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}const lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSrcLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",()=>{const match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSrcLines(match)}});onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/doc/static.files/src-script-39ed315d46fb705f.js b/doc/static.files/src-script-39ed315d46fb705f.js new file mode 100644 index 00000000..ef74f361 --- /dev/null +++ b/doc/static.files/src-script-39ed315d46fb705f.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth{removeClass(document.documentElement,"src-sidebar-expanded");getToggleLabel().innerText=">";updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");getToggleLabel().innerText="<";updateLocalStorage("source-sidebar-show","true")};function toggleSidebar(){const child=this.parentNode.children[0];if(child.innerText===">"){window.rustdocShowSourceSidebar()}else{window.rustdocCloseSourceSidebar()}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="src-sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile)}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",highlightSrcLines);onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/doc/static.files/storage-f2adc0d6ca4d09fb.js b/doc/static.files/storage-f2adc0d6ca4d09fb.js new file mode 100644 index 00000000..17233608 --- /dev/null +++ b/doc/static.files/storage-f2adc0d6ca4d09fb.js @@ -0,0 +1 @@ +"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/doc/static.files/storage-fec3eaa3851e447d.js b/doc/static.files/storage-fec3eaa3851e447d.js deleted file mode 100644 index a687118f..00000000 --- a/doc/static.files/storage-fec3eaa3851e447d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func,reversed){if(arr&&arr.length>0){if(reversed){for(let i=arr.length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(const elem of arr){if(func(elem)){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0)}}) \ No newline at end of file diff --git a/doc/implementors/ayaka_plugin/trait.Linker.js b/doc/trait.impl/ayaka_plugin/trait.Linker.js similarity index 68% rename from doc/implementors/ayaka_plugin/trait.Linker.js rename to doc/trait.impl/ayaka_plugin/trait.Linker.js index 85f8c93e..6fed678a 100644 --- a/doc/implementors/ayaka_plugin/trait.Linker.js +++ b/doc/trait.impl/ayaka_plugin/trait.Linker.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"ayaka_plugin_wasmer":[["impl Linker<WasmerModule> for WasmerLinker"]], +"ayaka_plugin_wasmer":[["impl Linker<WasmerModule> for WasmerLinker"]], "ayaka_plugin_wasmi":[["impl Linker<WasmiModule> for WasmiLinker"]], "ayaka_plugin_wasmtime":[["impl Linker<WasmtimeModule> for WasmtimeLinker"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/ayaka_plugin/trait.LinkerHandle.js b/doc/trait.impl/ayaka_plugin/trait.LinkerHandle.js similarity index 68% rename from doc/implementors/ayaka_plugin/trait.LinkerHandle.js rename to doc/trait.impl/ayaka_plugin/trait.LinkerHandle.js index e17a8abe..51a49dc7 100644 --- a/doc/implementors/ayaka_plugin/trait.LinkerHandle.js +++ b/doc/trait.impl/ayaka_plugin/trait.LinkerHandle.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"ayaka_plugin_wasmer":[["impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>"]], +"ayaka_plugin_wasmer":[["impl<'a> LinkerHandle<'a, WasmerModule> for WasmerLinkerHandle<'a>"]], "ayaka_plugin_wasmi":[["impl<'a> LinkerHandle<'a, WasmiModule> for WasmiLinkerHandle<'a>"]], "ayaka_plugin_wasmtime":[["impl<'a> LinkerHandle<'a, WasmtimeModule> for WasmtimeLinkerHandle<'a>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/ayaka_plugin/trait.RawModule.js b/doc/trait.impl/ayaka_plugin/trait.RawModule.js similarity index 69% rename from doc/implementors/ayaka_plugin/trait.RawModule.js rename to doc/trait.impl/ayaka_plugin/trait.RawModule.js index 443a8d07..7a9cb276 100644 --- a/doc/implementors/ayaka_plugin/trait.RawModule.js +++ b/doc/trait.impl/ayaka_plugin/trait.RawModule.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"ayaka_plugin_wasmer":[["impl RawModule for WasmerModule"]], +"ayaka_plugin_wasmer":[["impl RawModule for WasmerModule"]], "ayaka_plugin_wasmi":[["impl RawModule for WasmiModule"]], "ayaka_plugin_wasmtime":[["impl RawModule for WasmtimeModule"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/core/clone/trait.Clone.js b/doc/trait.impl/core/clone/trait.Clone.js new file mode 100644 index 00000000..4e0c9792 --- /dev/null +++ b/doc/trait.impl/core/clone/trait.Clone.js @@ -0,0 +1,8 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl Clone for FileSeekFrom"],["impl Clone for PluginType"],["impl Clone for ActionText"],["impl Clone for ActionSubText"],["impl Clone for Action"],["impl Clone for RawContext"],["impl Clone for FileType"],["impl Clone for Switch"],["impl Clone for FrontendType"]], +"ayaka_model":[["impl Clone for GlobalRecord"],["impl Clone for Settings"],["impl Clone for ActionRecord"],["impl Clone for OpenGameStatus"]], +"ayaka_plugin_wasmer":[["impl Clone for WasmerFunction"]], +"ayaka_primitive":[["impl Clone for ValueType"],["impl Clone for SubText"],["impl Clone for RawValue"],["impl Clone for Line"],["impl Clone for Text"]], +"ayaka_runtime":[["impl Clone for LoadStatus"],["impl Clone for OpenStatus"]], +"ayaka_script":[["impl Clone for BinaryOp"],["impl Clone for Ref"],["impl Clone for Expr"],["impl Clone for Program"],["impl Clone for UnaryOp"],["impl Clone for LogicBinaryOp"],["impl Clone for ValBinaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/core/cmp/trait.Eq.js b/doc/trait.impl/core/cmp/trait.Eq.js new file mode 100644 index 00000000..6c41edb6 --- /dev/null +++ b/doc/trait.impl/core/cmp/trait.Eq.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl Eq for FileSeekFrom"],["impl Eq for Switch"],["impl Eq for FileType"],["impl Eq for ActionSubText"]], +"ayaka_model":[["impl Eq for OpenGameStatus"]], +"ayaka_primitive":[["impl Eq for RawValue"],["impl Eq for SubText"],["impl Eq for ValueType"],["impl Eq for Line"],["impl Eq for Text"]], +"ayaka_runtime":[["impl Eq for OpenStatus"]], +"ayaka_script":[["impl Eq for ValBinaryOp"],["impl Eq for Expr"],["impl Eq for LogicBinaryOp"],["impl Eq for BinaryOp"],["impl Eq for Program"],["impl Eq for Ref"],["impl Eq for UnaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/cmp/trait.Ord.js b/doc/trait.impl/core/cmp/trait.Ord.js similarity index 100% rename from doc/implementors/core/cmp/trait.Ord.js rename to doc/trait.impl/core/cmp/trait.Ord.js diff --git a/doc/trait.impl/core/cmp/trait.PartialEq.js b/doc/trait.impl/core/cmp/trait.PartialEq.js new file mode 100644 index 00000000..8d0adf20 --- /dev/null +++ b/doc/trait.impl/core/cmp/trait.PartialEq.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl PartialEq for FileSeekFrom"],["impl PartialEq for ActionText"],["impl PartialEq for Switch"],["impl PartialEq for Action"],["impl PartialEq for FileType"],["impl PartialEq for ActionSubText"]], +"ayaka_model":[["impl PartialEq for OpenGameStatus"]], +"ayaka_primitive":[["impl PartialEq for Line"],["impl PartialEq for Text"],["impl PartialEq for ValueType"],["impl PartialEq for RawValue"],["impl PartialEq for SubText"]], +"ayaka_runtime":[["impl PartialEq for OpenStatus"]], +"ayaka_script":[["impl PartialEq for Ref"],["impl PartialEq for UnaryOp"],["impl PartialEq for LogicBinaryOp"],["impl PartialEq for Program"],["impl PartialEq for Expr"],["impl PartialEq for ValBinaryOp"],["impl PartialEq for BinaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/core/cmp/trait.PartialOrd.js b/doc/trait.impl/core/cmp/trait.PartialOrd.js new file mode 100644 index 00000000..3d2a6ea9 --- /dev/null +++ b/doc/trait.impl/core/cmp/trait.PartialOrd.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"ayaka_primitive":[["impl PartialOrd for RawValue"],["impl PartialOrd for ValueType"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/convert/trait.From.js b/doc/trait.impl/core/convert/trait.From.js similarity index 54% rename from doc/implementors/core/convert/trait.From.js rename to doc/trait.impl/core/convert/trait.From.js index 63a2f160..e5f28ad0 100644 --- a/doc/implementors/core/convert/trait.From.js +++ b/doc/trait.impl/core/convert/trait.From.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"ayaka_bindings_types":[["impl From<SeekFrom> for FileSeekFrom"],["impl From<FileMetadata> for VfsMetadata"],["impl From<FileType> for VfsFileType"],["impl From<VfsFileType> for FileType"],["impl From<VfsMetadata> for FileMetadata"],["impl From<FileSeekFrom> for SeekFrom"]], +"ayaka_bindings_types":[["impl From<VfsFileType> for FileType"],["impl From<FileType> for VfsFileType"],["impl From<FileMetadata> for VfsMetadata"],["impl From<SeekFrom> for FileSeekFrom"],["impl From<VfsMetadata> for FileMetadata"],["impl From<FileSeekFrom> for SeekFrom"]], "ayaka_runtime":[["impl From<LoadStatus> for OpenStatus"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/convert/trait.TryFrom.js b/doc/trait.impl/core/convert/trait.TryFrom.js similarity index 100% rename from doc/implementors/core/convert/trait.TryFrom.js rename to doc/trait.impl/core/convert/trait.TryFrom.js diff --git a/doc/implementors/core/default/trait.Default.js b/doc/trait.impl/core/default/trait.Default.js similarity index 63% rename from doc/implementors/core/default/trait.Default.js rename to doc/trait.impl/core/default/trait.Default.js index be02682a..75ce2f0d 100644 --- a/doc/implementors/core/default/trait.Default.js +++ b/doc/trait.impl/core/default/trait.Default.js @@ -1,6 +1,6 @@ (function() {var implementors = { "ayaka_bindings":[["impl Default for HostFS"]], -"ayaka_bindings_types":[["impl Default for RawContext"],["impl Default for TextProcessResult"],["impl Default for ActionProcessResult"],["impl Default for Action"],["impl Default for ActionText"],["impl Default for Switch"],["impl Default for PluginType"],["impl Default for LineProcessResult"]], +"ayaka_bindings_types":[["impl Default for TextProcessResult"],["impl Default for Switch"],["impl Default for ActionText"],["impl Default for RawContext"],["impl Default for ActionProcessResult"],["impl Default for PluginType"],["impl Default for Action"],["impl Default for LineProcessResult"]], "ayaka_model":[["impl Default for ActionRecord"],["impl Default for Settings"],["impl Default for GlobalRecord"]], "ayaka_primitive":[["impl Default for Text"],["impl Default for RawValue"]], "ayaka_runtime":[["impl Default for PluginConfig"],["impl Default for GameConfig"]], diff --git a/doc/trait.impl/core/fmt/trait.Debug.js b/doc/trait.impl/core/fmt/trait.Debug.js new file mode 100644 index 00000000..ceb26702 --- /dev/null +++ b/doc/trait.impl/core/fmt/trait.Debug.js @@ -0,0 +1,8 @@ +(function() {var implementors = { +"ayaka_bindings":[["impl Debug for HostFS"]], +"ayaka_bindings_types":[["impl Debug for Action"],["impl Debug for ActionText"],["impl Debug for Switch"],["impl Debug for TextProcessContext"],["impl Debug for FileType"],["impl Debug for FileMetadata"],["impl Debug for ActionProcessResult"],["impl Debug for RawContext"],["impl Debug for GameProcessResult"],["impl Debug for GameProcessContext"],["impl Debug for PluginType"],["impl Debug for TextProcessResult"],["impl Debug for ActionProcessContext"],["impl Debug for FrontendType"],["impl Debug for ActionSubText"],["impl Debug for LineProcessResult"],["impl Debug for LineProcessContext"],["impl Debug for FileSeekFrom"]], +"ayaka_model":[["impl Debug for Settings"],["impl Debug for ActionRecord"],["impl Debug for OpenGameStatus"],["impl Debug for GlobalRecord"]], +"ayaka_primitive":[["impl Debug for RawValue"],["impl Debug for Line"],["impl Debug for SubText"],["impl Debug for Text"],["impl Debug for ValueType"]], +"ayaka_runtime":[["impl Debug for PluginConfig"],["impl Debug for GameConfig"],["impl Debug for OpenStatus"],["impl Debug for LoadStatus"],["impl Debug for Paragraph"]], +"ayaka_script":[["impl Debug for LogicBinaryOp"],["impl Debug for Ref"],["impl Debug for Program"],["impl Debug for BinaryOp"],["impl Debug for ValBinaryOp"],["impl Debug for Expr"],["impl Debug for UnaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/fmt/trait.Display.js b/doc/trait.impl/core/fmt/trait.Display.js similarity index 100% rename from doc/implementors/core/fmt/trait.Display.js rename to doc/trait.impl/core/fmt/trait.Display.js diff --git a/doc/implementors/core/hash/trait.Hash.js b/doc/trait.impl/core/hash/trait.Hash.js similarity index 100% rename from doc/implementors/core/hash/trait.Hash.js rename to doc/trait.impl/core/hash/trait.Hash.js diff --git a/doc/implementors/core/marker/trait.Copy.js b/doc/trait.impl/core/marker/trait.Copy.js similarity index 63% rename from doc/implementors/core/marker/trait.Copy.js rename to doc/trait.impl/core/marker/trait.Copy.js index 02158ab5..a3c4e105 100644 --- a/doc/implementors/core/marker/trait.Copy.js +++ b/doc/trait.impl/core/marker/trait.Copy.js @@ -1,5 +1,5 @@ (function() {var implementors = { "ayaka_bindings_types":[["impl Copy for FileSeekFrom"],["impl Copy for FileType"],["impl Copy for FrontendType"]], "ayaka_primitive":[["impl Copy for ValueType"]], -"ayaka_script":[["impl Copy for UnaryOp"],["impl Copy for ValBinaryOp"],["impl Copy for LogicBinaryOp"],["impl Copy for BinaryOp"]] +"ayaka_script":[["impl Copy for LogicBinaryOp"],["impl Copy for BinaryOp"],["impl Copy for ValBinaryOp"],["impl Copy for UnaryOp"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.Freeze.js b/doc/trait.impl/core/marker/trait.Freeze.js similarity index 88% rename from doc/implementors/core/marker/trait.Freeze.js rename to doc/trait.impl/core/marker/trait.Freeze.js index 8e3a5fae..b7c789b9 100644 --- a/doc/implementors/core/marker/trait.Freeze.js +++ b/doc/trait.impl/core/marker/trait.Freeze.js @@ -1,12 +1,12 @@ (function() {var implementors = { "ayaka_bindings":[["impl Freeze for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl Freeze for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl Freeze for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl Freeze for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl Freeze for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl Freeze for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl Freeze for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl Freeze for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl Freeze for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl Freeze for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl Freeze for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl Freeze for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl Freeze for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl Freeze for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl Freeze for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl Freeze for Action",1,["ayaka_bindings_types::config::Action"]],["impl Freeze for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl Freeze for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl Freeze for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl Freeze for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], -"ayaka_model":[["impl Freeze for Settings",1,["ayaka_model::settings::Settings"]],["impl Freeze for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Freeze for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Freeze for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Freeze for GameViewModel<S, M>where\n S: Freeze,",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> Freeze for PluginModule<M>where\n M: Freeze,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_model":[["impl Freeze for Settings",1,["ayaka_model::settings::Settings"]],["impl Freeze for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Freeze for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Freeze for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Freeze for GameViewModel<S, M>
where\n S: Freeze,
",1,["ayaka_model::view_model::GameViewModel"]]], +"ayaka_plugin":[["impl<M> Freeze for PluginModule<M>
where\n M: Freeze,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl Freeze for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl Freeze for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl Freeze for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> Freeze for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl Freeze for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl Freeze for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> Freeze for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl Freeze for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl Freeze for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> Freeze for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl Freeze for Line",1,["ayaka_primitive::line::Line"]],["impl Freeze for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl Freeze for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl Freeze for Text",1,["ayaka_primitive::text::Text"]],["impl Freeze for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl Freeze for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Freeze for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Freeze for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Freeze for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Freeze for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Freeze for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Freeze for ContextBuilder<M>where\n <M as RawModule>::Linker: Freeze,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Freeze for ContextBuilderWithPaths<'a, M>where\n <M as RawModule>::Linker: Freeze,",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Freeze for Module<M>where\n M: Freeze,",1,["ayaka_runtime::plugin::Module"]],["impl<M> Freeze for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Freeze for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl Freeze for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Freeze for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Freeze for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Freeze for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Freeze for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Freeze for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Freeze for ContextBuilder<M>
where\n <M as RawModule>::Linker: Freeze,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Freeze for ContextBuilderWithPaths<'a, M>
where\n <M as RawModule>::Linker: Freeze,
",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Freeze for Module<M>
where\n M: Freeze,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> Freeze for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Freeze for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl Freeze for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl Freeze for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl Freeze for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl Freeze for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl Freeze for Program",1,["ayaka_script::Program"]],["impl Freeze for Expr",1,["ayaka_script::Expr"]],["impl Freeze for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl Freeze for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl Freeze for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl Freeze for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl Freeze for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.Send.js b/doc/trait.impl/core/marker/trait.Send.js similarity index 88% rename from doc/implementors/core/marker/trait.Send.js rename to doc/trait.impl/core/marker/trait.Send.js index d468bc72..3d372e63 100644 --- a/doc/implementors/core/marker/trait.Send.js +++ b/doc/trait.impl/core/marker/trait.Send.js @@ -1,12 +1,12 @@ (function() {var implementors = { "ayaka_bindings":[["impl Send for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl Send for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl Send for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl Send for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl Send for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl Send for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl Send for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl Send for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl Send for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl Send for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl Send for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl Send for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl Send for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl Send for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl Send for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl Send for Action",1,["ayaka_bindings_types::config::Action"]],["impl Send for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl Send for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl Send for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl Send for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], -"ayaka_model":[["impl Send for Settings",1,["ayaka_model::settings::Settings"]],["impl Send for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Send for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Send for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Send for GameViewModel<S, M>where\n S: Send,",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> Send for PluginModule<M>where\n M: Send,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_model":[["impl Send for Settings",1,["ayaka_model::settings::Settings"]],["impl Send for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Send for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Send for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Send for GameViewModel<S, M>
where\n S: Send,
",1,["ayaka_model::view_model::GameViewModel"]]], +"ayaka_plugin":[["impl<M> Send for PluginModule<M>
where\n M: Send,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl Send for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl Send for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl Send for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> !Send for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl Send for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl Send for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> Send for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl Send for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl Send for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> Send for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl Send for Line",1,["ayaka_primitive::line::Line"]],["impl Send for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl Send for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl Send for Text",1,["ayaka_primitive::text::Text"]],["impl Send for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl Send for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Send for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Send for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Send for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Send for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Send for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Send for ContextBuilder<M>where\n <M as RawModule>::Linker: Send,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Send for ContextBuilderWithPaths<'a, M>where\n <M as RawModule>::Linker: Send,",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Send for Module<M>where\n M: Send,",1,["ayaka_runtime::plugin::Module"]],["impl<M> Send for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Send for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl Send for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Send for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Send for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Send for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Send for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Send for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Send for ContextBuilder<M>
where\n <M as RawModule>::Linker: Send,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Send for ContextBuilderWithPaths<'a, M>
where\n <M as RawModule>::Linker: Send,
",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Send for Module<M>
where\n M: Send,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> Send for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Send for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl Send for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl Send for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl Send for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl Send for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl Send for Program",1,["ayaka_script::Program"]],["impl Send for Expr",1,["ayaka_script::Expr"]],["impl Send for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl Send for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl Send for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl Send for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl Send for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/core/marker/trait.StructuralEq.js b/doc/trait.impl/core/marker/trait.StructuralEq.js new file mode 100644 index 00000000..a304a011 --- /dev/null +++ b/doc/trait.impl/core/marker/trait.StructuralEq.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl StructuralEq for FileType"],["impl StructuralEq for FileSeekFrom"],["impl StructuralEq for Switch"],["impl StructuralEq for ActionSubText"]], +"ayaka_model":[["impl StructuralEq for OpenGameStatus"]], +"ayaka_primitive":[["impl StructuralEq for RawValue"],["impl StructuralEq for SubText"],["impl StructuralEq for Text"],["impl StructuralEq for Line"],["impl StructuralEq for ValueType"]], +"ayaka_runtime":[["impl StructuralEq for OpenStatus"]], +"ayaka_script":[["impl StructuralEq for Expr"],["impl StructuralEq for LogicBinaryOp"],["impl StructuralEq for Ref"],["impl StructuralEq for Program"],["impl StructuralEq for BinaryOp"],["impl StructuralEq for ValBinaryOp"],["impl StructuralEq for UnaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/core/marker/trait.StructuralPartialEq.js b/doc/trait.impl/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 00000000..82655d13 --- /dev/null +++ b/doc/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl StructuralPartialEq for Action"],["impl StructuralPartialEq for ActionSubText"],["impl StructuralPartialEq for FileType"],["impl StructuralPartialEq for Switch"],["impl StructuralPartialEq for FileSeekFrom"]], +"ayaka_model":[["impl StructuralPartialEq for OpenGameStatus"]], +"ayaka_primitive":[["impl StructuralPartialEq for Line"],["impl StructuralPartialEq for Text"],["impl StructuralPartialEq for RawValue"],["impl StructuralPartialEq for ValueType"],["impl StructuralPartialEq for SubText"]], +"ayaka_runtime":[["impl StructuralPartialEq for OpenStatus"]], +"ayaka_script":[["impl StructuralPartialEq for UnaryOp"],["impl StructuralPartialEq for Ref"],["impl StructuralPartialEq for BinaryOp"],["impl StructuralPartialEq for LogicBinaryOp"],["impl StructuralPartialEq for Expr"],["impl StructuralPartialEq for ValBinaryOp"],["impl StructuralPartialEq for Program"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.Sync.js b/doc/trait.impl/core/marker/trait.Sync.js similarity index 88% rename from doc/implementors/core/marker/trait.Sync.js rename to doc/trait.impl/core/marker/trait.Sync.js index 33515c7e..0ac8be1c 100644 --- a/doc/implementors/core/marker/trait.Sync.js +++ b/doc/trait.impl/core/marker/trait.Sync.js @@ -1,12 +1,12 @@ (function() {var implementors = { "ayaka_bindings":[["impl Sync for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl Sync for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl Sync for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl Sync for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl Sync for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl Sync for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl Sync for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl Sync for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl Sync for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl Sync for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl Sync for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl Sync for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl Sync for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl Sync for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl Sync for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl Sync for Action",1,["ayaka_bindings_types::config::Action"]],["impl Sync for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl Sync for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl Sync for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl Sync for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], -"ayaka_model":[["impl Sync for Settings",1,["ayaka_model::settings::Settings"]],["impl Sync for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Sync for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Sync for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Sync for GameViewModel<S, M>where\n S: Sync,",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> Sync for PluginModule<M>where\n M: Sync,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_model":[["impl Sync for Settings",1,["ayaka_model::settings::Settings"]],["impl Sync for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Sync for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Sync for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Sync for GameViewModel<S, M>
where\n S: Sync,
",1,["ayaka_model::view_model::GameViewModel"]]], +"ayaka_plugin":[["impl<M> Sync for PluginModule<M>
where\n M: Sync,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl Sync for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl Sync for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl Sync for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> !Sync for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl Sync for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl Sync for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> Sync for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl Sync for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl Sync for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> Sync for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl Sync for Line",1,["ayaka_primitive::line::Line"]],["impl Sync for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl Sync for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl Sync for Text",1,["ayaka_primitive::text::Text"]],["impl Sync for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl Sync for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Sync for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Sync for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Sync for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Sync for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Sync for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Sync for ContextBuilder<M>where\n <M as RawModule>::Linker: Sync,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Sync for ContextBuilderWithPaths<'a, M>where\n <M as RawModule>::Linker: Sync,",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Sync for Module<M>where\n M: Sync,",1,["ayaka_runtime::plugin::Module"]],["impl<M> Sync for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Sync for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl Sync for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Sync for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Sync for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Sync for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Sync for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Sync for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Sync for ContextBuilder<M>
where\n <M as RawModule>::Linker: Sync,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Sync for ContextBuilderWithPaths<'a, M>
where\n <M as RawModule>::Linker: Sync,
",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Sync for Module<M>
where\n M: Sync,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> Sync for Runtime<M>",1,["ayaka_runtime::plugin::Runtime"]],["impl Sync for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl Sync for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl Sync for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl Sync for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl Sync for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl Sync for Program",1,["ayaka_script::Program"]],["impl Sync for Expr",1,["ayaka_script::Expr"]],["impl Sync for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl Sync for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl Sync for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl Sync for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl Sync for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/marker/trait.Unpin.js b/doc/trait.impl/core/marker/trait.Unpin.js similarity index 87% rename from doc/implementors/core/marker/trait.Unpin.js rename to doc/trait.impl/core/marker/trait.Unpin.js index 2d4e106e..ca495973 100644 --- a/doc/implementors/core/marker/trait.Unpin.js +++ b/doc/trait.impl/core/marker/trait.Unpin.js @@ -1,12 +1,12 @@ (function() {var implementors = { "ayaka_bindings":[["impl Unpin for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl Unpin for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl Unpin for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl Unpin for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl Unpin for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl Unpin for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl Unpin for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl Unpin for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl Unpin for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl Unpin for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl Unpin for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl Unpin for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl Unpin for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl Unpin for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl Unpin for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl Unpin for Action",1,["ayaka_bindings_types::config::Action"]],["impl Unpin for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl Unpin for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl Unpin for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl Unpin for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], -"ayaka_model":[["impl Unpin for Settings",1,["ayaka_model::settings::Settings"]],["impl Unpin for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Unpin for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Unpin for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Unpin for GameViewModel<S, M>where\n S: Unpin,",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> Unpin for PluginModule<M>where\n M: Unpin,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_model":[["impl Unpin for Settings",1,["ayaka_model::settings::Settings"]],["impl Unpin for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl Unpin for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl Unpin for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> Unpin for GameViewModel<S, M>
where\n S: Unpin,
",1,["ayaka_model::view_model::GameViewModel"]]], +"ayaka_plugin":[["impl<M> Unpin for PluginModule<M>
where\n M: Unpin,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl Unpin for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl Unpin for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl Unpin for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> Unpin for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl Unpin for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl Unpin for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> Unpin for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl Unpin for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl Unpin for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> Unpin for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl Unpin for Line",1,["ayaka_primitive::line::Line"]],["impl Unpin for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl Unpin for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl Unpin for Text",1,["ayaka_primitive::text::Text"]],["impl Unpin for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl Unpin for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Unpin for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Unpin for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Unpin for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Unpin for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Unpin for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Unpin for ContextBuilder<M>where\n <M as RawModule>::Linker: Unpin,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Unpin for ContextBuilderWithPaths<'a, M>where\n <M as RawModule>::Linker: Unpin,",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Unpin for Module<M>where\n M: Unpin,",1,["ayaka_runtime::plugin::Module"]],["impl<M> Unpin for Runtime<M>where\n M: Unpin,",1,["ayaka_runtime::plugin::Runtime"]],["impl Unpin for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl Unpin for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl Unpin for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl Unpin for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl Unpin for Game",1,["ayaka_runtime::config::Game"]],["impl<M> Unpin for Context<M>",1,["ayaka_runtime::context::Context"]],["impl Unpin for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> Unpin for ContextBuilder<M>
where\n <M as RawModule>::Linker: Unpin,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> Unpin for ContextBuilderWithPaths<'a, M>
where\n <M as RawModule>::Linker: Unpin,
",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> Unpin for Module<M>
where\n M: Unpin,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> Unpin for Runtime<M>
where\n M: Unpin,
",1,["ayaka_runtime::plugin::Runtime"]],["impl Unpin for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl Unpin for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl Unpin for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl Unpin for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl Unpin for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl Unpin for Program",1,["ayaka_script::Program"]],["impl Unpin for Expr",1,["ayaka_script::Expr"]],["impl Unpin for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl Unpin for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl Unpin for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl Unpin for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl Unpin for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/doc/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js similarity index 89% rename from doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js rename to doc/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 92ddd83b..521aea4e 100644 --- a/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/doc/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -2,11 +2,11 @@ "ayaka_bindings":[["impl RefUnwindSafe for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl RefUnwindSafe for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl RefUnwindSafe for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl RefUnwindSafe for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl RefUnwindSafe for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl RefUnwindSafe for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl RefUnwindSafe for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl RefUnwindSafe for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl RefUnwindSafe for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl RefUnwindSafe for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl RefUnwindSafe for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl RefUnwindSafe for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl RefUnwindSafe for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl RefUnwindSafe for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl RefUnwindSafe for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl RefUnwindSafe for Action",1,["ayaka_bindings_types::config::Action"]],["impl RefUnwindSafe for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl RefUnwindSafe for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl RefUnwindSafe for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl RefUnwindSafe for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], "ayaka_model":[["impl RefUnwindSafe for Settings",1,["ayaka_model::settings::Settings"]],["impl RefUnwindSafe for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl RefUnwindSafe for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl RefUnwindSafe for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> !RefUnwindSafe for GameViewModel<S, M>",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> RefUnwindSafe for PluginModule<M>where\n M: RefUnwindSafe,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_plugin":[["impl<M> RefUnwindSafe for PluginModule<M>
where\n M: RefUnwindSafe,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl RefUnwindSafe for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl !RefUnwindSafe for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl !RefUnwindSafe for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> !RefUnwindSafe for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl RefUnwindSafe for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl !RefUnwindSafe for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> !RefUnwindSafe for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl RefUnwindSafe for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl !RefUnwindSafe for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> !RefUnwindSafe for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl RefUnwindSafe for Line",1,["ayaka_primitive::line::Line"]],["impl RefUnwindSafe for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl RefUnwindSafe for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl RefUnwindSafe for Text",1,["ayaka_primitive::text::Text"]],["impl RefUnwindSafe for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl RefUnwindSafe for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl RefUnwindSafe for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl RefUnwindSafe for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl RefUnwindSafe for Game",1,["ayaka_runtime::config::Game"]],["impl<M> !RefUnwindSafe for Context<M>",1,["ayaka_runtime::context::Context"]],["impl RefUnwindSafe for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> RefUnwindSafe for ContextBuilder<M>where\n <M as RawModule>::Linker: RefUnwindSafe,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> !RefUnwindSafe for ContextBuilderWithPaths<'a, M>",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> RefUnwindSafe for Module<M>where\n M: RefUnwindSafe,",1,["ayaka_runtime::plugin::Module"]],["impl<M> RefUnwindSafe for Runtime<M>where\n M: RefUnwindSafe,",1,["ayaka_runtime::plugin::Runtime"]],["impl RefUnwindSafe for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl RefUnwindSafe for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl RefUnwindSafe for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl RefUnwindSafe for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl RefUnwindSafe for Game",1,["ayaka_runtime::config::Game"]],["impl<M> !RefUnwindSafe for Context<M>",1,["ayaka_runtime::context::Context"]],["impl RefUnwindSafe for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> RefUnwindSafe for ContextBuilder<M>
where\n <M as RawModule>::Linker: RefUnwindSafe,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> !RefUnwindSafe for ContextBuilderWithPaths<'a, M>",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> RefUnwindSafe for Module<M>
where\n M: RefUnwindSafe,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> RefUnwindSafe for Runtime<M>
where\n M: RefUnwindSafe,
",1,["ayaka_runtime::plugin::Runtime"]],["impl RefUnwindSafe for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl RefUnwindSafe for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl RefUnwindSafe for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl RefUnwindSafe for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl RefUnwindSafe for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl RefUnwindSafe for Program",1,["ayaka_script::Program"]],["impl RefUnwindSafe for Expr",1,["ayaka_script::Expr"]],["impl RefUnwindSafe for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl RefUnwindSafe for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl RefUnwindSafe for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl RefUnwindSafe for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl RefUnwindSafe for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/doc/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js similarity index 89% rename from doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js rename to doc/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index c33e8bbc..3949cb34 100644 --- a/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/doc/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -2,11 +2,11 @@ "ayaka_bindings":[["impl UnwindSafe for HostFS",1,["ayaka_bindings::fs::HostFS"]]], "ayaka_bindings_types":[["impl UnwindSafe for PluginType",1,["ayaka_bindings_types::plugin::PluginType"]],["impl UnwindSafe for PluginTypeBuilder",1,["ayaka_bindings_types::plugin::PluginTypeBuilder"]],["impl UnwindSafe for FrontendType",1,["ayaka_bindings_types::plugin::FrontendType"]],["impl UnwindSafe for ActionProcessContext",1,["ayaka_bindings_types::plugin::ActionProcessContext"]],["impl UnwindSafe for ActionProcessResult",1,["ayaka_bindings_types::plugin::ActionProcessResult"]],["impl UnwindSafe for TextProcessContext",1,["ayaka_bindings_types::plugin::TextProcessContext"]],["impl UnwindSafe for TextProcessResult",1,["ayaka_bindings_types::plugin::TextProcessResult"]],["impl UnwindSafe for GameProcessContext",1,["ayaka_bindings_types::plugin::GameProcessContext"]],["impl UnwindSafe for GameProcessResult",1,["ayaka_bindings_types::plugin::GameProcessResult"]],["impl UnwindSafe for LineProcessContext",1,["ayaka_bindings_types::plugin::LineProcessContext"]],["impl UnwindSafe for LineProcessResult",1,["ayaka_bindings_types::plugin::LineProcessResult"]],["impl UnwindSafe for ActionSubText",1,["ayaka_bindings_types::config::ActionSubText"]],["impl UnwindSafe for RawContext",1,["ayaka_bindings_types::config::RawContext"]],["impl UnwindSafe for ActionText",1,["ayaka_bindings_types::config::ActionText"]],["impl UnwindSafe for Action",1,["ayaka_bindings_types::config::Action"]],["impl UnwindSafe for Switch",1,["ayaka_bindings_types::config::Switch"]],["impl UnwindSafe for FileType",1,["ayaka_bindings_types::fs::FileType"]],["impl UnwindSafe for FileMetadata",1,["ayaka_bindings_types::fs::FileMetadata"]],["impl UnwindSafe for FileSeekFrom",1,["ayaka_bindings_types::fs::FileSeekFrom"]]], "ayaka_model":[["impl UnwindSafe for Settings",1,["ayaka_model::settings::Settings"]],["impl UnwindSafe for GlobalRecord",1,["ayaka_model::settings::GlobalRecord"]],["impl UnwindSafe for ActionRecord",1,["ayaka_model::settings::ActionRecord"]],["impl UnwindSafe for OpenGameStatus",1,["ayaka_model::view_model::OpenGameStatus"]],["impl<S, M> !UnwindSafe for GameViewModel<S, M>",1,["ayaka_model::view_model::GameViewModel"]]], -"ayaka_plugin":[["impl<M> UnwindSafe for PluginModule<M>where\n M: UnwindSafe,",1,["ayaka_plugin::PluginModule"]]], +"ayaka_plugin":[["impl<M> UnwindSafe for PluginModule<M>
where\n M: UnwindSafe,
",1,["ayaka_plugin::PluginModule"]]], "ayaka_plugin_wasmer":[["impl UnwindSafe for WasmerModule",1,["ayaka_plugin_wasmer::WasmerModule"]],["impl !UnwindSafe for WasmerLinker",1,["ayaka_plugin_wasmer::WasmerLinker"]],["impl !UnwindSafe for WasmerFunction",1,["ayaka_plugin_wasmer::WasmerFunction"]],["impl<'a> !UnwindSafe for WasmerLinkerHandle<'a>",1,["ayaka_plugin_wasmer::WasmerLinkerHandle"]]], "ayaka_plugin_wasmi":[["impl UnwindSafe for WasmiModule",1,["ayaka_plugin_wasmi::WasmiModule"]],["impl !UnwindSafe for WasmiLinker",1,["ayaka_plugin_wasmi::WasmiLinker"]],["impl<'a> !UnwindSafe for WasmiLinkerHandle<'a>",1,["ayaka_plugin_wasmi::WasmiLinkerHandle"]]], "ayaka_plugin_wasmtime":[["impl UnwindSafe for WasmtimeModule",1,["ayaka_plugin_wasmtime::WasmtimeModule"]],["impl !UnwindSafe for WasmtimeLinker",1,["ayaka_plugin_wasmtime::WasmtimeLinker"]],["impl<'a> !UnwindSafe for WasmtimeLinkerHandle<'a>",1,["ayaka_plugin_wasmtime::WasmtimeLinkerHandle"]]], "ayaka_primitive":[["impl UnwindSafe for Line",1,["ayaka_primitive::line::Line"]],["impl UnwindSafe for RawValue",1,["ayaka_primitive::raw_value::RawValue"]],["impl UnwindSafe for ValueType",1,["ayaka_primitive::raw_value::ValueType"]],["impl UnwindSafe for Text",1,["ayaka_primitive::text::Text"]],["impl UnwindSafe for SubText",1,["ayaka_primitive::text::SubText"]]], -"ayaka_runtime":[["impl UnwindSafe for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl UnwindSafe for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl UnwindSafe for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl UnwindSafe for Game",1,["ayaka_runtime::config::Game"]],["impl<M> !UnwindSafe for Context<M>",1,["ayaka_runtime::context::Context"]],["impl UnwindSafe for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> UnwindSafe for ContextBuilder<M>where\n <M as RawModule>::Linker: UnwindSafe,",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> !UnwindSafe for ContextBuilderWithPaths<'a, M>",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> UnwindSafe for Module<M>where\n M: UnwindSafe,",1,["ayaka_runtime::plugin::Module"]],["impl<M> UnwindSafe for Runtime<M>where\n M: UnwindSafe,",1,["ayaka_runtime::plugin::Runtime"]],["impl UnwindSafe for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], +"ayaka_runtime":[["impl UnwindSafe for Paragraph",1,["ayaka_runtime::config::Paragraph"]],["impl UnwindSafe for GameConfig",1,["ayaka_runtime::config::GameConfig"]],["impl UnwindSafe for PluginConfig",1,["ayaka_runtime::config::PluginConfig"]],["impl UnwindSafe for Game",1,["ayaka_runtime::config::Game"]],["impl<M> !UnwindSafe for Context<M>",1,["ayaka_runtime::context::Context"]],["impl UnwindSafe for OpenStatus",1,["ayaka_runtime::context::OpenStatus"]],["impl<M> UnwindSafe for ContextBuilder<M>
where\n <M as RawModule>::Linker: UnwindSafe,
",1,["ayaka_runtime::context::ContextBuilder"]],["impl<'a, M> !UnwindSafe for ContextBuilderWithPaths<'a, M>",1,["ayaka_runtime::context::ContextBuilderWithPaths"]],["impl<M> UnwindSafe for Module<M>
where\n M: UnwindSafe,
",1,["ayaka_runtime::plugin::Module"]],["impl<M> UnwindSafe for Runtime<M>
where\n M: UnwindSafe,
",1,["ayaka_runtime::plugin::Runtime"]],["impl UnwindSafe for LoadStatus",1,["ayaka_runtime::plugin::LoadStatus"]]], "ayaka_script":[["impl UnwindSafe for ConstParser",1,["ayaka_script::parser::grammer::__parse__Const::ConstParser"]],["impl UnwindSafe for ExprParser",1,["ayaka_script::parser::grammer::__parse__Expr::ExprParser"]],["impl UnwindSafe for ProgramParser",1,["ayaka_script::parser::grammer::__parse__Program::ProgramParser"]],["impl UnwindSafe for RefParser",1,["ayaka_script::parser::grammer::__parse__Ref::RefParser"]],["impl UnwindSafe for Program",1,["ayaka_script::Program"]],["impl UnwindSafe for Expr",1,["ayaka_script::Expr"]],["impl UnwindSafe for UnaryOp",1,["ayaka_script::UnaryOp"]],["impl UnwindSafe for BinaryOp",1,["ayaka_script::BinaryOp"]],["impl UnwindSafe for ValBinaryOp",1,["ayaka_script::ValBinaryOp"]],["impl UnwindSafe for LogicBinaryOp",1,["ayaka_script::LogicBinaryOp"]],["impl UnwindSafe for Ref",1,["ayaka_script::Ref"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/core/str/traits/trait.FromStr.js b/doc/trait.impl/core/str/traits/trait.FromStr.js similarity index 100% rename from doc/implementors/core/str/traits/trait.FromStr.js rename to doc/trait.impl/core/str/traits/trait.FromStr.js diff --git a/doc/implementors/fallback/trait.FallbackSpec.js b/doc/trait.impl/fallback/trait.FallbackSpec.js similarity index 100% rename from doc/implementors/fallback/trait.FallbackSpec.js rename to doc/trait.impl/fallback/trait.FallbackSpec.js diff --git a/doc/trait.impl/serde/de/trait.Deserialize.js b/doc/trait.impl/serde/de/trait.Deserialize.js new file mode 100644 index 00000000..80144258 --- /dev/null +++ b/doc/trait.impl/serde/de/trait.Deserialize.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl<'de> Deserialize<'de> for FileSeekFrom"],["impl<'de> Deserialize<'de> for LineProcessResult"],["impl<'de> Deserialize<'de> for ActionSubText"],["impl<'de> Deserialize<'de> for Switch"],["impl<'de> Deserialize<'de> for PluginType"],["impl<'de> Deserialize<'de> for TextProcessResult"],["impl<'de> Deserialize<'de> for ActionProcessContext"],["impl<'de> Deserialize<'de> for Action"],["impl<'de> Deserialize<'de> for GameProcessResult"],["impl<'de> Deserialize<'de> for LineProcessContext"],["impl<'de> Deserialize<'de> for GameProcessContext"],["impl<'de> Deserialize<'de> for RawContext"],["impl<'de> Deserialize<'de> for FileType"],["impl<'de> Deserialize<'de> for TextProcessContext"],["impl<'de> Deserialize<'de> for FileMetadata"],["impl<'de> Deserialize<'de> for ActionText"],["impl<'de> Deserialize<'de> for FrontendType"],["impl<'de> Deserialize<'de> for ActionProcessResult"]], +"ayaka_model":[["impl<'de> Deserialize<'de> for ActionRecord"],["impl<'de> Deserialize<'de> for Settings"],["impl<'de> Deserialize<'de> for GlobalRecord"]], +"ayaka_primitive":[["impl<'de> Deserialize<'de> for Line"],["impl<'de> Deserialize<'de> for Text"],["impl<'de> Deserialize<'de> for RawValue"]], +"ayaka_runtime":[["impl<'de> Deserialize<'de> for PluginConfig"],["impl<'de> Deserialize<'de> for GameConfig"],["impl<'de> Deserialize<'de> for Paragraph"]], +"ayaka_script":[["impl<'de> Deserialize<'de> for Expr"],["impl<'de> Deserialize<'de> for LogicBinaryOp"],["impl<'de> Deserialize<'de> for UnaryOp"],["impl<'de> Deserialize<'de> for Ref"],["impl<'de> Deserialize<'de> for ValBinaryOp"],["impl<'de> Deserialize<'de> for Program"],["impl<'de> Deserialize<'de> for BinaryOp"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/trait.impl/serde/ser/trait.Serialize.js b/doc/trait.impl/serde/ser/trait.Serialize.js new file mode 100644 index 00000000..d469494b --- /dev/null +++ b/doc/trait.impl/serde/ser/trait.Serialize.js @@ -0,0 +1,7 @@ +(function() {var implementors = { +"ayaka_bindings_types":[["impl Serialize for LineProcessContext"],["impl Serialize for TextProcessResult"],["impl Serialize for GameProcessContext"],["impl Serialize for ActionProcessResult"],["impl Serialize for Switch"],["impl Serialize for FileMetadata"],["impl Serialize for PluginType"],["impl Serialize for TextProcessContext"],["impl Serialize for ActionSubText"],["impl Serialize for FileSeekFrom"],["impl Serialize for GameProcessResult"],["impl Serialize for FileType"],["impl Serialize for RawContext"],["impl Serialize for Action"],["impl Serialize for ActionProcessContext"],["impl Serialize for FrontendType"],["impl Serialize for ActionText"],["impl Serialize for LineProcessResult"]], +"ayaka_model":[["impl Serialize for Settings"],["impl Serialize for GlobalRecord"],["impl Serialize for ActionRecord"],["impl Serialize for OpenGameStatus"]], +"ayaka_primitive":[["impl Serialize for RawValue"]], +"ayaka_runtime":[["impl Serialize for OpenStatus"]], +"ayaka_script":[["impl Serialize for Ref"],["impl Serialize for ValBinaryOp"],["impl Serialize for BinaryOp"],["impl Serialize for LogicBinaryOp"],["impl Serialize for UnaryOp"],["impl Serialize for Expr"],["impl Serialize for Program"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/doc/implementors/vfs/filesystem/trait.FileSystem.js b/doc/trait.impl/vfs/filesystem/trait.FileSystem.js similarity index 100% rename from doc/implementors/vfs/filesystem/trait.FileSystem.js rename to doc/trait.impl/vfs/filesystem/trait.FileSystem.js diff --git a/doc/type.impl/std/collections/hash/map/struct.HashMap.js b/doc/type.impl/std/collections/hash/map/struct.HashMap.js new file mode 100644 index 00000000..20b9d094 --- /dev/null +++ b/doc/type.impl/std/collections/hash/map/struct.HashMap.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"ayaka_bindings_types":[["
source§

impl<K, V> HashMap<K, V>

1.0.0 · source

pub fn new() -> HashMap<K, V>

Creates an empty HashMap.

\n

The hash map is initially created with a capacity of 0, so it will not allocate until it\nis first inserted into.

\n
Examples
\n
use std::collections::HashMap;\nlet mut map: HashMap<&str, i32> = HashMap::new();
\n
1.0.0 · source

pub fn with_capacity(capacity: usize) -> HashMap<K, V>

Creates an empty HashMap with at least the specified capacity.

\n

The hash map will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the hash map will not allocate.

\n
Examples
\n
use std::collections::HashMap;\nlet mut map: HashMap<&str, i32> = HashMap::with_capacity(10);
\n
",0,"ayaka_bindings_types::config::VarMap"],["
source§

impl<K, V, S> HashMap<K, V, S>

1.7.0 (const: unstable) · source

pub fn with_hasher(hash_builder: S) -> HashMap<K, V, S>

Creates an empty HashMap which will use the given hash builder to hash\nkeys.

\n

The created map has the default initial capacity.

\n

Warning: hash_builder is normally randomly generated, and\nis designed to allow HashMaps to be resistant to attacks that\ncause many collisions and very poor performance. Setting it\nmanually using this function can expose a DoS attack vector.

\n

The hash_builder passed should implement the BuildHasher trait for\nthe HashMap to be useful, see its documentation for details.

\n
Examples
\n
use std::collections::HashMap;\nuse std::hash::RandomState;\n\nlet s = RandomState::new();\nlet mut map = HashMap::with_hasher(s);\nmap.insert(1, 2);
\n
1.7.0 · source

pub fn with_capacity_and_hasher(capacity: usize, hasher: S) -> HashMap<K, V, S>

Creates an empty HashMap with at least the specified capacity, using\nhasher to hash the keys.

\n

The hash map will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the hash map will not allocate.

\n

Warning: hasher is normally randomly generated, and\nis designed to allow HashMaps to be resistant to attacks that\ncause many collisions and very poor performance. Setting it\nmanually using this function can expose a DoS attack vector.

\n

The hasher passed should implement the BuildHasher trait for\nthe HashMap to be useful, see its documentation for details.

\n
Examples
\n
use std::collections::HashMap;\nuse std::hash::RandomState;\n\nlet s = RandomState::new();\nlet mut map = HashMap::with_capacity_and_hasher(10, s);\nmap.insert(1, 2);
\n
1.0.0 · source

pub fn capacity(&self) -> usize

Returns the number of elements the map can hold without reallocating.

\n

This number is a lower bound; the HashMap<K, V> might be able to hold\nmore, but is guaranteed to be able to hold at least this many.

\n
Examples
\n
use std::collections::HashMap;\nlet map: HashMap<i32, i32> = HashMap::with_capacity(100);\nassert!(map.capacity() >= 100);
\n
1.0.0 · source

pub fn keys(&self) -> Keys<'_, K, V>

An iterator visiting all keys in arbitrary order.\nThe iterator element type is &'a K.

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nfor key in map.keys() {\n    println!(\"{key}\");\n}
\n
Performance
\n

In the current implementation, iterating over keys takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.54.0 · source

pub fn into_keys(self) -> IntoKeys<K, V>

Creates a consuming iterator visiting all the keys in arbitrary order.\nThe map cannot be used after calling this.\nThe iterator element type is K.

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nlet mut vec: Vec<&str> = map.into_keys().collect();\n// The `IntoKeys` iterator produces keys in arbitrary order, so the\n// keys must be sorted to test them against a sorted array.\nvec.sort_unstable();\nassert_eq!(vec, [\"a\", \"b\", \"c\"]);
\n
Performance
\n

In the current implementation, iterating over keys takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.0.0 · source

pub fn values(&self) -> Values<'_, K, V>

An iterator visiting all values in arbitrary order.\nThe iterator element type is &'a V.

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nfor val in map.values() {\n    println!(\"{val}\");\n}
\n
Performance
\n

In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.10.0 · source

pub fn values_mut(&mut self) -> ValuesMut<'_, K, V>

An iterator visiting all values mutably in arbitrary order.\nThe iterator element type is &'a mut V.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nfor val in map.values_mut() {\n    *val = *val + 10;\n}\n\nfor val in map.values() {\n    println!(\"{val}\");\n}
\n
Performance
\n

In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.54.0 · source

pub fn into_values(self) -> IntoValues<K, V>

Creates a consuming iterator visiting all the values in arbitrary order.\nThe map cannot be used after calling this.\nThe iterator element type is V.

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nlet mut vec: Vec<i32> = map.into_values().collect();\n// The `IntoValues` iterator produces values in arbitrary order, so\n// the values must be sorted to test them against a sorted array.\nvec.sort_unstable();\nassert_eq!(vec, [1, 2, 3]);
\n
Performance
\n

In the current implementation, iterating over values takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.0.0 · source

pub fn iter(&self) -> Iter<'_, K, V>

An iterator visiting all key-value pairs in arbitrary order.\nThe iterator element type is (&'a K, &'a V).

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\nfor (key, val) in map.iter() {\n    println!(\"key: {key} val: {val}\");\n}
\n
Performance
\n

In the current implementation, iterating over map takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, K, V>

An iterator visiting all key-value pairs in arbitrary order,\nwith mutable references to the values.\nThe iterator element type is (&'a K, &'a mut V).

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\n// Update all values\nfor (_, val) in map.iter_mut() {\n    *val *= 2;\n}\n\nfor (key, val) in &map {\n    println!(\"key: {key} val: {val}\");\n}
\n
Performance
\n

In the current implementation, iterating over map takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.0.0 · source

pub fn len(&self) -> usize

Returns the number of elements in the map.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut a = HashMap::new();\nassert_eq!(a.len(), 0);\na.insert(1, \"a\");\nassert_eq!(a.len(), 1);
\n
1.0.0 · source

pub fn is_empty(&self) -> bool

Returns true if the map contains no elements.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut a = HashMap::new();\nassert!(a.is_empty());\na.insert(1, \"a\");\nassert!(!a.is_empty());
\n
1.6.0 · source

pub fn drain(&mut self) -> Drain<'_, K, V>

Clears the map, returning all key-value pairs as an iterator. Keeps the\nallocated memory for reuse.

\n

If the returned iterator is dropped before being fully consumed, it\ndrops the remaining key-value pairs. The returned iterator keeps a\nmutable borrow on the map to optimize its implementation.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut a = HashMap::new();\na.insert(1, \"a\");\na.insert(2, \"b\");\n\nfor (k, v) in a.drain().take(1) {\n    assert!(k == 1 || k == 2);\n    assert!(v == \"a\" || v == \"b\");\n}\n\nassert!(a.is_empty());
\n
source

pub fn extract_if<F>(&mut self, pred: F) -> ExtractIf<'_, K, V, F>
where\n F: FnMut(&K, &mut V) -> bool,

🔬This is a nightly-only experimental API. (hash_extract_if)

Creates an iterator which uses a closure to determine if an element should be removed.

\n

If the closure returns true, the element is removed from the map and yielded.\nIf the closure returns false, or panics, the element remains in the map and will not be\nyielded.

\n

Note that extract_if lets you mutate every value in the filter closure, regardless of\nwhether you choose to keep or remove it.

\n

If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

\n
Examples
\n

Splitting a map into even and odd keys, reusing the original map:

\n\n
#![feature(hash_extract_if)]\nuse std::collections::HashMap;\n\nlet mut map: HashMap<i32, i32> = (0..8).map(|x| (x, x)).collect();\nlet extracted: HashMap<i32, i32> = map.extract_if(|k, _v| k % 2 == 0).collect();\n\nlet mut evens = extracted.keys().copied().collect::<Vec<_>>();\nlet mut odds = map.keys().copied().collect::<Vec<_>>();\nevens.sort();\nodds.sort();\n\nassert_eq!(evens, vec![0, 2, 4, 6]);\nassert_eq!(odds, vec![1, 3, 5, 7]);
\n
1.18.0 · source

pub fn retain<F>(&mut self, f: F)
where\n F: FnMut(&K, &mut V) -> bool,

Retains only the elements specified by the predicate.

\n

In other words, remove all pairs (k, v) for which f(&k, &mut v) returns false.\nThe elements are visited in unsorted (and unspecified) order.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map: HashMap<i32, i32> = (0..8).map(|x| (x, x*10)).collect();\nmap.retain(|&k, _| k % 2 == 0);\nassert_eq!(map.len(), 4);
\n
Performance
\n

In the current implementation, this operation takes O(capacity) time\ninstead of O(len) because it internally visits empty buckets too.

\n
1.0.0 · source

pub fn clear(&mut self)

Clears the map, removing all key-value pairs. Keeps the allocated memory\nfor reuse.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut a = HashMap::new();\na.insert(1, \"a\");\na.clear();\nassert!(a.is_empty());
\n
1.9.0 · source

pub fn hasher(&self) -> &S

Returns a reference to the map’s BuildHasher.

\n
Examples
\n
use std::collections::HashMap;\nuse std::hash::RandomState;\n\nlet hasher = RandomState::new();\nlet map: HashMap<i32, i32> = HashMap::with_hasher(hasher);\nlet hasher: &RandomState = map.hasher();
\n
",0,"ayaka_bindings_types::config::VarMap"],["
source§

impl<K, V, S> HashMap<K, V, S>
where\n K: Eq + Hash,\n S: BuildHasher,

1.0.0 · source

pub fn reserve(&mut self, additional: usize)

Reserves capacity for at least additional more elements to be inserted\nin the HashMap. The collection may reserve more space to speculatively\navoid frequent reallocations. After calling reserve,\ncapacity will be greater than or equal to self.len() + additional.\nDoes nothing if capacity is already sufficient.

\n
Panics
\n

Panics if the new allocation size overflows usize.

\n
Examples
\n
use std::collections::HashMap;\nlet mut map: HashMap<&str, i32> = HashMap::new();\nmap.reserve(10);
\n
1.57.0 · source

pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

Tries to reserve capacity for at least additional more elements to be inserted\nin the HashMap. The collection may reserve more space to speculatively\navoid frequent reallocations. After calling try_reserve,\ncapacity will be greater than or equal to self.len() + additional if\nit returns Ok(()).\nDoes nothing if capacity is already sufficient.

\n
Errors
\n

If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map: HashMap<&str, isize> = HashMap::new();\nmap.try_reserve(10).expect(\"why is the test harness OOMing on a handful of bytes?\");
\n
1.0.0 · source

pub fn shrink_to_fit(&mut self)

Shrinks the capacity of the map as much as possible. It will drop\ndown as much as possible while maintaining the internal rules\nand possibly leaving some space in accordance with the resize policy.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map: HashMap<i32, i32> = HashMap::with_capacity(100);\nmap.insert(1, 2);\nmap.insert(3, 4);\nassert!(map.capacity() >= 100);\nmap.shrink_to_fit();\nassert!(map.capacity() >= 2);
\n
1.56.0 · source

pub fn shrink_to(&mut self, min_capacity: usize)

Shrinks the capacity of the map with a lower limit. It will drop\ndown no lower than the supplied limit while maintaining the internal rules\nand possibly leaving some space in accordance with the resize policy.

\n

If the current capacity is less than the lower limit, this is a no-op.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map: HashMap<i32, i32> = HashMap::with_capacity(100);\nmap.insert(1, 2);\nmap.insert(3, 4);\nassert!(map.capacity() >= 100);\nmap.shrink_to(10);\nassert!(map.capacity() >= 10);\nmap.shrink_to(0);\nassert!(map.capacity() >= 2);
\n
1.0.0 · source

pub fn entry(&mut self, key: K) -> Entry<'_, K, V>

Gets the given key’s corresponding entry in the map for in-place manipulation.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut letters = HashMap::new();\n\nfor ch in \"a short treatise on fungi\".chars() {\n    letters.entry(ch).and_modify(|counter| *counter += 1).or_insert(1);\n}\n\nassert_eq!(letters[&'s'], 2);\nassert_eq!(letters[&'t'], 3);\nassert_eq!(letters[&'u'], 1);\nassert_eq!(letters.get(&'y'), None);
\n
1.0.0 · source

pub fn get<Q>(&self, k: &Q) -> Option<&V>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Returns a reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get(&1), Some(&\"a\"));\nassert_eq!(map.get(&2), None);
\n
1.40.0 · source

pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Returns the key-value pair corresponding to the supplied key.

\n

The supplied key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.get_key_value(&1), Some((&1, &\"a\")));\nassert_eq!(map.get_key_value(&2), None);
\n
source

pub fn get_many_mut<Q, const N: usize>(\n &mut self,\n ks: [&Q; N]\n) -> Option<[&mut V; N]>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

🔬This is a nightly-only experimental API. (map_many_mut)

Attempts to get mutable references to N values in the map at once.

\n

Returns an array of length N with the results of each query. For soundness, at most one\nmutable reference will be returned to any value. None will be returned if any of the\nkeys are duplicates or missing.

\n
Examples
\n
#![feature(map_many_mut)]\nuse std::collections::HashMap;\n\nlet mut libraries = HashMap::new();\nlibraries.insert(\"Bodleian Library\".to_string(), 1602);\nlibraries.insert(\"Athenæum\".to_string(), 1807);\nlibraries.insert(\"Herzogin-Anna-Amalia-Bibliothek\".to_string(), 1691);\nlibraries.insert(\"Library of Congress\".to_string(), 1800);\n\nlet got = libraries.get_many_mut([\n    \"Athenæum\",\n    \"Library of Congress\",\n]);\nassert_eq!(\n    got,\n    Some([\n        &mut 1807,\n        &mut 1800,\n    ]),\n);\n\n// Missing keys result in None\nlet got = libraries.get_many_mut([\n    \"Athenæum\",\n    \"New York Public Library\",\n]);\nassert_eq!(got, None);\n\n// Duplicate keys result in None\nlet got = libraries.get_many_mut([\n    \"Athenæum\",\n    \"Athenæum\",\n]);\nassert_eq!(got, None);
\n
source

pub unsafe fn get_many_unchecked_mut<Q, const N: usize>(\n &mut self,\n ks: [&Q; N]\n) -> Option<[&mut V; N]>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

🔬This is a nightly-only experimental API. (map_many_mut)

Attempts to get mutable references to N values in the map at once, without validating that\nthe values are unique.

\n

Returns an array of length N with the results of each query. None will be returned if\nany of the keys are missing.

\n

For a safe alternative see get_many_mut.

\n
Safety
\n

Calling this method with overlapping keys is undefined behavior even if the resulting\nreferences are not used.

\n
Examples
\n
#![feature(map_many_mut)]\nuse std::collections::HashMap;\n\nlet mut libraries = HashMap::new();\nlibraries.insert(\"Bodleian Library\".to_string(), 1602);\nlibraries.insert(\"Athenæum\".to_string(), 1807);\nlibraries.insert(\"Herzogin-Anna-Amalia-Bibliothek\".to_string(), 1691);\nlibraries.insert(\"Library of Congress\".to_string(), 1800);\n\nlet got = libraries.get_many_mut([\n    \"Athenæum\",\n    \"Library of Congress\",\n]);\nassert_eq!(\n    got,\n    Some([\n        &mut 1807,\n        &mut 1800,\n    ]),\n);\n\n// Missing keys result in None\nlet got = libraries.get_many_mut([\n    \"Athenæum\",\n    \"New York Public Library\",\n]);\nassert_eq!(got, None);
\n
1.0.0 · source

pub fn contains_key<Q>(&self, k: &Q) -> bool
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Returns true if the map contains a value for the specified key.

\n

The key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.contains_key(&1), true);\nassert_eq!(map.contains_key(&2), false);
\n
1.0.0 · source

pub fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut V>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Returns a mutable reference to the value corresponding to the key.

\n

The key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nif let Some(x) = map.get_mut(&1) {\n    *x = \"b\";\n}\nassert_eq!(map[&1], \"b\");
\n
1.0.0 · source

pub fn insert(&mut self, k: K, v: V) -> Option<V>

Inserts a key-value pair into the map.

\n

If the map did not have this key present, None is returned.

\n

If the map did have this key present, the value is updated, and the old\nvalue is returned. The key is not updated, though; this matters for\ntypes that can be == without being identical. See the module-level\ndocumentation for more.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nassert_eq!(map.insert(37, \"a\"), None);\nassert_eq!(map.is_empty(), false);\n\nmap.insert(37, \"b\");\nassert_eq!(map.insert(37, \"c\"), Some(\"b\"));\nassert_eq!(map[&37], \"c\");
\n
source

pub fn try_insert(\n &mut self,\n key: K,\n value: V\n) -> Result<&mut V, OccupiedError<'_, K, V>>

🔬This is a nightly-only experimental API. (map_try_insert)

Tries to insert a key-value pair into the map, and returns\na mutable reference to the value in the entry.

\n

If the map already had this key present, nothing is updated, and\nan error containing the occupied entry and the value is returned.

\n
Examples
\n

Basic usage:

\n\n
#![feature(map_try_insert)]\n\nuse std::collections::HashMap;\n\nlet mut map = HashMap::new();\nassert_eq!(map.try_insert(37, \"a\").unwrap(), &\"a\");\n\nlet err = map.try_insert(37, \"b\").unwrap_err();\nassert_eq!(err.entry.key(), &37);\nassert_eq!(err.entry.get(), &\"a\");\nassert_eq!(err.value, \"b\");
\n
1.0.0 · source

pub fn remove<Q>(&mut self, k: &Q) -> Option<V>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Removes a key from the map, returning the value at the key if the key\nwas previously in the map.

\n

The key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove(&1), Some(\"a\"));\nassert_eq!(map.remove(&1), None);
\n
1.27.0 · source

pub fn remove_entry<Q>(&mut self, k: &Q) -> Option<(K, V)>
where\n K: Borrow<Q>,\n Q: Hash + Eq + ?Sized,

Removes a key from the map, returning the stored key and value if the\nkey was previously in the map.

\n

The key may be any borrowed form of the map’s key type, but\nHash and Eq on the borrowed form must match those for\nthe key type.

\n
Examples
\n
use std::collections::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"a\");\nassert_eq!(map.remove_entry(&1), Some((1, \"a\")));\nassert_eq!(map.remove(&1), None);
\n
",0,"ayaka_bindings_types::config::VarMap"],["
source§

impl<K, V, S> HashMap<K, V, S>
where\n S: BuildHasher,

source

pub fn raw_entry_mut(&mut self) -> RawEntryBuilderMut<'_, K, V, S>

🔬This is a nightly-only experimental API. (hash_raw_entry)

Creates a raw entry builder for the HashMap.

\n

Raw entries provide the lowest level of control for searching and\nmanipulating a map. They must be manually initialized with a hash and\nthen manually searched. After this, insertions into a vacant entry\nstill require an owned key to be provided.

\n

Raw entries are useful for such exotic situations as:

\n
    \n
  • Hash memoization
  • \n
  • Deferring the creation of an owned key until it is known to be required
  • \n
  • Using a search key that doesn’t work with the Borrow trait
  • \n
  • Using custom comparison logic without newtype wrappers
  • \n
\n

Because raw entries provide much more low-level control, it’s much easier\nto put the HashMap into an inconsistent state which, while memory-safe,\nwill cause the map to produce seemingly random results. Higher-level and\nmore foolproof APIs like entry should be preferred when possible.

\n

In particular, the hash used to initialized the raw entry must still be\nconsistent with the hash of the key that is ultimately stored in the entry.\nThis is because implementations of HashMap may need to recompute hashes\nwhen resizing, at which point only the keys are available.

\n

Raw entries give mutable access to the keys. This must not be used\nto modify how the key would compare or hash, as the map will not re-evaluate\nwhere the key should go, meaning the keys may become “lost” if their\nlocation does not reflect their state. For instance, if you change a key\nso that the map now contains keys which compare equal, search may start\nacting erratically, with two keys randomly masking each other. Implementations\nare free to assume this doesn’t happen (within the limits of memory-safety).

\n
source

pub fn raw_entry(&self) -> RawEntryBuilder<'_, K, V, S>

🔬This is a nightly-only experimental API. (hash_raw_entry)

Creates a raw immutable entry builder for the HashMap.

\n

Raw entries provide the lowest level of control for searching and\nmanipulating a map. They must be manually initialized with a hash and\nthen manually searched.

\n

This is useful for

\n
    \n
  • Hash memoization
  • \n
  • Using a search key that doesn’t work with the Borrow trait
  • \n
  • Using custom comparison logic without newtype wrappers
  • \n
\n

Unless you are in such a situation, higher-level and more foolproof APIs like\nget should be preferred.

\n

Immutable raw entries have very limited use; you might instead want raw_entry_mut.

\n
",0,"ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, Q, V, S> Index<&Q> for HashMap<K, V, S>
where\n K: Eq + Hash + Borrow<Q>,\n Q: Eq + Hash + ?Sized,\n S: BuildHasher,

source§

fn index(&self, key: &Q) -> &V

Returns a reference to the value corresponding to the supplied key.

\n
Panics
\n

Panics if the key is not present in the HashMap.

\n
§

type Output = V

The returned type after indexing.
","Index<&Q>","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> Eq for HashMap<K, V, S>
where\n K: Eq + Hash,\n V: Eq,\n S: BuildHasher,

","Eq","ayaka_bindings_types::config::VarMap"],["
1.4.0 · source§

impl<'a, K, V, S> Extend<(&'a K, &'a V)> for HashMap<K, V, S>
where\n K: Eq + Hash + Copy,\n V: Copy,\n S: BuildHasher,

source§

fn extend<T>(&mut self, iter: T)
where\n T: IntoIterator<Item = (&'a K, &'a V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (&'a K, &'a V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(&'a K, &'a V)>","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> Extend<(K, V)> for HashMap<K, V, S>
where\n K: Eq + Hash,\n S: BuildHasher,

Inserts all new key-values from the iterator and replaces values with existing\nkeys with new values returned from the iterator.

\n
source§

fn extend<T>(&mut self, iter: T)
where\n T: IntoIterator<Item = (K, V)>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, _: (K, V))

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
","Extend<(K, V)>","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> Default for HashMap<K, V, S>
where\n S: Default,

source§

fn default() -> HashMap<K, V, S>

Creates an empty HashMap<K, V, S>, with the Default value for the hasher.

\n
","Default","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> Debug for HashMap<K, V, S>
where\n K: Debug,\n V: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> IntoIterator for HashMap<K, V, S>

source§

fn into_iter(self) -> IntoIter<K, V>

Creates a consuming iterator, that is, one that moves each key-value\npair out of the map in arbitrary order. The map cannot be used after\ncalling this.

\n
Examples
\n
use std::collections::HashMap;\n\nlet map = HashMap::from([\n    (\"a\", 1),\n    (\"b\", 2),\n    (\"c\", 3),\n]);\n\n// Not possible with .iter()\nlet vec: Vec<(&str, i32)> = map.into_iter().collect();
\n
§

type Item = (K, V)

The type of the elements being iterated over.
§

type IntoIter = IntoIter<K, V>

Which kind of iterator are we turning this into?
","IntoIterator","ayaka_bindings_types::config::VarMap"],["
1.56.0 · source§

impl<K, V, const N: usize> From<[(K, V); N]> for HashMap<K, V>
where\n K: Eq + Hash,

source§

fn from(arr: [(K, V); N]) -> HashMap<K, V>

Examples
\n
use std::collections::HashMap;\n\nlet map1 = HashMap::from([(1, 2), (3, 4)]);\nlet map2: HashMap<_, _> = [(1, 2), (3, 4)].into();\nassert_eq!(map1, map2);
\n
","From<[(K, V); N]>","ayaka_bindings_types::config::VarMap"],["
1.36.0 · source§

impl<K, V, S> UnwindSafe for HashMap<K, V, S>
where\n K: UnwindSafe,\n V: UnwindSafe,\n S: UnwindSafe,

","UnwindSafe","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> FromIterator<(K, V)> for HashMap<K, V, S>
where\n K: Eq + Hash,\n S: BuildHasher + Default,

source§

fn from_iter<T>(iter: T) -> HashMap<K, V, S>
where\n T: IntoIterator<Item = (K, V)>,

Creates a value from an iterator. Read more
","FromIterator<(K, V)>","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> PartialEq for HashMap<K, V, S>
where\n K: Eq + Hash,\n V: PartialEq,\n S: BuildHasher,

source§

fn eq(&self, other: &HashMap<K, V, S>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","ayaka_bindings_types::config::VarMap"],["
1.0.0 · source§

impl<K, V, S> Clone for HashMap<K, V, S>
where\n K: Clone,\n V: Clone,\n S: Clone,

source§

fn clone(&self) -> HashMap<K, V, S>

Returns a copy of the value. Read more
source§

fn clone_from(&mut self, other: &HashMap<K, V, S>)

Performs copy-assignment from source. Read more
","Clone","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, V, S> Deserialize<'de> for HashMap<K, V, S>
where\n K: Deserialize<'de> + Eq + Hash,\n V: Deserialize<'de>,\n S: BuildHasher + Default,

source§

fn deserialize<D>(\n deserializer: D\n) -> Result<HashMap<K, V, S>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, V, S, E> IntoDeserializer<'de, E> for HashMap<K, V, S>
where\n K: IntoDeserializer<'de, E> + Eq + Hash,\n V: IntoDeserializer<'de, E>,\n S: BuildHasher,\n E: Error,

§

type Deserializer = MapDeserializer<'de, <HashMap<K, V, S> as IntoIterator>::IntoIter, E>

The type of the deserializer being converted into.
source§

fn into_deserializer(\n self\n) -> <HashMap<K, V, S> as IntoDeserializer<'de, E>>::Deserializer

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, V, H> Serialize for HashMap<K, V, H>
where\n K: Serialize,\n V: Serialize,

source§

fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, BinaryHeap<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,\n (K, V): Ord,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<BinaryHeap<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, BinaryHeap<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs, const N: usize> DeserializeAs<'de, [(K, V); N]> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<[(K, V); N], <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, [(K, V); N]>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs, S> DeserializeAs<'de, HashSet<(K, V), S>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,\n (K, V): Eq + Hash,\n S: BuildHasher + Default,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<HashSet<(K, V), S>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, HashSet<(K, V), S>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, Box<[(K, V)]>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<Box<[(K, V)]>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, Box<[(K, V)]>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, BTreeSet<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,\n (K, V): Ord,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<BTreeSet<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, BTreeSet<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, Vec<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<Vec<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, Vec<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, LinkedList<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<LinkedList<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, LinkedList<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, V, KU, VU, S> DeserializeAs<'de, HashMap<K, V, S>> for HashMap<KU, VU, S>
where\n KU: DeserializeAs<'de, K>,\n VU: DeserializeAs<'de, V>,\n K: Eq + Hash,\n S: BuildHasher + Default,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<HashMap<K, V, S>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, HashMap>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, VecDeque<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<VecDeque<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, VecDeque<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<'de, K, KAs, V, VAs> DeserializeAs<'de, Option<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: DeserializeAs<'de, K>,\n VAs: DeserializeAs<'de, V>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<Option<(K, V)>, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, Option<(K, V)>>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KU, V, VU, H> SerializeAs<HashMap<K, V, H>> for HashMap<KU, VU, H>
where\n KU: SerializeAs<K>,\n VU: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &HashMap<K, V, H>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<VecDeque<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &VecDeque<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<Box<[(K, V)]>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &Box<[(K, V)]>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<LinkedList<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &LinkedList<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<[(K, V)]> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &[(K, V)],\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs<[(K, V)]>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs, H> SerializeAs<HashSet<(K, V), H>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &HashSet<(K, V), H>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs, const N: usize> SerializeAs<[(K, V); N]> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &[(K, V); N],\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs<[(K, V); N]>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<Option<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &Option<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<BinaryHeap<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &BinaryHeap<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<Vec<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &Vec<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"],["
source§

impl<K, KAs, V, VAs> SerializeAs<BTreeSet<(K, V)>> for HashMap<KAs, VAs>
where\n KAs: SerializeAs<K>,\n VAs: SerializeAs<V>,

source§

fn serialize_as<S>(\n source: &BTreeSet<(K, V)>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","ayaka_bindings_types::config::VarMap"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/en/404.html b/en/404.html index 59df77ba..473a3097 100644 --- a/en/404.html +++ b/en/404.html @@ -91,7 +91,9 @@ - + diff --git a/en/config/character.html b/en/config/character.html index f621bcc6..278eb413 100644 --- a/en/config/character.html +++ b/en/config/character.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/i18n.html b/en/config/i18n.html index c6e3b0d4..0c6dabbd 100644 --- a/en/config/i18n.html +++ b/en/config/i18n.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/resources.html b/en/config/resources.html index 137fea07..bc03101f 100644 --- a/en/config/resources.html +++ b/en/config/resources.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/script.html b/en/config/script.html index 3784f0d7..87e560e4 100644 --- a/en/config/script.html +++ b/en/config/script.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/structure.html b/en/config/structure.html index 5f461b92..d373f32c 100644 --- a/en/config/structure.html +++ b/en/config/structure.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/summary.html b/en/config/summary.html index 258ff920..2bcb274a 100644 --- a/en/config/summary.html +++ b/en/config/summary.html @@ -90,7 +90,9 @@ - + diff --git a/en/config/switches.html b/en/config/switches.html index 735e9ec1..b24b5822 100644 --- a/en/config/switches.html +++ b/en/config/switches.html @@ -90,7 +90,9 @@ - + diff --git a/en/cook/01-install-rust.html b/en/cook/01-install-rust.html index 48defd23..a36f78d1 100644 --- a/en/cook/01-install-rust.html +++ b/en/cook/01-install-rust.html @@ -90,7 +90,9 @@ - + diff --git a/en/cook/02-install-makefile.html b/en/cook/02-install-makefile.html index 5ce48d80..8bbf9fdd 100644 --- a/en/cook/02-install-makefile.html +++ b/en/cook/02-install-makefile.html @@ -90,7 +90,9 @@ - + diff --git a/en/cook/summary.html b/en/cook/summary.html index 7609385c..739dce06 100644 --- a/en/cook/summary.html +++ b/en/cook/summary.html @@ -90,7 +90,9 @@ - + diff --git a/en/css/chrome.css b/en/css/chrome.css index 2314f7a1..8b78255d 100644 --- a/en/css/chrome.css +++ b/en/css/chrome.css @@ -269,8 +269,14 @@ pre > .buttons button { /* On mobile, make it easier to tap buttons. */ padding: 0.3rem 1rem; } + + .sidebar-resize-indicator { + /* Hide resize indicator on devices with limited accuracy */ + display: none; + } } pre > code { + display: block; padding: 1rem; } @@ -422,22 +428,35 @@ ul#searchresults span.teaser em { position: absolute; cursor: col-resize; width: 0; - right: 0; + right: calc(var(--sidebar-resize-indicator-width) * -1); top: 0; bottom: 0; + display: flex; + align-items: center; +} + +.sidebar-resize-handle .sidebar-resize-indicator { + width: 100%; + height: 12px; + background-color: var(--icons); + margin-inline-start: var(--sidebar-resize-indicator-space); +} + +[dir=rtl] .sidebar .sidebar-resize-handle { + left: calc(var(--sidebar-resize-indicator-width) * -1); + right: unset; } -[dir=rtl] .sidebar .sidebar-resize-handle { right: unset; left: 0; } .js .sidebar .sidebar-resize-handle { cursor: col-resize; - width: 5px; + width: calc(var(--sidebar-resize-indicator-width) - var(--sidebar-resize-indicator-space)); } /* sidebar-hidden */ #sidebar-toggle-anchor:not(:checked) ~ .sidebar { - transform: translateX(calc(0px - var(--sidebar-width))); + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); z-index: -1; } [dir=rtl] #sidebar-toggle-anchor:not(:checked) ~ .sidebar { - transform: translateX(var(--sidebar-width)); + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); } .sidebar::-webkit-scrollbar { background: var(--sidebar-bg); @@ -448,15 +467,15 @@ ul#searchresults span.teaser em { /* sidebar-visible */ #sidebar-toggle-anchor:checked ~ .page-wrapper { - transform: translateX(var(--sidebar-width)); + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); } [dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { - transform: translateX(calc(0px - var(--sidebar-width))); + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); } @media only screen and (min-width: 620px) { #sidebar-toggle-anchor:checked ~ .page-wrapper { transform: none; - margin-inline-start: var(--sidebar-width); + margin-inline-start: calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width)); } [dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { transform: none; diff --git a/en/css/print.css b/en/css/print.css index dcf0ba64..80ec3a54 100644 --- a/en/css/print.css +++ b/en/css/print.css @@ -7,7 +7,7 @@ } #page-wrapper.page-wrapper { - transform: none; + transform: none !important; margin-inline-start: 0px; overflow-y: initial; } diff --git a/en/css/variables.css b/en/css/variables.css index 10a75909..0da55e8c 100644 --- a/en/css/variables.css +++ b/en/css/variables.css @@ -3,6 +3,8 @@ :root { --sidebar-width: 300px; + --sidebar-resize-indicator-width: 8px; + --sidebar-resize-indicator-space: 2px; --page-padding: 15px; --content-max-width: 750px; --menu-bar-height: 50px; diff --git a/en/gui/live2d.html b/en/gui/live2d.html index a4bfab93..bfe3b555 100644 --- a/en/gui/live2d.html +++ b/en/gui/live2d.html @@ -90,7 +90,9 @@ - + diff --git a/en/gui/summary.html b/en/gui/summary.html index 04deb93b..ff61e6cc 100644 --- a/en/gui/summary.html +++ b/en/gui/summary.html @@ -90,7 +90,9 @@ - + diff --git a/en/highlight.js b/en/highlight.js index 180385b7..3256c00e 100644 --- a/en/highlight.js +++ b/en/highlight.js @@ -3,4 +3,51 @@ License: BSD-3-Clause Copyright (c) 2006-2020, Ivan Sagalaev */ -var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="
",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}());hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}());hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}());hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}());hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}());hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}());hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}());hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}());hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}());hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}());hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}());hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}());hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}());hljs.registerLanguage("http",function(){"use strict";return function(e){var n="HTTP/[0-9\\.]+";return{name:"HTTP",aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}}());hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}());hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}());hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}());hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}());hljs.registerLanguage("ini",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(...n){return n.map(n=>e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}());hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}());hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}());hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}());hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}());hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}());hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}());hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:">>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}());hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}());hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}());hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}());hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}());hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}());hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}());hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}());hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}());hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}());hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}());hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}());hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}());hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}());hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}());hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}());hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); +var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="
",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); +hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}()); +hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}()); +hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}()); +hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}()); +hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}()); +hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}()); +hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}()); +hljs.registerLanguage("css",function(){"use strict";return function(e){var n={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{name:"CSS",case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",illegal:/:/,returnBegin:!0,contains:[{className:"keyword",begin:/@\-?\w[\w]*(\-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:"and or not only",contains:[{begin:/[a-z-]+:/,className:"attribute"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("diff",function(){"use strict";return function(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}}()); +hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:"e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}()); +hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}()); +hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}()); +hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}()); +hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}()); +hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}()); +hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); +hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}()); +hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}()); +hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}()); +hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}()); +hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}()); +hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}()); +hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}()); +hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}()); +hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}()); +hljs.registerLanguage("python",function(){"use strict";return function(e){var n={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}()); +hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}()); +hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}()); +hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}()); +hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}()); +hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}()); +hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}()); +hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}()); +hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}()); +hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}()); +hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}()); +hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}()); +hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}()); +hljs.registerLanguage("nim",function(){"use strict";return function(e){return{name:"Nim",aliases:["nim"],keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}()); +hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}()); +hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}()); \ No newline at end of file diff --git a/en/index.html b/en/index.html index 116948c2..731d1c83 100644 --- a/en/index.html +++ b/en/index.html @@ -90,7 +90,9 @@ - + diff --git a/en/intro.html b/en/intro.html index 116948c2..731d1c83 100644 --- a/en/intro.html +++ b/en/intro.html @@ -90,7 +90,9 @@ - + diff --git a/en/packaging.html b/en/packaging.html index 291de2a0..4c148d83 100644 --- a/en/packaging.html +++ b/en/packaging.html @@ -90,7 +90,9 @@ - + diff --git a/en/platforms.html b/en/platforms.html index dc1c1466..838be73b 100644 --- a/en/platforms.html +++ b/en/platforms.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/action_plugin.html b/en/plugin/action_plugin.html index f1231ea7..8b6fd1ec 100644 --- a/en/plugin/action_plugin.html +++ b/en/plugin/action_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/game_plugin.html b/en/plugin/game_plugin.html index f5575de1..e5771bb3 100644 --- a/en/plugin/game_plugin.html +++ b/en/plugin/game_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/line_plugin.html b/en/plugin/line_plugin.html index 4b647035..6e9637d3 100644 --- a/en/plugin/line_plugin.html +++ b/en/plugin/line_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/script_plugin.html b/en/plugin/script_plugin.html index 9d070596..8670e43c 100644 --- a/en/plugin/script_plugin.html +++ b/en/plugin/script_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/summary.html b/en/plugin/summary.html index 356e8432..2d61b2c4 100644 --- a/en/plugin/summary.html +++ b/en/plugin/summary.html @@ -90,7 +90,9 @@ - + diff --git a/en/plugin/text_plugin.html b/en/plugin/text_plugin.html index bcca0650..04a30fb4 100644 --- a/en/plugin/text_plugin.html +++ b/en/plugin/text_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/en/print.html b/en/print.html index 19cd03f8..4315ad52 100644 --- a/en/print.html +++ b/en/print.html @@ -91,7 +91,9 @@ - + diff --git a/en/quick_start.html b/en/quick_start.html index 138b9279..928d2c27 100644 --- a/en/quick_start.html +++ b/en/quick_start.html @@ -90,7 +90,9 @@ - + diff --git a/en/runtime/run.html b/en/runtime/run.html index d7c62648..bc6fda85 100644 --- a/en/runtime/run.html +++ b/en/runtime/run.html @@ -90,7 +90,9 @@ - + diff --git a/en/runtime/summary.html b/en/runtime/summary.html index a7b816af..0079b41e 100644 --- a/en/runtime/summary.html +++ b/en/runtime/summary.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/404.html b/zh-Hans/404.html index 4f379a3b..398ca801 100644 --- a/zh-Hans/404.html +++ b/zh-Hans/404.html @@ -91,7 +91,9 @@ - + diff --git a/zh-Hans/config/character.html b/zh-Hans/config/character.html index 6c7d7c56..bb27f1e9 100644 --- a/zh-Hans/config/character.html +++ b/zh-Hans/config/character.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/i18n.html b/zh-Hans/config/i18n.html index f46a3321..a0a4e2cf 100644 --- a/zh-Hans/config/i18n.html +++ b/zh-Hans/config/i18n.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/resources.html b/zh-Hans/config/resources.html index 8efeb55a..4f46a294 100644 --- a/zh-Hans/config/resources.html +++ b/zh-Hans/config/resources.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/script.html b/zh-Hans/config/script.html index cc1029f4..d945d6cc 100644 --- a/zh-Hans/config/script.html +++ b/zh-Hans/config/script.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/structure.html b/zh-Hans/config/structure.html index b84d0728..7ecf29d1 100644 --- a/zh-Hans/config/structure.html +++ b/zh-Hans/config/structure.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/summary.html b/zh-Hans/config/summary.html index 6e7757f6..55273eb1 100644 --- a/zh-Hans/config/summary.html +++ b/zh-Hans/config/summary.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/config/switches.html b/zh-Hans/config/switches.html index f26084a5..2faf4c1e 100644 --- a/zh-Hans/config/switches.html +++ b/zh-Hans/config/switches.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/cook/01-install-rust.html b/zh-Hans/cook/01-install-rust.html index 8737f852..ebc0fe74 100644 --- a/zh-Hans/cook/01-install-rust.html +++ b/zh-Hans/cook/01-install-rust.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/cook/02-install-makefile.html b/zh-Hans/cook/02-install-makefile.html index fec5f3b6..e12ce9ce 100644 --- a/zh-Hans/cook/02-install-makefile.html +++ b/zh-Hans/cook/02-install-makefile.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/cook/summary.html b/zh-Hans/cook/summary.html index d79e891f..2c9bdeed 100644 --- a/zh-Hans/cook/summary.html +++ b/zh-Hans/cook/summary.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/css/chrome.css b/zh-Hans/css/chrome.css index 2314f7a1..8b78255d 100644 --- a/zh-Hans/css/chrome.css +++ b/zh-Hans/css/chrome.css @@ -269,8 +269,14 @@ pre > .buttons button { /* On mobile, make it easier to tap buttons. */ padding: 0.3rem 1rem; } + + .sidebar-resize-indicator { + /* Hide resize indicator on devices with limited accuracy */ + display: none; + } } pre > code { + display: block; padding: 1rem; } @@ -422,22 +428,35 @@ ul#searchresults span.teaser em { position: absolute; cursor: col-resize; width: 0; - right: 0; + right: calc(var(--sidebar-resize-indicator-width) * -1); top: 0; bottom: 0; + display: flex; + align-items: center; +} + +.sidebar-resize-handle .sidebar-resize-indicator { + width: 100%; + height: 12px; + background-color: var(--icons); + margin-inline-start: var(--sidebar-resize-indicator-space); +} + +[dir=rtl] .sidebar .sidebar-resize-handle { + left: calc(var(--sidebar-resize-indicator-width) * -1); + right: unset; } -[dir=rtl] .sidebar .sidebar-resize-handle { right: unset; left: 0; } .js .sidebar .sidebar-resize-handle { cursor: col-resize; - width: 5px; + width: calc(var(--sidebar-resize-indicator-width) - var(--sidebar-resize-indicator-space)); } /* sidebar-hidden */ #sidebar-toggle-anchor:not(:checked) ~ .sidebar { - transform: translateX(calc(0px - var(--sidebar-width))); + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); z-index: -1; } [dir=rtl] #sidebar-toggle-anchor:not(:checked) ~ .sidebar { - transform: translateX(var(--sidebar-width)); + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); } .sidebar::-webkit-scrollbar { background: var(--sidebar-bg); @@ -448,15 +467,15 @@ ul#searchresults span.teaser em { /* sidebar-visible */ #sidebar-toggle-anchor:checked ~ .page-wrapper { - transform: translateX(var(--sidebar-width)); + transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width))); } [dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { - transform: translateX(calc(0px - var(--sidebar-width))); + transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width))); } @media only screen and (min-width: 620px) { #sidebar-toggle-anchor:checked ~ .page-wrapper { transform: none; - margin-inline-start: var(--sidebar-width); + margin-inline-start: calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width)); } [dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper { transform: none; diff --git a/zh-Hans/css/print.css b/zh-Hans/css/print.css index dcf0ba64..80ec3a54 100644 --- a/zh-Hans/css/print.css +++ b/zh-Hans/css/print.css @@ -7,7 +7,7 @@ } #page-wrapper.page-wrapper { - transform: none; + transform: none !important; margin-inline-start: 0px; overflow-y: initial; } diff --git a/zh-Hans/css/variables.css b/zh-Hans/css/variables.css index 10a75909..0da55e8c 100644 --- a/zh-Hans/css/variables.css +++ b/zh-Hans/css/variables.css @@ -3,6 +3,8 @@ :root { --sidebar-width: 300px; + --sidebar-resize-indicator-width: 8px; + --sidebar-resize-indicator-space: 2px; --page-padding: 15px; --content-max-width: 750px; --menu-bar-height: 50px; diff --git a/zh-Hans/gui/live2d.html b/zh-Hans/gui/live2d.html index 8777b808..40f739e4 100644 --- a/zh-Hans/gui/live2d.html +++ b/zh-Hans/gui/live2d.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/gui/summary.html b/zh-Hans/gui/summary.html index 786c00ee..581870bb 100644 --- a/zh-Hans/gui/summary.html +++ b/zh-Hans/gui/summary.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/highlight.js b/zh-Hans/highlight.js index 180385b7..3256c00e 100644 --- a/zh-Hans/highlight.js +++ b/zh-Hans/highlight.js @@ -3,4 +3,51 @@ License: BSD-3-Clause Copyright (c) 2006-2020, Ivan Sagalaev */ -var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="
",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}());hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}());hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}());hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}());hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}());hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}());hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}());hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}());hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}());hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}());hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}());hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}());hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}());hljs.registerLanguage("http",function(){"use strict";return function(e){var n="HTTP/[0-9\\.]+";return{name:"HTTP",aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}}());hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}());hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}());hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}());hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}());hljs.registerLanguage("ini",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(...n){return n.map(n=>e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}());hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}());hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}());hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}());hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}());hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}());hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}());hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:">>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}());hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}());hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}());hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}());hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}());hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}());hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}());hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}());hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}());hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}());hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}());hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}());hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}());hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}());hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}());hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}());hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); +var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="
",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); +hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}()); +hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}()); +hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}()); +hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}()); +hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}()); +hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}()); +hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}()); +hljs.registerLanguage("css",function(){"use strict";return function(e){var n={begin:/(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{name:"CSS",case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",illegal:/:/,returnBegin:!0,contains:[{className:"keyword",begin:/@\-?\w[\w]*(\-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:"and or not only",contains:[{begin:/[a-z-]+:/,className:"attribute"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("diff",function(){"use strict";return function(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}}()); +hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:"e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}()); +hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}()); +hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}()); +hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}()); +hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}()); +hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}()); +hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); +hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}()); +hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}()); +hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}()); +hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}()); +hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}()); +hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}()); +hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}()); +hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}()); +hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}()); +hljs.registerLanguage("python",function(){"use strict";return function(e){var n={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}()); +hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}()); +hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}()); +hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}()); +hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}()); +hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}()); +hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}()); +hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}()); +hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}()); +hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}()); +hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}()); +hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}()); +hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}()); +hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}()); +hljs.registerLanguage("nim",function(){"use strict";return function(e){return{name:"Nim",aliases:["nim"],keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}}()); +hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}()); +hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}()); +hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}()); \ No newline at end of file diff --git a/zh-Hans/index.html b/zh-Hans/index.html index 2752114c..4b16618e 100644 --- a/zh-Hans/index.html +++ b/zh-Hans/index.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/intro.html b/zh-Hans/intro.html index 2752114c..4b16618e 100644 --- a/zh-Hans/intro.html +++ b/zh-Hans/intro.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/packaging.html b/zh-Hans/packaging.html index 73d69bc8..339226c5 100644 --- a/zh-Hans/packaging.html +++ b/zh-Hans/packaging.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/platforms.html b/zh-Hans/platforms.html index 8fec9576..b95890da 100644 --- a/zh-Hans/platforms.html +++ b/zh-Hans/platforms.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/action_plugin.html b/zh-Hans/plugin/action_plugin.html index f7321923..666ddb0e 100644 --- a/zh-Hans/plugin/action_plugin.html +++ b/zh-Hans/plugin/action_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/game_plugin.html b/zh-Hans/plugin/game_plugin.html index 69da61da..23ef8cf0 100644 --- a/zh-Hans/plugin/game_plugin.html +++ b/zh-Hans/plugin/game_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/line_plugin.html b/zh-Hans/plugin/line_plugin.html index e1cbb497..4d802a73 100644 --- a/zh-Hans/plugin/line_plugin.html +++ b/zh-Hans/plugin/line_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/script_plugin.html b/zh-Hans/plugin/script_plugin.html index f510edc7..2b6312b0 100644 --- a/zh-Hans/plugin/script_plugin.html +++ b/zh-Hans/plugin/script_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/summary.html b/zh-Hans/plugin/summary.html index 8ac67fe6..94005503 100644 --- a/zh-Hans/plugin/summary.html +++ b/zh-Hans/plugin/summary.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/plugin/text_plugin.html b/zh-Hans/plugin/text_plugin.html index 7e21d008..3ca4ed4e 100644 --- a/zh-Hans/plugin/text_plugin.html +++ b/zh-Hans/plugin/text_plugin.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/print.html b/zh-Hans/print.html index 760b2be5..3447cbef 100644 --- a/zh-Hans/print.html +++ b/zh-Hans/print.html @@ -91,7 +91,9 @@ - + diff --git a/zh-Hans/quick_start.html b/zh-Hans/quick_start.html index fa2ee0f1..d40d5f95 100644 --- a/zh-Hans/quick_start.html +++ b/zh-Hans/quick_start.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/runtime/run.html b/zh-Hans/runtime/run.html index 13c0dbec..bd6935db 100644 --- a/zh-Hans/runtime/run.html +++ b/zh-Hans/runtime/run.html @@ -90,7 +90,9 @@ - + diff --git a/zh-Hans/runtime/summary.html b/zh-Hans/runtime/summary.html index 0964e4d8..28e4b996 100644 --- a/zh-Hans/runtime/summary.html +++ b/zh-Hans/runtime/summary.html @@ -90,7 +90,9 @@ - +