edlang/heck/index.html
2024-02-13 06:38:44 +00:00

42 lines
12 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="heck is a case conversion library."><title>heck - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="heck" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><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">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../heck/index.html">heck</a><span class="version">0.4.1</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="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../heck/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">heck</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/heck/lib.rs.html#1-209">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><strong>heck</strong> is a case conversion library.</p>
<p>This library exists to provide case conversion between common cases like
CamelCase and snake_case. It is intended to be unicode aware, internally
consistent, and reasonably well performing.</p>
<h3 id="definition-of-a-word-boundary"><a href="#definition-of-a-word-boundary">Definition of a word boundary</a></h3>
<p>Word boundaries are defined as the “unicode words” defined in the
<code>unicode_segmentation</code> library, as well as within those words in this
manner:</p>
<ol>
<li>All underscore characters are considered word boundaries.</li>
<li>If an uppercase character is followed by lowercase letters, a word
boundary is considered to be just prior to that uppercase character.</li>
<li>If multiple uppercase characters are consecutive, they are considered to
be within a single word, except that the last will be part of the next word
if it is followed by lowercase characters (see rule 2).</li>
</ol>
<p>That is, “HelloWorld” is segmented <code>Hello|World</code> whereas “XMLHttpRequest” is
segmented <code>XML|Http|Request</code>.</p>
<p>Characters not within words (such as spaces, punctuations, and underscores)
are not included in the output string except as they are a part of the case
being converted to. Multiple adjacent word boundaries (such as a series of
underscores) are folded into one. (“hello__world” in snake case is therefore
“hello_world”, not the exact same string). Leading or trailing word boundary
indicators are dropped, except insofar as CamelCase capitalizes the first
word.</p>
<h4 id="cases-contained-in-this-library"><a href="#cases-contained-in-this-library">Cases contained in this library:</a></h4>
<ol>
<li>UpperCamelCase</li>
<li>lowerCamelCase</li>
<li>snake_case</li>
<li>kebab-case</li>
<li>SHOUTY_SNAKE_CASE</li>
<li>Title Case</li>
<li>SHOUTY-KEBAB-CASE</li>
<li>Train-Case</li>
</ol>
</div></details><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AsKebabCase.html" title="struct heck::AsKebabCase">AsKebabCase</a></div><div class="desc docblock-short">This wrapper performs a kebab case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsLowerCamelCase.html" title="struct heck::AsLowerCamelCase">AsLowerCamelCase</a></div><div class="desc docblock-short">This wrapper performs a lower camel case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsPascalCase.html" title="struct heck::AsPascalCase">AsPascalCase</a></div><div class="desc docblock-short">This wrapper performs a upper camel case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsShoutyKebabCase.html" title="struct heck::AsShoutyKebabCase">AsShoutyKebabCase</a></div><div class="desc docblock-short">This wrapper performs a kebab case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsShoutySnakeCase.html" title="struct heck::AsShoutySnakeCase">AsShoutySnakeCase</a></div><div class="desc docblock-short">This wrapper performs a shouty snake case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsShoutySnekCase.html" title="struct heck::AsShoutySnekCase">AsShoutySnekCase</a></div><div class="desc docblock-short">This wrapper performs a shouty snake case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsSnakeCase.html" title="struct heck::AsSnakeCase">AsSnakeCase</a></div><div class="desc docblock-short">This wrapper performs a snake case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsSnekCase.html" title="struct heck::AsSnekCase">AsSnekCase</a></div><div class="desc docblock-short">This wrapper performs a snake case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsTitleCase.html" title="struct heck::AsTitleCase">AsTitleCase</a></div><div class="desc docblock-short">This wrapper performs a title case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsTrainCase.html" title="struct heck::AsTrainCase">AsTrainCase</a></div><div class="desc docblock-short">This wrapper performs a train case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.AsUpperCamelCase.html" title="struct heck::AsUpperCamelCase">AsUpperCamelCase</a></div><div class="desc docblock-short">This wrapper performs a upper camel case conversion in <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display"><code>fmt::Display</code></a>.</div></li></ul><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.ToKebabCase.html" title="trait heck::ToKebabCase">ToKebabCase</a></div><div class="desc docblock-short">This trait defines a kebab case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToLowerCamelCase.html" title="trait heck::ToLowerCamelCase">ToLowerCamelCase</a></div><div class="desc docblock-short">This trait defines a lower camel case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToPascalCase.html" title="trait heck::ToPascalCase">ToPascalCase</a></div><div class="desc docblock-short">ToPascalCase is an alias for ToUpperCamelCase. See ToUpperCamelCase for more
documentation.</div></li><li><div class="item-name"><a class="trait" href="trait.ToShoutyKebabCase.html" title="trait heck::ToShoutyKebabCase">ToShoutyKebabCase</a></div><div class="desc docblock-short">This trait defines a shouty kebab case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToShoutySnakeCase.html" title="trait heck::ToShoutySnakeCase">ToShoutySnakeCase</a></div><div class="desc docblock-short">This trait defines a shouty snake case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToShoutySnekCase.html" title="trait heck::ToShoutySnekCase">ToShoutySnekCase</a></div><div class="desc docblock-short">Oh heck, ToShoutySnekCase is an alias for ToShoutySnakeCase. See
ToShoutySnakeCase for more documentation.</div></li><li><div class="item-name"><a class="trait" href="trait.ToSnakeCase.html" title="trait heck::ToSnakeCase">ToSnakeCase</a></div><div class="desc docblock-short">This trait defines a snake case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToSnekCase.html" title="trait heck::ToSnekCase">ToSnekCase</a></div><div class="desc docblock-short">Oh heck, SnekCase is an alias for ToSnakeCase. See ToSnakeCase for
more documentation.</div></li><li><div class="item-name"><a class="trait" href="trait.ToTitleCase.html" title="trait heck::ToTitleCase">ToTitleCase</a></div><div class="desc docblock-short">This trait defines a title case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToTrainCase.html" title="trait heck::ToTrainCase">ToTrainCase</a></div><div class="desc docblock-short">This trait defines a train case conversion.</div></li><li><div class="item-name"><a class="trait" href="trait.ToUpperCamelCase.html" title="trait heck::ToUpperCamelCase">ToUpperCamelCase</a></div><div class="desc docblock-short">This trait defines an upper camel case conversion.</div></li></ul></section></div></main></body></html>