edlang/anstyle_parse/trait.Perform.html

65 lines
13 KiB
HTML
Raw Normal View History

<!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="Performs actions requested by the `Parser`"><title>Perform in anstyle_parse - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="anstyle_parse" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0 (051478957 2024-07-21)" data-channel="1.80.0" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../anstyle_parse/index.html">anstyle_parse</a><span class="version">0.2.5</span></h2></div><h2 class="location"><a href="#">Perform</a></h2><div class="sidebar-elems"><section><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.csi_dispatch">csi_dispatch</a></li><li><a href="#method.esc_dispatch">esc_dispatch</a></li><li><a href="#method.execute">execute</a></li><li><a href="#method.hook">hook</a></li><li><a href="#method.osc_dispatch">osc_dispatch</a></li><li><a href="#method.print">print</a></li><li><a href="#method.put">put</a></li><li><a href="#method.unhook">unhook</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In crate anstyle_parse</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="index.html">anstyle_parse</a>::<wbr><a class="trait" href="#">Perform</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/anstyle_parse/lib.rs.html#388-438">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait Perform {
// Provided methods
fn <a href="#method.print" class="fn">print</a>(&amp;mut self, _c: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.char.html">char</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.execute" class="fn">execute</a>(&amp;mut self, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.hook" class="fn">hook</a>(
&amp;mut self,
_params: &amp;<a class="struct" href="struct.Params.html" title="struct anstyle_parse::Params">Params</a>,
_intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>],
_ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>,
_action: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>,
) { ... }
<span class="item-spacer"></span> fn <a href="#method.put" class="fn">put</a>(&amp;mut self, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.unhook" class="fn">unhook</a>(&amp;mut self) { ... }
<span class="item-spacer"></span> fn <a href="#method.osc_dispatch" class="fn">osc_dispatch</a>(&amp;mut self, _params: &amp;[&amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>]], _bell_terminated: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.csi_dispatch" class="fn">csi_dispatch</a>(
&amp;mut self,
_params: &amp;<a class="struct" href="struct.Params.html" title="struct anstyle_parse::Params">Params</a>,
_intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>],
_ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>,
_action: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>,
) { ... }
<span class="item-spacer"></span> fn <a href="#method.esc_dispatch" class="fn">esc_dispatch</a>(&amp;mut self, _intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>], _ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>) { ... }
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Performs actions requested by the <a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a></p>
<p>Actions in this case mean, for example, handling a CSI escape sequence describing cursor
movement, or simply printing characters to the screen.</p>
<p>The methods on this type correspond to actions described in
<a href="http://vt100.net/emu/dec_ansi_parser">http://vt100.net/emu/dec_ansi_parser</a>. Ive done my best to describe them in
a useful way in my own words for completeness, but the site should be
referenced if something isnt clear. If the site disappears at some point in
the future, consider checking archive.org.</p>
</div></details><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.print" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#390">source</a><h4 class="code-header">fn <a href="#method.print" class="fn">print</a>(&amp;mut self, _c: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.char.html">char</a>)</h4></section></summary><div class="docblock"><p>Draw a character to the screen and update states.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.execute" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#393">source</a><h4 class="code-header">fn <a href="#method.execute" class="fn">execute</a>(&amp;mut self, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>)</h4></section></summary><div class="docblock"><p>Execute a C0 or C1 control function.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.hook" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#404">source</a><h4 class="code-header">fn <a href="#method.hook" class="fn">hook</a>(
&amp;mut self,
_params: &amp;<a class="struct" href="struct.Params.html" title="struct anstyle_parse::Params">Params</a>,
_intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>],
_ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>,
_action: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>,
)</h4></section></summary><div class="docblock"><p>Invoked when a final character arrives in first part of device control string.</p>
<p>The control function should be determined from the private marker, final character, and
execute with a parameter list. A handler should be selected for remaining characters in the
string; the handler function should subsequently be called by <code>put</code> for every character in
the control string.</p>
<p>The <code>ignore</code> flag indicates that more than two intermediates arrived and
subsequent characters were ignored.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.put" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#408">source</a><h4 class="code-header">fn <a href="#method.put" class="fn">put</a>(&amp;mut self, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>)</h4></section></summary><div class="docblock"><p>Pass bytes as part of a device control string to the handle chosen in <code>hook</code>. C0 controls
will also be passed to the handler.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unhook" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#414">source</a><h4 class="code-header">fn <a href="#method.unhook" class="fn">unhook</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Called when a device control string is terminated.</p>
<p>The previously selected handler should be notified that the DCS has
terminated.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.osc_dispatch" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#417">source</a><h4 class="code-header">fn <a href="#method.osc_dispatch" class="fn">osc_dispatch</a>(&amp;mut self, _params: &amp;[&amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>]], _bell_terminated: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Dispatch an operating system command.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.csi_dispatch" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#424-431">source</a><h4 class="code-header">fn <a href="#method.csi_dispatch" class="fn">csi_dispatch</a>(
&amp;mut self,
_params: &amp;<a class="struct" href="struct.Params.html" title="struct anstyle_parse::Params">Params</a>,
_intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>],
_ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>,
_action: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>,
)</h4></section></summary><div class="docblock"><p>A final character has arrived for a CSI sequence</p>
<p>The <code>ignore</code> flag indicates that either more than two intermediates arrived
or the number of parameters exceeded the maximum supported length,
and subsequent characters were ignored.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.esc_dispatch" class="method"><a class="src rightside" href="../src/anstyle_parse/lib.rs.html#437">source</a><h4 class="code-header">fn <a href="#method.esc_dispatch" class="fn">esc_dispatch</a>(&amp;mut self, _intermediates: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>], _ignore: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.bool.html">bool</a>, _byte: <a class="primitive" href="https://doc.rust-lang.org/1.80.0/core/primitive.u8.html">u8</a>)</h4></section></summary><div class="docblock"><p>The final character of an escape sequence has arrived.</p>
<p>The <code>ignore</code> flag indicates that more than two intermediates arrived and
subsequent characters were ignored.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../trait.impl/anstyle_parse/trait.Perform.js" async></script></section></div></main></body></html>