This commit is contained in:
sagie gur ari 2020-01-17 15:17:15 +00:00
parent eb9dd3e75d
commit 84fedc6b1d
34 changed files with 885 additions and 156 deletions

View file

@ -1,6 +1,6 @@
## CHANGELOG
### v0.1.7
### v0.1.7 (2020-01-17)
* Fixed runner to return an error if on_error requested crash or exit and not just end the script.
* \[Breaking Change\] Unalias can remove aliases not created from the alias command.

View file

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../duckscript/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span>
</span>
<span class='in-band'>List of all items</span></h1><h3 id='Structs'>Structs</h3><ul class='structs docblock'><li><a href='types/command/struct.Commands.html'>types::command::Commands</a></li><li><a href='types/error/struct.ScriptError.html'>types::error::ScriptError</a></li><li><a href='types/instruction/struct.Instruction.html'>types::instruction::Instruction</a></li><li><a href='types/instruction/struct.InstructionMetaInfo.html'>types::instruction::InstructionMetaInfo</a></li><li><a href='types/instruction/struct.PreProcessInstruction.html'>types::instruction::PreProcessInstruction</a></li><li><a href='types/instruction/struct.ScriptInstruction.html'>types::instruction::ScriptInstruction</a></li><li><a href='types/runtime/struct.Context.html'>types::runtime::Context</a></li><li><a href='types/runtime/struct.Runtime.html'>types::runtime::Runtime</a></li></ul><h3 id='Enums'>Enums</h3><ul class='enums docblock'><li><a href='types/command/enum.CommandResult.html'>types::command::CommandResult</a></li><li><a href='types/command/enum.GoToValue.html'>types::command::GoToValue</a></li><li><a href='types/error/enum.ErrorInfo.html'>types::error::ErrorInfo</a></li><li><a href='types/instruction/enum.InstructionType.html'>types::instruction::InstructionType</a></li><li><a href='types/runtime/enum.StateValue.html'>types::runtime::StateValue</a></li></ul><h3 id='Traits'>Traits</h3><ul class='traits docblock'><li><a href='types/command/trait.Command.html'>types::command::Command</a></li><li><a href='types/instruction/trait.InstructionOperations.html'>types::instruction::InstructionOperations</a></li></ul><h3 id='Functions'>Functions</h3><ul class='functions docblock'><li><a href='parser/fn.parse_file.html'>parser::parse_file</a></li><li><a href='parser/fn.parse_text.html'>parser::parse_text</a></li><li><a href='runner/fn.run_instruction.html'>runner::run_instruction</a></li><li><a href='runner/fn.run_script.html'>runner::run_script</a></li><li><a href='runner/fn.run_script_file.html'>runner::run_script_file</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "duckscript";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
<span class='in-band'>List of all items</span></h1><h3 id='Structs'>Structs</h3><ul class='structs docblock'><li><a href='types/command/struct.Commands.html'>types::command::Commands</a></li><li><a href='types/error/struct.ScriptError.html'>types::error::ScriptError</a></li><li><a href='types/instruction/struct.Instruction.html'>types::instruction::Instruction</a></li><li><a href='types/instruction/struct.InstructionMetaInfo.html'>types::instruction::InstructionMetaInfo</a></li><li><a href='types/instruction/struct.PreProcessInstruction.html'>types::instruction::PreProcessInstruction</a></li><li><a href='types/instruction/struct.ScriptInstruction.html'>types::instruction::ScriptInstruction</a></li><li><a href='types/runtime/struct.Context.html'>types::runtime::Context</a></li><li><a href='types/runtime/struct.Runtime.html'>types::runtime::Runtime</a></li></ul><h3 id='Enums'>Enums</h3><ul class='enums docblock'><li><a href='types/command/enum.CommandResult.html'>types::command::CommandResult</a></li><li><a href='types/command/enum.GoToValue.html'>types::command::GoToValue</a></li><li><a href='types/error/enum.ErrorInfo.html'>types::error::ErrorInfo</a></li><li><a href='types/instruction/enum.InstructionType.html'>types::instruction::InstructionType</a></li><li><a href='types/runtime/enum.StateValue.html'>types::runtime::StateValue</a></li></ul><h3 id='Traits'>Traits</h3><ul class='traits docblock'><li><a href='types/command/trait.Command.html'>types::command::Command</a></li><li><a href='types/instruction/trait.InstructionOperations.html'>types::instruction::InstructionOperations</a></li></ul><h3 id='Functions'>Functions</h3><ul class='functions docblock'><li><a href='parser/fn.parse_file.html'>parser::parse_file</a></li><li><a href='parser/fn.parse_text.html'>parser::parse_text</a></li><li><a href='runner/fn.repl.html'>runner::repl</a></li><li><a href='runner/fn.run_instruction.html'>runner::run_instruction</a></li><li><a href='runner/fn.run_script.html'>runner::run_script</a></li><li><a href='runner/fn.run_script_file.html'>runner::run_script_file</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "duckscript";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `repl` fn in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, repl"><title>duckscript::runner::repl - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a></p><script>window.sidebarCurrent = {name: 'repl', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#44-81' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a>::<wbr><a class="fn" href=''>repl</a></span></h1><pre class='rust fn'>pub fn repl(context: <a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>, <a class="struct" href="../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</pre><div class='docblock'><p>Provides the REPL entry point</p>
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duckscript";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `run_script` fn in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, run_script"><title>duckscript::runner::run_script - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a></p><script>window.sidebarCurrent = {name: 'run_script', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#21-26' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a>::<wbr><a class="fn" href=''>run_script</a></span></h1><pre class='rust fn'>pub fn run_script(text: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, context: <a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>, <a class="struct" href="../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</pre><div class='docblock'><p>Executes the provided script with the given context</p>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `run_script` fn in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, run_script"><title>duckscript::runner::run_script - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a></p><script>window.sidebarCurrent = {name: 'run_script', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#28-33' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a>::<wbr><a class="fn" href=''>run_script</a></span></h1><pre class='rust fn'>pub fn run_script(text: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, context: <a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>, <a class="struct" href="../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</pre><div class='docblock'><p>Executes the provided script with the given context</p>
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duckscript";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `run_script_file` fn in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, run_script_file"><title>duckscript::runner::run_script_file - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a></p><script>window.sidebarCurrent = {name: 'run_script_file', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#29-34' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a>::<wbr><a class="fn" href=''>run_script_file</a></span></h1><pre class='rust fn'>pub fn run_script_file(<br>&nbsp;&nbsp;&nbsp;&nbsp;file: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;context: <a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>, <a class="struct" href="../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</pre><div class='docblock'><p>Executes the provided script file with the given context</p>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `run_script_file` fn in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, run_script_file"><title>duckscript::runner::run_script_file - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a></p><script>window.sidebarCurrent = {name: 'run_script_file', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#36-41' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>duckscript</a>::<wbr><a href='index.html'>runner</a>::<wbr><a class="fn" href=''>run_script_file</a></span></h1><pre class='rust fn'>pub fn run_script_file(<br>&nbsp;&nbsp;&nbsp;&nbsp;file: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;context: <a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../duckscript/types/runtime/struct.Context.html" title="struct duckscript::types::runtime::Context">Context</a>, <a class="struct" href="../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</pre><div class='docblock'><p>Executes the provided script file with the given context</p>
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duckscript";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View file

@ -1,7 +1,8 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `runner` mod in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, runner"><title>duckscript::runner - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module runner</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>duckscript</a></p><script>window.sidebarCurrent = {name: 'runner', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#1-294' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>duckscript</a>::<wbr><a class="mod" href=''>runner</a></span></h1><div class='docblock'><h1 id="runner" class="section-header"><a href="#runner">runner</a></h1>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `runner` mod in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, runner"><title>duckscript::runner - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duckscript/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module runner</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>duckscript</a></p><script>window.sidebarCurrent = {name: 'runner', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/duckscript/runner.rs.html#1-352' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>duckscript</a>::<wbr><a class="mod" href=''>runner</a></span></h1><div class='docblock'><h1 id="runner" class="section-header"><a href="#runner">runner</a></h1>
<p>The main entry point which enables running scripts.</p>
</div><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.run_instruction.html" title='duckscript::runner::run_instruction fn'>run_instruction</a></td><td class='docblock-short'><p>Enables to evaluate a single instruction and return its result.</p>
<table><tr class='module-item'><td><a class="fn" href="fn.repl.html" title='duckscript::runner::repl fn'>repl</a></td><td class='docblock-short'><p>Provides the REPL entry point</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.run_instruction.html" title='duckscript::runner::run_instruction fn'>run_instruction</a></td><td class='docblock-short'><p>Enables to evaluate a single instruction and return its result.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.run_script.html" title='duckscript::runner::run_script fn'>run_script</a></td><td class='docblock-short'><p>Executes the provided script with the given context</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.run_script_file.html" title='duckscript::runner::run_script_file fn'>run_script_file</a></td><td class='docblock-short'><p>Executes the provided script file with the given context</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duckscript";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View file

@ -1 +1 @@
initSidebarItems({"fn":[["run_instruction","Enables to evaluate a single instruction and return its result."],["run_script","Executes the provided script with the given context"],["run_script_file","Executes the provided script file with the given context"]]});
initSidebarItems({"fn":[["repl","Provides the REPL entry point"],["run_instruction","Enables to evaluate a single instruction and return its result."],["run_script","Executes the provided script with the given context"],["run_script_file","Executes the provided script file with the given context"]]});

View file

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `command` mod in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, command"><title>duckscript::types::command - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../duckscript/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module command</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'><a href='../../index.html'>duckscript</a>::<wbr><a href='../index.html'>types</a></p><script>window.sidebarCurrent = {name: 'command', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/duckscript/types/command.rs.html#1-197' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>duckscript</a>::<wbr><a href='../index.html'>types</a>::<wbr><a class="mod" href=''>command</a></span></h1><div class='docblock'><h1 id="command" class="section-header"><a href="#command">command</a></h1>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `command` mod in crate `duckscript`."><meta name="keywords" content="rust, rustlang, rust-lang, command"><title>duckscript::types::command - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../duckscript/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module command</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'><a href='../../index.html'>duckscript</a>::<wbr><a href='../index.html'>types</a></p><script>window.sidebarCurrent = {name: 'command', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/duckscript/types/command.rs.html#1-201' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>duckscript</a>::<wbr><a href='../index.html'>types</a>::<wbr><a class="mod" href=''>command</a></span></h1><div class='docblock'><h1 id="command" class="section-header"><a href="#command">command</a></h1>
<p>The command trait and access module.</p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.Commands.html" title='duckscript::types::command::Commands struct'>Commands</a></td><td class='docblock-short'><p>Holds and enables access to the runtime commands implementations</p>

View file

@ -5,17 +5,17 @@
</div><h2 id='fields' class='fields small-section-header'>
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.commands" class="structfield small-section-header"><a href="#structfield.commands" class="anchor field"></a><code id="commands.v">commands: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;&gt;</code></span><div class='docblock'><p>mapping between command names to implementations</p>
</div><span id="structfield.aliases" class="structfield small-section-header"><a href="#structfield.aliases" class="anchor field"></a><code id="aliases.v">aliases: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</code></span><div class='docblock'><p>mapping between aliases to command names</p>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../../src/duckscript/types/command.rs.html#97-197' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new' class="method"><code id='new.v'>pub fn <a href='#method.new' class='fnname'>new</a>() -&gt; <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#99-104' title='goto source code'>[src]</a></h4><div class='docblock'><p>Creates and returns a new instance.</p>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../../src/duckscript/types/command.rs.html#97-201' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new' class="method"><code id='new.v'>pub fn <a href='#method.new' class='fnname'>new</a>() -&gt; <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#99-104' title='goto source code'>[src]</a></h4><div class='docblock'><p>Creates and returns a new instance.</p>
</div><h4 id='method.return_after_usage' class="method"><code id='return_after_usage.v'>pub fn <a href='#method.return_after_usage' class='fnname'>return_after_usage</a>(&amp;mut self, command: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;)</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#108-112' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns the command after it was being used.
No validations will be made.</p>
</div><h4 id='method.set' class="method"><code id='set.v'>pub fn <a href='#method.set' class='fnname'>set</a>(&amp;mut self, command: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#116-144' title='goto source code'>[src]</a></h4><div class='docblock'><p>Adds a new command definition.
</div><h4 id='method.set' class="method"><code id='set.v'>pub fn <a href='#method.set' class='fnname'>set</a>(&amp;mut self, command: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../../../duckscript/types/error/struct.ScriptError.html" title="struct duckscript::types::error::ScriptError">ScriptError</a>&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#116-145' title='goto source code'>[src]</a></h4><div class='docblock'><p>Adds a new command definition.
It will fail in case another command already defined the same name/aliases</p>
</div><h4 id='method.get' class="method"><code id='get.v'>pub fn <a href='#method.get' class='fnname'>get</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#147-157' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the command based on the given command name/alias</p>
</div><h4 id='method.exists' class="method"><code id='exists.v'>pub fn <a href='#method.exists' class='fnname'>exists</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#160-164' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return true if the command based on the given command name/alias exists</p>
</div><h4 id='method.get_for_use' class="method"><code id='get_for_use.v'>pub fn <a href='#method.get_for_use' class='fnname'>get_for_use</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#168-178' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the command based on the given command name/alias.
</div><h4 id='method.get' class="method"><code id='get.v'>pub fn <a href='#method.get' class='fnname'>get</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#148-158' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the command based on the given command name/alias</p>
</div><h4 id='method.exists' class="method"><code id='exists.v'>pub fn <a href='#method.exists' class='fnname'>exists</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#161-165' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return true if the command based on the given command name/alias exists</p>
</div><h4 id='method.get_for_use' class="method"><code id='get_for_use.v'>pub fn <a href='#method.get_for_use' class='fnname'>get_for_use</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../../duckscript/types/command/trait.Command.html" title="trait duckscript::types::command::Command">Command</a>&gt;&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#169-179' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the command based on the given command name/alias.
It will also remove it in the process.</p>
</div><h4 id='method.get_all_command_names' class="method"><code id='get_all_command_names.v'>pub fn <a href='#method.get_all_command_names' class='fnname'>get_all_command_names</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#181-191' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns all the command names currently registered</p>
</div><h4 id='method.remove' class="method"><code id='remove.v'>pub fn <a href='#method.remove' class='fnname'>remove</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>)</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#194-196' title='goto source code'>[src]</a></h4><div class='docblock'><p>Removes the requested command.</p>
</div><h4 id='method.get_all_command_names' class="method"><code id='get_all_command_names.v'>pub fn <a href='#method.get_all_command_names' class='fnname'>get_all_command_names</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#182-192' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns all the command names currently registered</p>
</div><h4 id='method.remove' class="method"><code id='remove.v'>pub fn <a href='#method.remove' class='fnname'>remove</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../../src/duckscript/types/command.rs.html#195-200' title='goto source code'>[src]</a></h4><div class='docblock'><p>Removes the requested command.</p>
</div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-Send' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../../../duckscript/types/command/struct.Commands.html" title="struct duckscript::types::command::Commands">Commands</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#549-551' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#550' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#540-545' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#542-544' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert.rs.html#568-574' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>

File diff suppressed because one or more lines are too long

View file

@ -292,6 +292,64 @@
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="doccomment">//! # runner</span>
<span class="doccomment">//!</span>
@ -311,6 +369,13 @@
};
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::{<span class="ident">Context</span>, <span class="ident">Runtime</span>, <span class="ident">StateValue</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">stdin</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>)]</span>
<span class="kw">enum</span> <span class="ident">EndReason</span> {
<span class="ident">ExitCalled</span>,
<span class="ident">ReachedEnd</span>,
}
<span class="doccomment">/// Executes the provided script with the given context</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run_script</span>(<span class="ident">text</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">context</span>: <span class="ident">Context</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Context</span>, <span class="ident">ScriptError</span><span class="op">&gt;</span> {
@ -328,10 +393,53 @@
}
}
<span class="doccomment">/// Provides the REPL entry point</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">repl</span>(<span class="kw-2">mut</span> <span class="ident">context</span>: <span class="ident">Context</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Context</span>, <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">text</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">instructions</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[];
<span class="kw">loop</span> {
<span class="ident">text</span>.<span class="ident">clear</span>();
<span class="kw">match</span> <span class="ident">stdin</span>().<span class="ident">read_line</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">text</span>) {
<span class="prelude-val">Ok</span>(<span class="kw">_</span>) <span class="op">=&gt;</span> {
<span class="kw">match</span> <span class="ident">parser</span>::<span class="ident">parse_text</span>(<span class="kw-2">&amp;</span><span class="ident">text</span>) {
<span class="prelude-val">Ok</span>(<span class="kw-2">mut</span> <span class="ident">new_instructions</span>) <span class="op">=&gt;</span> {
<span class="comment">// get start line</span>
<span class="kw">let</span> <span class="ident">start</span> <span class="op">=</span> <span class="ident">instructions</span>.<span class="ident">len</span>();
<span class="comment">// add new instructions</span>
<span class="ident">instructions</span>.<span class="ident">append</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">new_instructions</span>);
<span class="kw">let</span> <span class="ident">runtime</span> <span class="op">=</span> <span class="ident">create_runtime</span>(<span class="ident">instructions</span>.<span class="ident">clone</span>(), <span class="ident">context</span>);
<span class="kw">let</span> (<span class="ident">updated_context</span>, <span class="ident">end_reason</span>) <span class="op">=</span> <span class="ident">run_instructions</span>(<span class="ident">runtime</span>, <span class="ident">start</span>)<span class="question-mark">?</span>;
<span class="ident">context</span> <span class="op">=</span> <span class="ident">updated_context</span>;
<span class="kw">match</span> <span class="ident">end_reason</span> {
<span class="ident">EndReason</span>::<span class="ident">ExitCalled</span> <span class="op">=&gt;</span> <span class="kw">return</span> <span class="prelude-val">Ok</span>(<span class="ident">context</span>),
<span class="kw">_</span> <span class="op">=&gt;</span> (),
};
}
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">error</span>),
}
}
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ScriptError</span> {
<span class="ident">info</span>: <span class="ident">ErrorInfo</span>::<span class="ident">Runtime</span>(<span class="ident">error</span>.<span class="ident">to_string</span>(), <span class="prelude-val">Some</span>(<span class="ident">InstructionMetaInfo</span>::<span class="ident">new</span>())),
});
}
};
}
}
<span class="kw">fn</span> <span class="ident">run</span>(<span class="ident">instructions</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>, <span class="ident">context</span>: <span class="ident">Context</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Context</span>, <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">runtime</span> <span class="op">=</span> <span class="ident">create_runtime</span>(<span class="ident">instructions</span>, <span class="ident">context</span>);
<span class="ident">run_instructions</span>(<span class="ident">runtime</span>, <span class="number">0</span>)
<span class="kw">match</span> <span class="ident">run_instructions</span>(<span class="ident">runtime</span>, <span class="number">0</span>) {
<span class="prelude-val">Ok</span>((<span class="ident">context</span>, <span class="kw">_</span>)) <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(<span class="ident">context</span>),
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">error</span>),
}
}
<span class="kw">fn</span> <span class="ident">create_runtime</span>(<span class="ident">instructions</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>, <span class="ident">context</span>: <span class="ident">Context</span>) <span class="op">-&gt;</span> <span class="ident">Runtime</span> {
@ -360,15 +468,19 @@
<span class="ident">runtime</span>
}
<span class="kw">fn</span> <span class="ident">run_instructions</span>(<span class="kw-2">mut</span> <span class="ident">runtime</span>: <span class="ident">Runtime</span>, <span class="ident">start_at</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Context</span>, <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">run_instructions</span>(
<span class="kw-2">mut</span> <span class="ident">runtime</span>: <span class="ident">Runtime</span>,
<span class="ident">start_at</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(<span class="ident">Context</span>, <span class="ident">EndReason</span>), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">line</span> <span class="op">=</span> <span class="ident">start_at</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">state</span> <span class="op">=</span> <span class="ident">runtime</span>.<span class="ident">context</span>.<span class="ident">state</span>.<span class="ident">clone</span>();
<span class="kw">let</span> <span class="ident">instructions</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">runtime</span>.<span class="ident">instructions</span> {
<span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">instructions</span>) <span class="op">=&gt;</span> <span class="ident">instructions</span>,
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="kw">return</span> <span class="prelude-val">Ok</span>(<span class="ident">runtime</span>.<span class="ident">context</span>),
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="kw">return</span> <span class="prelude-val">Ok</span>((<span class="ident">runtime</span>.<span class="ident">context</span>, <span class="ident">EndReason</span>::<span class="ident">ReachedEnd</span>)),
};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">end_reason</span> <span class="op">=</span> <span class="ident">EndReason</span>::<span class="ident">ReachedEnd</span>;
<span class="kw">loop</span> {
<span class="kw">let</span> (<span class="ident">instruction</span>, <span class="ident">meta_info</span>) <span class="op">=</span> <span class="kw">if</span> <span class="ident">instructions</span>.<span class="ident">len</span>() <span class="op">&gt;</span> <span class="ident">line</span> {
<span class="kw">let</span> <span class="ident">instruction</span> <span class="op">=</span> <span class="ident">instructions</span>[<span class="ident">line</span>].<span class="ident">clone</span>();
@ -390,6 +502,7 @@
<span class="kw">match</span> <span class="ident">command_result</span> {
<span class="ident">CommandResult</span>::<span class="ident">Exit</span>(<span class="ident">output</span>) <span class="op">=&gt;</span> {
<span class="ident">update_output</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">runtime</span>.<span class="ident">context</span>.<span class="ident">variables</span>, <span class="ident">output_variable</span>, <span class="ident">output</span>);
<span class="ident">end_reason</span> <span class="op">=</span> <span class="ident">EndReason</span>::<span class="ident">ExitCalled</span>;
<span class="kw">break</span>;
}
@ -402,18 +515,21 @@
<span class="kw">let</span> <span class="ident">post_error_line</span> <span class="op">=</span> <span class="ident">line</span> <span class="op">+</span> <span class="number">1</span>;
<span class="kw">let</span> <span class="ident">should_continue</span> <span class="op">=</span> <span class="ident">run_on_error_instruction</span>(
<span class="kw">match</span> <span class="ident">run_on_error_instruction</span>(
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">runtime</span>.<span class="ident">context</span>.<span class="ident">commands</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">runtime</span>.<span class="ident">context</span>.<span class="ident">variables</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">state</span>,
<span class="kw-2">&amp;</span><span class="ident">instructions</span>,
<span class="ident">error</span>,
<span class="ident">meta_info</span>,
);
<span class="kw">if</span> <span class="op">!</span><span class="ident">should_continue</span> {
<span class="kw">break</span>;
}
<span class="ident">meta_info</span>.<span class="ident">clone</span>(),
) {
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">ScriptError</span> {
<span class="ident">info</span>: <span class="ident">ErrorInfo</span>::<span class="ident">Runtime</span>(<span class="ident">error</span>, <span class="prelude-val">Some</span>(<span class="ident">meta_info</span>.<span class="ident">clone</span>())),
});
}
<span class="kw">_</span> <span class="op">=&gt;</span> (),
};
<span class="ident">line</span> <span class="op">=</span> <span class="ident">post_error_line</span>;
@ -454,7 +570,7 @@
<span class="ident">runtime</span>.<span class="ident">context</span>.<span class="ident">state</span> <span class="op">=</span> <span class="ident">state</span>;
<span class="prelude-val">Ok</span>(<span class="ident">runtime</span>.<span class="ident">context</span>)
<span class="prelude-val">Ok</span>((<span class="ident">runtime</span>.<span class="ident">context</span>, <span class="ident">end_reason</span>))
}
<span class="kw">fn</span> <span class="ident">update_output</span>(
@ -477,7 +593,7 @@
<span class="ident">instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">error</span>: <span class="ident">String</span>,
<span class="ident">meta_info</span>: <span class="ident">InstructionMetaInfo</span>,
) <span class="op">-&gt;</span> <span class="ident">bool</span> {
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="ident">commands</span>.<span class="ident">exists</span>(<span class="string">&quot;on_error&quot;</span>) {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">script_instruction</span> <span class="op">=</span> <span class="ident">ScriptInstruction</span>::<span class="ident">new</span>();
<span class="ident">script_instruction</span>.<span class="ident">command</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="string">&quot;on_error&quot;</span>.<span class="ident">to_string</span>());
@ -498,13 +614,13 @@
<span class="ident">CommandResult</span>::<span class="ident">Exit</span>(<span class="ident">output</span>) <span class="op">=&gt;</span> {
<span class="ident">update_output</span>(<span class="ident">variables</span>, <span class="ident">output_variable</span>, <span class="ident">output</span>);
<span class="bool-val">false</span>
<span class="prelude-val">Err</span>(<span class="string">&quot;Exiting Script.&quot;</span>.<span class="ident">to_string</span>())
}
<span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="kw">_</span>) <span class="op">=&gt;</span> <span class="bool-val">false</span>,
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="bool-val">true</span>,
<span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">error</span>),
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(()),
}
} <span class="kw">else</span> {
<span class="bool-val">true</span>
<span class="prelude-val">Ok</span>(())
}
}
@ -551,7 +667,7 @@
<span class="ident">command_result</span>
}
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Command: {} not found.&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">command</span>)),
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Command: {} not found.&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">command</span>)),
},
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">None</span>),
}

View file

@ -195,6 +195,10 @@
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="doccomment">//! # command</span>
<span class="doccomment">//!</span>
@ -256,7 +260,7 @@
<span class="doccomment">/// Runs the given instruction</span>
<span class="kw">fn</span> <span class="ident">run</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">_arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Not implemented for command: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>()).<span class="ident">to_string</span>())
<span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Not implemented for command: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>()).<span class="ident">to_string</span>())
}
<span class="doccomment">/// Run the instruction with access to the runtime context.</span>
@ -280,7 +284,7 @@
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Not implemented for command: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>()).<span class="ident">to_string</span>())
<span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Not implemented for command: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>()).<span class="ident">to_string</span>())
}
}
@ -333,6 +337,7 @@
}
<span class="self">self</span>.<span class="ident">commands</span>.<span class="ident">insert</span>(<span class="ident">name</span>.<span class="ident">clone</span>(), <span class="ident">command</span>);
<span class="self">self</span>.<span class="ident">aliases</span>.<span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="ident">name</span>);
<span class="kw">for</span> <span class="ident">alias</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">aliases</span> {
<span class="self">self</span>.<span class="ident">aliases</span>.<span class="ident">insert</span>(<span class="ident">alias</span>.<span class="ident">to_string</span>(), <span class="ident">name</span>.<span class="ident">clone</span>());
@ -389,8 +394,11 @@
}
<span class="doccomment">/// Removes the requested command.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="self">self</span>.<span class="ident">get_for_use</span>(<span class="ident">name</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">match</span> <span class="self">self</span>.<span class="ident">get_for_use</span>(<span class="ident">name</span>) {
<span class="prelude-val">Some</span>(<span class="kw">_</span>) <span class="op">=&gt;</span> <span class="bool-val">true</span>,
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="bool-val">false</span>,
}
}
}
</pre></div>

View file

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `duck` crate."><meta name="keywords" content="rust, rustlang, rust-lang, duck"><title>duck - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../duck/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Crate duck</p><div class="sidebar-elems"><a id='all-types' href='all.html'><p>See all duck's items</p></a><p class='location'></p><script>window.sidebarCurrent = {name: 'duck', ty: 'mod', relpath: '../'};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/duck/main.rs.html#1-185' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>duck</a></span></h1><div class='docblock'><h1 id="duckscript_cli" class="section-header"><a href="#duckscript_cli">duckscript_cli</a></h1>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `duck` crate."><meta name="keywords" content="rust, rustlang, rust-lang, duck"><title>duck - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../duck/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Crate duck</p><div class="sidebar-elems"><a id='all-types' href='all.html'><p>See all duck's items</p></a><p class='location'></p><script>window.sidebarCurrent = {name: 'duck', ty: 'mod', relpath: '../'};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/duck/main.rs.html#1-189' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>duck</a></span></h1><div class='docblock'><h1 id="duckscript_cli" class="section-header"><a href="#duckscript_cli">duckscript_cli</a></h1>
<p>The duckscript command line executable.</p>
<p>This executable enables to run the duckscript runner with the default sdk.</p>
<h1 id="installation" class="section-header"><a href="#installation">Installation</a></h1>

View file

@ -1,3 +1,3 @@
var N = null;var sourcesIndex = {};
sourcesIndex["duck"] = {"name":"","files":["error.rs","main.rs"]};
sourcesIndex["duck"] = {"name":"","files":["main.rs"]};
createSourceSidebar();

View file

@ -1,79 +0,0 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_cli/src/error.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>error.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../duck/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="doccomment">//! # error</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! The error structure and types.</span>
<span class="doccomment">//!</span>
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">error</span>::<span class="ident">ScriptError</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Display</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./error_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">error_test</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="doccomment">/// Holds the error information</span>
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum</span> <span class="ident">ErrorInfo</span> {
<span class="doccomment">/// Error Info Type</span>
<span class="ident">Script</span>(<span class="ident">ScriptError</span>),
<span class="doccomment">/// Error Info Type</span>
<span class="ident">Cli</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>),
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="doccomment">/// Cli error struct</span>
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct</span> <span class="ident">CliError</span> {
<span class="doccomment">/// Holds the error information</span>
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="ident">info</span>: <span class="ident">ErrorInfo</span>,
}
<span class="kw">impl</span> <span class="ident">Display</span> <span class="kw">for</span> <span class="ident">CliError</span> {
<span class="doccomment">/// Formats the script error using the given formatter.</span>
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">formatter</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">fmt</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">match</span> <span class="self">self</span>.<span class="ident">info</span> {
<span class="ident">ErrorInfo</span>::<span class="ident">Script</span>(<span class="kw-2">ref</span> <span class="ident">cause</span>) <span class="op">=&gt;</span> <span class="ident">cause</span>.<span class="ident">fmt</span>(<span class="ident">formatter</span>),
<span class="ident">ErrorInfo</span>::<span class="ident">Cli</span>(<span class="kw-2">ref</span> <span class="ident">message</span>) <span class="op">=&gt;</span> <span class="macro">write</span><span class="macro">!</span>(<span class="ident">formatter</span>, <span class="string">&quot;{}&quot;</span>, <span class="ident">message</span>),
}
}
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duck";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>

View file

@ -183,6 +183,10 @@
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="attribute">#![<span class="ident">deny</span>(
<span class="ident">absolute_paths_not_starting_with_crate</span>,
@ -302,9 +306,6 @@
<span class="doccomment">//! [Apache 2](https://github.com/sagiegurari/duckscript/blob/master/LICENSE) open source license.</span>
<span class="doccomment">//!</span>
<span class="kw">mod</span> <span class="ident">error</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">error</span>::{<span class="ident">CliError</span>, <span class="ident">ErrorInfo</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">runner</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">error</span>::<span class="ident">ScriptError</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">Context</span>;
@ -322,13 +323,11 @@
};
}
<span class="kw">fn</span> <span class="ident">run_cli</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">CliError</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">run_cli</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">args</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">env</span>::<span class="ident">args</span>().<span class="ident">collect</span>();
<span class="kw">if</span> <span class="ident">args</span>.<span class="ident">len</span>() <span class="op">&lt;</span> <span class="number">2</span> {
<span class="prelude-val">Err</span>(<span class="ident">CliError</span> {
<span class="ident">info</span>: <span class="ident">ErrorInfo</span>::<span class="ident">Cli</span>(<span class="string">&quot;script file path not provided.&quot;</span>),
})
<span class="ident">run_repl</span>()
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">args</span>[<span class="number">1</span>] <span class="op">==</span> <span class="string">&quot;--help&quot;</span> <span class="op">||</span> <span class="ident">args</span>[<span class="number">1</span>] <span class="op">==</span> <span class="string">&quot;-h&quot;</span> {
<span class="kw">let</span> <span class="ident">usage</span> <span class="op">=</span> <span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.txt&quot;</span>);
<span class="macro">println</span><span class="macro">!</span>(
@ -348,19 +347,20 @@
}
};
<span class="kw">match</span> <span class="ident">run_script</span>(<span class="kw-2">&amp;</span><span class="ident">value</span>, <span class="ident">is_file</span>) {
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">CliError</span> {
<span class="ident">info</span>: <span class="ident">ErrorInfo</span>::<span class="ident">Script</span>(<span class="ident">error</span>),
}),
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(()),
}
<span class="ident">run_script</span>(<span class="kw-2">&amp;</span><span class="ident">value</span>, <span class="ident">is_file</span>)
}
}
<span class="kw">fn</span> <span class="ident">run_script</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">is_file</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">create_context</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Context</span>, <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">Context</span>::<span class="ident">new</span>();
<span class="ident">duckscriptsdk</span>::<span class="ident">load</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">context</span>.<span class="ident">commands</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(<span class="ident">context</span>)
}
<span class="kw">fn</span> <span class="ident">run_script</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">is_file</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">create_context</span>()<span class="question-mark">?</span>;
<span class="kw">if</span> <span class="ident">is_file</span> {
<span class="ident">runner</span>::<span class="ident">run_script_file</span>(<span class="ident">value</span>, <span class="ident">context</span>)<span class="question-mark">?</span>;
} <span class="kw">else</span> {
@ -369,5 +369,13 @@
<span class="prelude-val">Ok</span>(())
}
<span class="kw">fn</span> <span class="ident">run_repl</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">create_context</span>()<span class="question-mark">?</span>;
<span class="ident">runner</span>::<span class="ident">repl</span>(<span class="ident">context</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "duck";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>

View file

@ -1,5 +1,5 @@
var N=null,E="",T="t",U="u",searchIndex={};
var R=["scripterror"];
searchIndex["duckscriptsdk"]={"doc":"duckscript_sdk","i":[[5,"load","duckscriptsdk","Loads all core commands",N,[[["commands"]],[[R[0]],["result",[R[0]]]]]]],"p":[]};
searchIndex["duckscriptsdk"]={"doc":"duckscript_sdk","i":[[5,"load","duckscriptsdk","Loads all core commands",N,[[["commands"]],[["result",[R[0]]],[R[0]]]]]],"p":[]};
initSearch(searchIndex);addSearchOptions(searchIndex);

View file

@ -1,3 +1,3 @@
var N = null;var sourcesIndex = {};
sourcesIndex["duckscriptsdk"] = {"name":"","dirs":[{"name":"sdk","dirs":[{"name":"internal","dirs":[{"name":"sdkdocs","files":["mod.rs"]},{"name":"test","dirs":[{"name":"test_directory","files":["mod.rs"]},{"name":"test_file","files":["mod.rs"]}],"files":["mod.rs"]}],"files":["mod.rs"]},{"name":"std","dirs":[{"name":"alias","files":["mod.rs"]},{"name":"collections","dirs":[{"name":"array","files":["mod.rs"]},{"name":"array_is_empty","files":["mod.rs"]},{"name":"array_length","files":["mod.rs"]},{"name":"range","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"echo","files":["mod.rs"]},{"name":"env","dirs":[{"name":"cd","files":["mod.rs"]},{"name":"get","files":["mod.rs"]},{"name":"pwd","files":["mod.rs"]},{"name":"set","files":["mod.rs"]},{"name":"unset","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"eval","files":["mod.rs"]},{"name":"flowcontrol","dirs":[{"name":"end","files":["mod.rs"]},{"name":"forin","files":["mod.rs"]},{"name":"function","files":["mod.rs"]},{"name":"ifelse","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"fs","dirs":[{"name":"basename","files":["mod.rs"]},{"name":"canonical","files":["mod.rs"]},{"name":"cp","files":["mod.rs"]},{"name":"dirname","files":["mod.rs"]},{"name":"list","files":["mod.rs"]},{"name":"mkdir","files":["mod.rs"]},{"name":"mv","files":["mod.rs"]},{"name":"print","files":["mod.rs"]},{"name":"read","files":["mod.rs"]},{"name":"rm","files":["mod.rs"]},{"name":"rmdir","files":["mod.rs"]},{"name":"touch","files":["mod.rs"]},{"name":"write","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"goto","files":["mod.rs"]},{"name":"is_defined","files":["mod.rs"]},{"name":"man","files":["mod.rs"]},{"name":"math","dirs":[{"name":"calc","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"net","dirs":[{"name":"hostname","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"not","files":["mod.rs"]},{"name":"on_error","dirs":[{"name":"exit_on_error","files":["mod.rs"]},{"name":"get_last_error","files":["mod.rs"]},{"name":"get_last_error_line","files":["mod.rs"]},{"name":"get_last_error_source","files":["mod.rs"]},{"name":"on_error","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"os_family","files":["mod.rs"]},{"name":"process","dirs":[{"name":"exec","files":["mod.rs"]},{"name":"exit","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"read","files":["mod.rs"]},{"name":"release","files":["mod.rs"]},{"name":"set","files":["mod.rs"]},{"name":"string","dirs":[{"name":"contains","files":["mod.rs"]},{"name":"ends_with","files":["mod.rs"]},{"name":"equals","files":["mod.rs"]},{"name":"indexof","files":["mod.rs"]},{"name":"is_empty","files":["mod.rs"]},{"name":"last_indexof","files":["mod.rs"]},{"name":"length","files":["mod.rs"]},{"name":"starts_with","files":["mod.rs"]},{"name":"substring","files":["mod.rs"]},{"name":"trim","files":["mod.rs"]},{"name":"trim_end","files":["mod.rs"]},{"name":"trim_start","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"test","dirs":[{"name":"assert","files":["mod.rs"]},{"name":"assert_eq","files":["mod.rs"]},{"name":"assert_error","files":["mod.rs"]},{"name":"assert_fail","files":["mod.rs"]},{"name":"assert_false","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"thread","dirs":[{"name":"sleep","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"unalias","files":["mod.rs"]}],"files":["mod.rs"]}],"files":["mod.rs"]},{"name":"types","files":["command.rs","mod.rs"]},{"name":"utils","files":["condition.rs","eval.rs","flags.rs","instruction_query.rs","io.rs","mod.rs","pckg.rs","state.rs"]}],"files":["lib.rs"]};
sourcesIndex["duckscriptsdk"] = {"name":"","dirs":[{"name":"sdk","dirs":[{"name":"internal","dirs":[{"name":"sdkdocs","files":["mod.rs"]},{"name":"test","dirs":[{"name":"test_directory","files":["mod.rs"]},{"name":"test_file","files":["mod.rs"]}],"files":["mod.rs"]}],"files":["mod.rs"]},{"name":"std","dirs":[{"name":"alias","files":["mod.rs"]},{"name":"collections","dirs":[{"name":"array","files":["mod.rs"]},{"name":"array_is_empty","files":["mod.rs"]},{"name":"array_length","files":["mod.rs"]},{"name":"range","files":["mod.rs"]},{"name":"read_properties","files":["mod.rs"]},{"name":"write_properties","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"debug","dirs":[{"name":"dump_instructions","files":["mod.rs"]},{"name":"dump_state","files":["mod.rs"]},{"name":"dump_variables","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"echo","files":["mod.rs"]},{"name":"env","dirs":[{"name":"cd","files":["mod.rs"]},{"name":"get","files":["mod.rs"]},{"name":"pwd","files":["mod.rs"]},{"name":"set","files":["mod.rs"]},{"name":"unset","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"eval","files":["mod.rs"]},{"name":"flowcontrol","dirs":[{"name":"end","files":["mod.rs"]},{"name":"forin","files":["mod.rs"]},{"name":"function","files":["mod.rs"]},{"name":"ifelse","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"fs","dirs":[{"name":"basename","files":["mod.rs"]},{"name":"canonical","files":["mod.rs"]},{"name":"cp","files":["mod.rs"]},{"name":"dirname","files":["mod.rs"]},{"name":"list","files":["mod.rs"]},{"name":"mkdir","files":["mod.rs"]},{"name":"mv","files":["mod.rs"]},{"name":"print","files":["mod.rs"]},{"name":"read","files":["mod.rs"]},{"name":"rm","files":["mod.rs"]},{"name":"rmdir","files":["mod.rs"]},{"name":"touch","files":["mod.rs"]},{"name":"write","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"goto","files":["mod.rs"]},{"name":"is_defined","files":["mod.rs"]},{"name":"man","files":["mod.rs"]},{"name":"math","dirs":[{"name":"calc","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"net","dirs":[{"name":"hostname","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"not","files":["mod.rs"]},{"name":"on_error","dirs":[{"name":"exit_on_error","files":["mod.rs"]},{"name":"get_last_error","files":["mod.rs"]},{"name":"get_last_error_line","files":["mod.rs"]},{"name":"get_last_error_source","files":["mod.rs"]},{"name":"on_error","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"os_family","files":["mod.rs"]},{"name":"process","dirs":[{"name":"exec","files":["mod.rs"]},{"name":"exit","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"read","files":["mod.rs"]},{"name":"release","files":["mod.rs"]},{"name":"set","files":["mod.rs"]},{"name":"string","dirs":[{"name":"contains","files":["mod.rs"]},{"name":"ends_with","files":["mod.rs"]},{"name":"equals","files":["mod.rs"]},{"name":"indexof","files":["mod.rs"]},{"name":"is_empty","files":["mod.rs"]},{"name":"last_indexof","files":["mod.rs"]},{"name":"length","files":["mod.rs"]},{"name":"starts_with","files":["mod.rs"]},{"name":"substring","files":["mod.rs"]},{"name":"trim","files":["mod.rs"]},{"name":"trim_end","files":["mod.rs"]},{"name":"trim_start","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"test","dirs":[{"name":"assert","files":["mod.rs"]},{"name":"assert_eq","files":["mod.rs"]},{"name":"assert_error","files":["mod.rs"]},{"name":"assert_fail","files":["mod.rs"]},{"name":"assert_false","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"thread","dirs":[{"name":"sleep","files":["mod.rs"]}],"files":["mod.rs"]},{"name":"unalias","files":["mod.rs"]}],"files":["mod.rs"]}],"files":["mod.rs"]},{"name":"types","files":["command.rs","mod.rs"]},{"name":"utils","files":["condition.rs","eval.rs","flags.rs","instruction_query.rs","io.rs","mod.rs","pckg.rs","state.rs"]}],"files":["lib.rs"]};
createSourceSidebar();

View file

@ -19,11 +19,17 @@
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod</span> <span class="ident">array</span>;
<span class="kw">mod</span> <span class="ident">array_is_empty</span>;
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod</span> <span class="ident">array_length</span>;
<span class="kw">mod</span> <span class="ident">range</span>;
<span class="kw">mod</span> <span class="ident">read_properties</span>;
<span class="kw">mod</span> <span class="ident">write_properties</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::<span class="ident">Commands</span>;
@ -38,6 +44,8 @@
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">array_is_empty</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">array_length</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">range</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">read_properties</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">write_properties</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}

View file

@ -0,0 +1,131 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/collections/read_properties/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../../light.css" id="themeStyle"><script src="../../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../../settings.html"><img src="../../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">instruction</span>::<span class="ident">Instruction</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">StateValue</span>;
<span class="kw">use</span> <span class="ident">java_properties</span>::<span class="ident">read</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./mod_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">mod_test</span>;
<span class="kw">struct</span> <span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Command</span> <span class="kw">for</span> <span class="ident">CommandImpl</span> {
<span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">package</span>, <span class="string">&quot;ReadProperties&quot;</span>)
}
<span class="kw">fn</span> <span class="ident">aliases</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;read_properties&quot;</span>.<span class="ident">to_string</span>()]
}
<span class="kw">fn</span> <span class="ident">help</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.md&quot;</span>).<span class="ident">to_string</span>()
}
<span class="kw">fn</span> <span class="ident">requires_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
}
<span class="kw">fn</span> <span class="ident">run_with_context</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">StateValue</span><span class="op">&gt;</span>,
<span class="ident">variables</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_output_variable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">if</span> <span class="ident">arguments</span>.<span class="ident">len</span>() <span class="op">&lt;</span> <span class="number">1</span> {
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="string">&quot;Missing properties text argument.&quot;</span>.<span class="ident">to_string</span>())
} <span class="kw">else</span> {
<span class="kw">match</span> <span class="ident">read</span>(<span class="ident">arguments</span>[<span class="number">0</span>].<span class="ident">as_bytes</span>()) {
<span class="prelude-val">Ok</span>(<span class="ident">data</span>) <span class="op">=&gt;</span> {
<span class="kw">for</span> (<span class="ident">key</span>, <span class="ident">value</span>) <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">data</span> {
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">to_string</span>(), <span class="ident">value</span>.<span class="ident">to_string</span>());
}
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">data</span>.<span class="ident">len</span>().<span class="ident">to_string</span>()))
}
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
}
}
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">create</span>(<span class="ident">package</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Command</span><span class="op">&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">package</span>.<span class="ident">to_string</span>(),
})
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../../aliases.js"></script><script src="../../../../../../main.js"></script><script src="../../../../../../source-script.js"></script><script src="../../../../../../source-files.js"></script><script defer src="../../../../../../search-index.js"></script></body></html>

View file

@ -0,0 +1,149 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/collections/write_properties/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../../light.css" id="themeStyle"><script src="../../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../../settings.html"><img src="../../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">instruction</span>::<span class="ident">Instruction</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">StateValue</span>;
<span class="kw">use</span> <span class="ident">java_properties</span>::<span class="ident">write</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./mod_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">mod_test</span>;
<span class="kw">struct</span> <span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Command</span> <span class="kw">for</span> <span class="ident">CommandImpl</span> {
<span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">package</span>, <span class="string">&quot;WriteProperties&quot;</span>)
}
<span class="kw">fn</span> <span class="ident">aliases</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;write_properties&quot;</span>.<span class="ident">to_string</span>()]
}
<span class="kw">fn</span> <span class="ident">help</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.md&quot;</span>).<span class="ident">to_string</span>()
}
<span class="kw">fn</span> <span class="ident">requires_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
}
<span class="kw">fn</span> <span class="ident">run_with_context</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">StateValue</span><span class="op">&gt;</span>,
<span class="ident">variables</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_output_variable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">if</span> <span class="ident">arguments</span>.<span class="ident">len</span>() <span class="op">&lt;</span> <span class="number">1</span> {
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="string">&quot;Missing properties names.&quot;</span>.<span class="ident">to_string</span>())
} <span class="kw">else</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">data</span> <span class="op">=</span> <span class="ident">HashMap</span>::<span class="ident">new</span>();
<span class="kw">for</span> <span class="ident">argument</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">arguments</span> {
<span class="kw">match</span> <span class="ident">variables</span>.<span class="ident">get</span>(<span class="ident">argument</span>) {
<span class="prelude-val">Some</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> {
<span class="ident">data</span>.<span class="ident">insert</span>(<span class="ident">argument</span>.<span class="ident">to_string</span>(), <span class="ident">value</span>.<span class="ident">to_string</span>());
}
<span class="prelude-val">None</span> <span class="op">=&gt;</span> (),
}
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[];
<span class="kw">match</span> <span class="ident">write</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">buffer</span>, <span class="kw-2">&amp;</span><span class="ident">data</span>) {
<span class="prelude-val">Ok</span>(<span class="kw">_</span>) <span class="op">=&gt;</span> <span class="kw">match</span> <span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="kw-2">&amp;</span><span class="ident">buffer</span>) {
<span class="prelude-val">Ok</span>(<span class="ident">text</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">text</span>.<span class="ident">trim</span>().<span class="ident">to_string</span>())),
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
},
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
}
}
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">create</span>(<span class="ident">package</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Command</span><span class="op">&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">package</span>.<span class="ident">to_string</span>(),
})
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../../aliases.js"></script><script src="../../../../../../main.js"></script><script src="../../../../../../source-script.js"></script><script src="../../../../../../source-files.js"></script><script defer src="../../../../../../search-index.js"></script></body></html>

View file

@ -0,0 +1,107 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/debug/dump_instructions/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../../light.css" id="themeStyle"><script src="../../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../../settings.html"><img src="../../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">instruction</span>::<span class="ident">Instruction</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">StateValue</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./mod_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">mod_test</span>;
<span class="kw">struct</span> <span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Command</span> <span class="kw">for</span> <span class="ident">CommandImpl</span> {
<span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">package</span>, <span class="string">&quot;DumpInstructions&quot;</span>)
}
<span class="kw">fn</span> <span class="ident">aliases</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;dump_instructions&quot;</span>.<span class="ident">to_string</span>()]
}
<span class="kw">fn</span> <span class="ident">help</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.md&quot;</span>).<span class="ident">to_string</span>()
}
<span class="kw">fn</span> <span class="ident">requires_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
}
<span class="kw">fn</span> <span class="ident">run_with_context</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">_arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">StateValue</span><span class="op">&gt;</span>,
<span class="ident">_variables</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_output_variable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">let</span> <span class="ident">string_value</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:#?}&quot;</span>, <span class="ident">instructions</span>).<span class="ident">to_string</span>();
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">string_value</span>))
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">create</span>(<span class="ident">package</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Command</span><span class="op">&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">package</span>.<span class="ident">to_string</span>(),
})
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../../aliases.js"></script><script src="../../../../../../main.js"></script><script src="../../../../../../source-script.js"></script><script src="../../../../../../source-files.js"></script><script defer src="../../../../../../search-index.js"></script></body></html>

View file

@ -0,0 +1,107 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/debug/dump_state/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../../light.css" id="themeStyle"><script src="../../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../../settings.html"><img src="../../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">instruction</span>::<span class="ident">Instruction</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">StateValue</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./mod_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">mod_test</span>;
<span class="kw">struct</span> <span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Command</span> <span class="kw">for</span> <span class="ident">CommandImpl</span> {
<span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">package</span>, <span class="string">&quot;DumpState&quot;</span>)
}
<span class="kw">fn</span> <span class="ident">aliases</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;dump_state&quot;</span>.<span class="ident">to_string</span>()]
}
<span class="kw">fn</span> <span class="ident">help</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.md&quot;</span>).<span class="ident">to_string</span>()
}
<span class="kw">fn</span> <span class="ident">requires_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
}
<span class="kw">fn</span> <span class="ident">run_with_context</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">_arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">StateValue</span><span class="op">&gt;</span>,
<span class="ident">_variables</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_output_variable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">let</span> <span class="ident">string_value</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:#?}&quot;</span>, <span class="ident">state</span>).<span class="ident">to_string</span>();
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">string_value</span>))
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">create</span>(<span class="ident">package</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Command</span><span class="op">&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">package</span>.<span class="ident">to_string</span>(),
})
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../../aliases.js"></script><script src="../../../../../../main.js"></script><script src="../../../../../../source-script.js"></script><script src="../../../../../../source-files.js"></script><script defer src="../../../../../../search-index.js"></script></body></html>

View file

@ -0,0 +1,107 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/debug/dump_variables/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../../light.css" id="themeStyle"><script src="../../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../../settings.html"><img src="../../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">instruction</span>::<span class="ident">Instruction</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">runtime</span>::<span class="ident">StateValue</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./mod_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">mod_test</span>;
<span class="kw">struct</span> <span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">String</span>,
}
<span class="kw">impl</span> <span class="ident">Command</span> <span class="kw">for</span> <span class="ident">CommandImpl</span> {
<span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">package</span>, <span class="string">&quot;DumpVariables&quot;</span>)
}
<span class="kw">fn</span> <span class="ident">aliases</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">vec</span><span class="macro">!</span>[<span class="string">&quot;dump_variables&quot;</span>.<span class="ident">to_string</span>()]
}
<span class="kw">fn</span> <span class="ident">help</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="macro">include_str</span><span class="macro">!</span>(<span class="string">&quot;help.md&quot;</span>).<span class="ident">to_string</span>()
}
<span class="kw">fn</span> <span class="ident">requires_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
}
<span class="kw">fn</span> <span class="ident">run_with_context</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">_arguments</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">StateValue</span><span class="op">&gt;</span>,
<span class="ident">variables</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">HashMap</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_output_variable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>,
<span class="ident">_instructions</span>: <span class="kw-2">&amp;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Instruction</span><span class="op">&gt;</span>,
<span class="ident">_commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
<span class="ident">_line</span>: <span class="ident">usize</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">let</span> <span class="ident">string_value</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:#?}&quot;</span>, <span class="ident">variables</span>).<span class="ident">to_string</span>();
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">string_value</span>))
}
}
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">create</span>(<span class="ident">package</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Command</span><span class="op">&gt;</span> {
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">CommandImpl</span> {
<span class="ident">package</span>: <span class="ident">package</span>.<span class="ident">to_string</span>(),
})
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../../aliases.js"></script><script src="../../../../../../main.js"></script><script src="../../../../../../source-script.js"></script><script src="../../../../../../source-files.js"></script><script defer src="../../../../../../search-index.js"></script></body></html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `duckscript_sdk/src/sdk/std/debug/mod.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>mod.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../../light.css" id="themeStyle"><script src="../../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../../down-arrow.svg");}</style></head><body class="rustdoc source"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../../duckscriptsdk/index.html'><div class='logo-container'><img src='../../../../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../../settings.html"><img src="../../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">mod</span> <span class="ident">dump_instructions</span>;
<span class="kw">mod</span> <span class="ident">dump_state</span>;
<span class="kw">mod</span> <span class="ident">dump_variables</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::<span class="ident">Commands</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">error</span>::<span class="ident">ScriptError</span>;
<span class="kw">static</span> <span class="ident">PACKAGE</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;debug&quot;</span>;
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">load</span>(<span class="ident">commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>, <span class="ident">parent</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ScriptError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">package</span> <span class="op">=</span> <span class="ident">pckg</span>::<span class="ident">concat</span>(<span class="ident">parent</span>, <span class="ident">PACKAGE</span>);
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">dump_instructions</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">dump_state</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">dump_variables</span>::<span class="ident">create</span>(<span class="kw-2">&amp;</span><span class="ident">package</span>))<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../../../";window.currentCrate = "duckscriptsdk";</script><script src="../../../../../aliases.js"></script><script src="../../../../../main.js"></script><script src="../../../../../source-script.js"></script><script src="../../../../../source-files.js"></script><script defer src="../../../../../search-index.js"></script></body></html>

View file

@ -45,6 +45,8 @@
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::{<span class="ident">io</span>, <span class="ident">pckg</span>};
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>};
@ -74,16 +76,18 @@
<span class="kw">if</span> <span class="ident">arguments</span>.<span class="ident">is_empty</span>() {
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="string">&quot;File name not provided.&quot;</span>.<span class="ident">to_string</span>())
} <span class="kw">else</span> {
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">io</span>::<span class="ident">read_text_file</span>(<span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">0</span>]);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">all_text</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
<span class="kw">for</span> <span class="ident">argument</span> <span class="kw">in</span> <span class="kw-2">&amp;</span><span class="ident">arguments</span> {
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">io</span>::<span class="ident">read_text_file</span>(<span class="kw-2">&amp;</span><span class="ident">argument</span>);
<span class="kw">match</span> <span class="ident">result</span> {
<span class="prelude-val">Ok</span>(<span class="ident">text</span>) <span class="op">=&gt;</span> {
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">text</span>);
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">text</span>))
<span class="kw">match</span> <span class="ident">result</span> {
<span class="prelude-val">Ok</span>(<span class="ident">text</span>) <span class="op">=&gt;</span> <span class="ident">all_text</span>.<span class="ident">push_str</span>(<span class="kw-2">&amp;</span><span class="ident">text</span>),
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="kw">return</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
}
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
}
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">all_text</span>);
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">Some</span>(<span class="ident">all_text</span>))
}
}
}

View file

@ -55,9 +55,12 @@
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod</span> <span class="ident">alias</span>;
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod</span> <span class="ident">collections</span>;
<span class="kw">mod</span> <span class="ident">debug</span>;
<span class="kw">mod</span> <span class="ident">echo</span>;
<span class="kw">mod</span> <span class="ident">env</span>;
<span class="kw">mod</span> <span class="ident">eval</span>;
@ -100,6 +103,7 @@
<span class="ident">commands</span>.<span class="ident">set</span>(<span class="ident">unalias</span>::<span class="ident">create</span>(<span class="ident">PACKAGE</span>))<span class="question-mark">?</span>;
<span class="ident">collections</span>::<span class="ident">load</span>(<span class="ident">commands</span>, <span class="ident">PACKAGE</span>)<span class="question-mark">?</span>;
<span class="ident">debug</span>::<span class="ident">load</span>(<span class="ident">commands</span>, <span class="ident">PACKAGE</span>)<span class="question-mark">?</span>;
<span class="ident">env</span>::<span class="ident">load</span>(<span class="ident">commands</span>, <span class="ident">PACKAGE</span>)<span class="question-mark">?</span>;
<span class="ident">flowcontrol</span>::<span class="ident">load</span>(<span class="ident">commands</span>, <span class="ident">PACKAGE</span>)<span class="question-mark">?</span>;
<span class="ident">fs</span>::<span class="ident">load</span>(<span class="ident">commands</span>, <span class="ident">PACKAGE</span>)<span class="question-mark">?</span>;

View file

@ -65,6 +65,12 @@
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">sdk</span>::<span class="ident">std</span>::<span class="ident">alias</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::<span class="ident">pckg</span>;
@ -114,10 +120,16 @@
} <span class="kw">else</span> {
<span class="kw">let</span> <span class="ident">sub_state</span> <span class="op">=</span> <span class="ident">get_sub_state</span>(<span class="ident">alias</span>::<span class="ident">ALIAS_STATE_KEY</span>.<span class="ident">to_string</span>(), <span class="ident">state</span>);
<span class="kw">let</span> <span class="ident">removed</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">sub_state</span>.<span class="ident">contains_key</span>(<span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">0</span>]) {
<span class="ident">commands</span>.<span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">0</span>]);
<span class="ident">sub_state</span>.<span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">0</span>]);
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">arguments</span>[<span class="number">0</span>];
<span class="kw">let</span> <span class="ident">removed</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">sub_state</span>.<span class="ident">contains_key</span>(<span class="ident">key</span>) {
<span class="kw">if</span> <span class="ident">commands</span>.<span class="ident">remove</span>(<span class="ident">key</span>) {
<span class="ident">sub_state</span>.<span class="ident">remove</span>(<span class="ident">key</span>);
<span class="bool-val">true</span>
} <span class="kw">else</span> {
<span class="bool-val">false</span>
}
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">commands</span>.<span class="ident">aliases</span>.<span class="ident">contains_key</span>(<span class="ident">key</span>) {
<span class="ident">commands</span>.<span class="ident">aliases</span>.<span class="ident">remove</span>(<span class="ident">key</span>);
<span class="bool-val">true</span>
} <span class="kw">else</span> {
<span class="bool-val">false</span>

View file

@ -60,6 +60,9 @@
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">parser</span>;
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">runner</span>;
@ -119,7 +122,10 @@
<span class="ident">commands</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Commands</span>,
) <span class="op">-&gt;</span> <span class="ident">CommandResult</span> {
<span class="kw">match</span> <span class="ident">eval</span>(<span class="ident">arguments</span>, <span class="ident">state</span>, <span class="ident">variables</span>, <span class="ident">commands</span>) {
<span class="prelude-val">Ok</span>(<span class="ident">command_result</span>) <span class="op">=&gt;</span> <span class="ident">command_result</span>,
<span class="prelude-val">Ok</span>(<span class="ident">command_result</span>) <span class="op">=&gt;</span> <span class="kw">match</span> <span class="ident">command_result</span>.<span class="ident">clone</span>() {
<span class="ident">CommandResult</span>::<span class="ident">Crash</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>),
<span class="kw">_</span> <span class="op">=&gt;</span> <span class="ident">command_result</span>,
},
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=&gt;</span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>.<span class="ident">to_string</span>()),
}
}

View file

@ -1,6 +1,6 @@
[package]
name = "duckscript"
version = "0.1.5"
version = "0.1.6"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "Simple, extendable and embeddable scripting language."
license = "Apache-2.0"

View file

@ -1,6 +1,6 @@
[package]
name = "duckscript_cli"
version = "0.1.6"
version = "0.1.7"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "The duckscript command line executable."
license = "Apache-2.0"
@ -27,8 +27,8 @@ name = "duck"
path = "src/main.rs"
[dependencies]
duckscript = { version = "^0.1.5", path = "../duckscript" }
duckscriptsdk = { version = "^0.1.6", path = "../duckscript_sdk" }
duckscript = { version = "^0.1.6", path = "../duckscript" }
duckscriptsdk = { version = "^0.1.7", path = "../duckscript_sdk" }
[badges.travis-ci]
branch = "master"

View file

@ -1,3 +0,0 @@
[env]
CARGO_MAKE_TEST_COVERAGE_BINARY_FILTER = "duck-[a-z0-9]+$\\|duck.[a-z0-9]*$\\|${CARGO_MAKE_TEST_COVERAGE_DEFAULT_BINARY_FILTER}"

View file

@ -1,6 +1,6 @@
[package]
name = "duckscriptsdk"
version = "0.1.6"
version = "0.1.7"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "The duckscript SDK."
license = "Apache-2.0"
@ -23,7 +23,7 @@ include = [
]
[dependencies]
duckscript = { version = "^0.1.5", path = "../duckscript" }
duckscript = { version = "^0.1.6", path = "../duckscript" }
fs_extra = "^1"
home = "^0.5"
hostname = "^0.3"