edlang/anstyle_parse/index.html
2024-07-26 09:44:36 +00:00

23 lines
7.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="Parser for implementing virtual terminal emulators"><title>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="../crates.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 mod crate"><!--[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><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Aliases</a></li></ul></section></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>Crate <a class="mod" href="#">anstyle_parse</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#1-438">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Parser for implementing virtual terminal emulators</p>
<p><a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a> is implemented according to <a href="https://vt100.net/emu/dec_ansi_parser">Paul Williams ANSI parser
state machine</a>. The state machine doesnt assign meaning to the parsed data
and is thus not itself sufficient for writing a terminal emulator. Instead,
it is expected that an implementation of <a href="trait.Perform.html" title="trait anstyle_parse::Perform"><code>Perform</code></a> is provided which does
something useful with the parsed data. The <a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a> handles the book
keeping, and the <a href="trait.Perform.html" title="trait anstyle_parse::Perform"><code>Perform</code></a> gets to simply handle actions.</p>
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
<p>For an example of using the <a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a> please see the examples folder. The example included
there simply logs all the actions <a href="trait.Perform.html" title="trait anstyle_parse::Perform"><code>Perform</code></a> does. One quick thing to see it in action is to
pipe <code>vim</code> into it</p>
<div class="example-wrap"><pre class="language-sh"><code>cargo build --release --example parselog
vim | target/release/examples/parselog
</code></pre></div>
<p>Just type <code>:q</code> to exit.</p>
<h2 id="differences-from-original-state-machine-description"><a class="doc-anchor" href="#differences-from-original-state-machine-description">§</a>Differences from original state machine description</h2>
<ul>
<li>UTF-8 Support for Input</li>
<li>OSC Strings can be terminated by 0x07</li>
<li>Only supports 7-bit codes. Some 8-bit codes are still supported, but they no longer work in
all states.</li>
</ul>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="state/index.html" title="mod anstyle_parse::state">state</a></div><div class="desc docblock-short">ANSI escape code parsing state machine</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AsciiParser.html" title="struct anstyle_parse::AsciiParser">AsciiParser</a></div><div class="desc docblock-short">Only allow parsing 7-bit ASCII</div></li><li><div class="item-name"><a class="struct" href="struct.Params.html" title="struct anstyle_parse::Params">Params</a></div></li><li><div class="item-name"><a class="struct" href="struct.ParamsIter.html" title="struct anstyle_parse::ParamsIter">ParamsIter</a></div><div class="desc docblock-short">Immutable subparameter iterator.</div></li><li><div class="item-name"><a class="struct" href="struct.Parser.html" title="struct anstyle_parse::Parser">Parser</a></div><div class="desc docblock-short">Parser for raw <em>VTE</em> protocol which delegates actions to a <a href="trait.Perform.html" title="trait anstyle_parse::Perform"><code>Perform</code></a></div></li><li><div class="item-name"><a class="struct" href="struct.Utf8Parser.html" title="struct anstyle_parse::Utf8Parser">Utf8Parser</a></div><div class="desc docblock-short">Allow parsing UTF-8</div></li></ul><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.CharAccumulator.html" title="trait anstyle_parse::CharAccumulator">CharAccumulator</a></div><div class="desc docblock-short">Build a <code>char</code> out of bytes</div></li><li><div class="item-name"><a class="trait" href="trait.Perform.html" title="trait anstyle_parse::Perform">Perform</a></div><div class="desc docblock-short">Performs actions requested by the <a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a></div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.DefaultCharAccumulator.html" title="type anstyle_parse::DefaultCharAccumulator">DefaultCharAccumulator</a></div><div class="desc docblock-short">Most flexible <a href="trait.CharAccumulator.html" title="trait anstyle_parse::CharAccumulator"><code>CharAccumulator</code></a> for <a href="struct.Parser.html" title="struct anstyle_parse::Parser"><code>Parser</code></a> based on active features</div></li></ul></section></div></main></body></html>