mirror of
https://github.com/rust-embedded/heapless.git
synced 2025-09-28 04:50:34 +00:00
deploy: b3877665f8119334f58da9cceb699bfa9733486d
This commit is contained in:
parent
2e4891efd2
commit
fffb45f246
@ -1,6 +1,6 @@
|
||||
<!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="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><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">☰</div><a href='../generic_array/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate generic_array</p><div class="block version"><p>Version 0.12.4</p></div><a id="all-types" href="index.html"><p>Back to index</p></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><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">☰</div><a href='../generic_array/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate generic_array</p><div class="block version"><p>Version 0.14.4</p></div><a id="all-types" href="index.html"><p>Back to index</p></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</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="struct.GenericArray.html">GenericArray</a></li><li><a href="iter/struct.GenericArrayIter.html">iter::GenericArrayIter</a></li></ul><h3 id="Traits">Traits</h3><ul class="traits docblock"><li><a href="trait.ArrayLength.html">ArrayLength</a></li><li><a href="arr/trait.AddLength.html">arr::AddLength</a></li><li><a href="functional/trait.FunctionalSequence.html">functional::FunctionalSequence</a></li><li><a href="functional/trait.MappedGenericSequence.html">functional::MappedGenericSequence</a></li><li><a href="sequence/trait.Concat.html">sequence::Concat</a></li><li><a href="sequence/trait.GenericSequence.html">sequence::GenericSequence</a></li><li><a href="sequence/trait.Lengthen.html">sequence::Lengthen</a></li><li><a href="sequence/trait.Shorten.html">sequence::Shorten</a></li><li><a href="sequence/trait.Split.html">sequence::Split</a></li></ul><h3 id="Macros">Macros</h3><ul class="macros docblock"><li><a href="macro.arr.html">arr</a></li></ul><h3 id="Typedefs">Typedefs</h3><ul class="typedefs docblock"><li><a href="arr/type.Inc.html">arr::Inc</a></li><li><a href="functional/type.MappedSequence.html">functional::MappedSequence</a></li><li><a href="sequence/type.SequenceItem.html">sequence::SequenceItem</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "generic_array";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
@ -1,7 +1,7 @@
|
||||
<!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 `arr` mod in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, arr"><title>generic_array::arr - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Module arr</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class="location"><a href="../index.html">generic_array</a></p><script>window.sidebarCurrent = {name: "arr", 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!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/arr.rs.html#1-126" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">arr</a></span></h1><div class="docblock"><p>Implementation for <code>arr!</code> macro.</p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/arr.rs.html#1-125" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">arr</a></span></h1><div class="docblock"><p>Implementation for <code>arr!</code> macro.</p>
|
||||
</div><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2>
|
||||
<table><tr class="module-item"><td><a class="trait" href="trait.AddLength.html" title="generic_array::arr::AddLength trait">AddLength</a></td><td class="docblock-short"><p>Helper trait for <code>arr!</code> macro</p>
|
||||
</td></tr></table><h2 id="types" class="section-header"><a href="#types">Type Definitions</a></h2>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!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 `functional` mod in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, functional"><title>generic_array::functional - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Module functional</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class="location"><a href="../index.html">generic_array</a></p><script>window.sidebarCurrent = {name: "functional", 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!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/functional.rs.html#1-94" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">functional</a></span></h1><div class="docblock"><p>Functional programming with generic sequences</p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/functional.rs.html#1-95" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">functional</a></span></h1><div class="docblock"><p>Functional programming with generic sequences</p>
|
||||
<p>Please see <code>tests/generics.rs</code> for examples of how to best use these in your generic functions.</p>
|
||||
</div><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2>
|
||||
<table><tr class="module-item"><td><a class="trait" href="trait.FunctionalSequence.html" title="generic_array::functional::FunctionalSequence trait">FunctionalSequence</a></td><td class="docblock-short"><p>Defines functional programming methods for generic sequences</p>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
<!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 `MappedSequence` type in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, MappedSequence"><title>generic_array::functional::MappedSequence - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc type"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Type Definition MappedSequence</p><div class="sidebar-elems"><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">functional</a></p><script>window.sidebarCurrent = {name: "MappedSequence", ty: "type", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/functional.rs.html#38-39" title="goto source code">[src]</a></span><span class="in-band">Type Definition <a href="../index.html">generic_array</a>::<wbr><a href="index.html">functional</a>::<wbr><a class="type" href="">MappedSequence</a></span></h1><pre class="rust typedef">type MappedSequence<S, T, U> = <<S as <a class="trait" href="../../generic_array/functional/trait.MappedGenericSequence.html" title="trait generic_array::functional::MappedGenericSequence">MappedGenericSequence</a><T, U>>::<a class="type" href="../../generic_array/functional/trait.MappedGenericSequence.html#associatedtype.Mapped" title="type generic_array::functional::MappedGenericSequence::Mapped">Mapped</a> as <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><U>>::<a class="type" href="../../generic_array/sequence/trait.GenericSequence.html#associatedtype.Sequence" title="type generic_array::sequence::GenericSequence::Sequence">Sequence</a>;</pre><div class="docblock"><p>Accessor type for a mapped generic sequence</p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/functional.rs.html#39-40" title="goto source code">[src]</a></span><span class="in-band">Type Definition <a href="../index.html">generic_array</a>::<wbr><a href="index.html">functional</a>::<wbr><a class="type" href="">MappedSequence</a></span></h1><pre class="rust typedef">type MappedSequence<S, T, U> = <<S as <a class="trait" href="../../generic_array/functional/trait.MappedGenericSequence.html" title="trait generic_array::functional::MappedGenericSequence">MappedGenericSequence</a><T, U>>::<a class="type" href="../../generic_array/functional/trait.MappedGenericSequence.html#associatedtype.Mapped" title="type generic_array::functional::MappedGenericSequence::Mapped">Mapped</a> as <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><U>>::<a class="type" href="../../generic_array/sequence/trait.GenericSequence.html#associatedtype.Sequence" title="type generic_array::sequence::GenericSequence::Sequence">Sequence</a>;</pre><div class="docblock"><p>Accessor type for a mapped generic sequence</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,31 +1,53 @@
|
||||
<!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 `generic_array` crate."><meta name="keywords" content="rust, rustlang, rust-lang, generic_array"><title>generic_array - 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="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><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">☰</div><a href='../generic_array/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate generic_array</p><div class="block version"><p>Version 0.12.4</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all generic_array's items</p></a><div class="block items"><ul><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><p class="location"></p><script>window.sidebarCurrent = {name: "generic_array", ty: "mod", relpath: "../"};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../src/generic_array/lib.rs.html#1-632" title="goto source code">[src]</a></span><span class="in-band">Crate <a class="mod" href="">generic_array</a></span></h1><div class="docblock"><p>This crate implements a structure that can be used as a generic array type.use
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><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">☰</div><a href='../generic_array/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Crate generic_array</p><div class="block version"><p>Version 0.14.4</p></div><div class="sidebar-elems"><a id="all-types" href="all.html"><p>See all generic_array's items</p></a><div class="block items"><ul><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><p class="location"></p><script>window.sidebarCurrent = {name: "generic_array", ty: "mod", relpath: "../"};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../src/generic_array/lib.rs.html#1-673" title="goto source code">[src]</a></span><span class="in-band">Crate <a class="mod" href="">generic_array</a></span></h1><div class="docblock"><p>This crate implements a structure that can be used as a generic array type.
|
||||
Core Rust array types <code>[T; N]</code> can't be used generically with
|
||||
respect to <code>N</code>, so for example this:</p>
|
||||
<pre><code class="language-{should_fail}">struct Foo<T, N> {
|
||||
data: [T; N]
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<div class='information'><div class='tooltip compile_fail'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered compile_fail">
|
||||
<span class="kw">struct</span> <span class="ident">Foo</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="ident">data</span>: [<span class="ident">T</span>; <span class="ident">N</span>]
|
||||
}</pre></div>
|
||||
<p>won't work.</p>
|
||||
<p><strong>generic-array</strong> exports a <code>GenericArray<T,N></code> type, which lets
|
||||
the above be implemented as:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">use</span> <span class="ident">generic_array</span>::{<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
|
||||
<span class="kw">struct</span> <span class="ident">Foo</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="ident">data</span>: <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>,<span class="ident">N</span><span class="op">></span>
|
||||
}</pre></div>
|
||||
<p>The <code>ArrayLength<T></code> trait is implemented by default for
|
||||
<a href="../typenum/uint/index.html">unsigned integer types</a> from
|
||||
<a href="../typenum/index.html">typenum</a>.</p>
|
||||
<a href="../typenum/index.html">typenum</a>:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">use</span> <span class="ident">generic_array</span>::<span class="ident">typenum</span>::<span class="ident">U5</span>;
|
||||
|
||||
<span class="kw">struct</span> <span class="ident">Foo</span><span class="op"><</span><span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">i32</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="ident">data</span>: <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">N</span><span class="op">></span>
|
||||
}
|
||||
|
||||
<span class="kw">let</span> <span class="ident">foo</span> <span class="op">=</span> <span class="ident">Foo</span>::<span class="op"><</span><span class="ident">U5</span><span class="op">></span>{<span class="ident">data</span>: <span class="ident">GenericArray</span>::<span class="ident">default</span>()};</pre></div>
|
||||
<p>For example, <code>GenericArray<T, U5></code> would work almost like <code>[T; 5]</code>:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">use</span> <span class="ident">generic_array</span>::<span class="ident">typenum</span>::<span class="ident">U5</span>;
|
||||
|
||||
<span class="kw">struct</span> <span class="ident">Foo</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="ident">data</span>: <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
}
|
||||
|
||||
<span class="kw">let</span> <span class="ident">foo</span> <span class="op">=</span> <span class="ident">Foo</span>::<span class="op"><</span><span class="ident">i32</span>, <span class="ident">U5</span><span class="op">></span>{<span class="ident">data</span>: <span class="ident">GenericArray</span>::<span class="ident">default</span>()};</pre></div>
|
||||
<p>For ease of use, an <code>arr!</code> macro is provided - example below:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">let</span> <span class="ident">array</span> <span class="op">=</span> <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">u32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">array</span>[<span class="number">2</span>], <span class="number">3</span>);</pre></div>
|
||||
</div><h2 id="reexports" class="section-header"><a href="#reexports">Re-exports</a></h2>
|
||||
<table><tr><td><code>pub extern crate <a class="mod" href="../typenum/index.html" title="mod typenum">typenum</a>;</code></td></tr><tr><td><code>pub use iter::<a class="struct" href="../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a>;</code></td></tr></table><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
|
||||
<table><tr><td><code>pub extern crate <a class="mod" href="../typenum/index.html" title="mod typenum">typenum</a>;</code></td></tr><tr><td><code>pub use self::iter::<a class="struct" href="../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a>;</code></td></tr></table><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2>
|
||||
<table><tr class="module-item"><td><a class="mod" href="arr/index.html" title="generic_array::arr mod">arr</a></td><td class="docblock-short"><p>Implementation for <code>arr!</code> macro.</p>
|
||||
</td></tr><tr class="module-item"><td><a class="mod" href="functional/index.html" title="generic_array::functional mod">functional</a></td><td class="docblock-short"><p>Functional programming with generic sequences</p>
|
||||
</td></tr><tr class="module-item"><td><a class="mod" href="iter/index.html" title="generic_array::iter mod">iter</a></td><td class="docblock-short"><p><code>GenericArray</code> iterator implementation.</p>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!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 `iter` mod in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, iter"><title>generic_array::iter - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Module iter</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li></ul></div><p class="location"><a href="../index.html">generic_array</a></p><script>window.sidebarCurrent = {name: "iter", 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!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/iter.rs.html#1-188" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">iter</a></span></h1><div class="docblock"><p><code>GenericArray</code> iterator implementation.</p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/iter.rs.html#1-255" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">iter</a></span></h1><div class="docblock"><p><code>GenericArray</code> iterator implementation.</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.GenericArrayIter.html" title="generic_array::iter::GenericArrayIter struct">GenericArrayIter</a></td><td class="docblock-short"><p>An iterator that moves out of a <code>GenericArray</code></p>
|
||||
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,30 +1,31 @@
|
||||
<!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 `GenericArrayIter` struct in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, GenericArrayIter"><title>generic_array::iter::GenericArrayIter - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Struct GenericArrayIter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.as_mut_slice">as_mut_slice</a><a href="#method.as_slice">as_slice</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-DoubleEndedIterator">DoubleEndedIterator</a><a href="#impl-Drop">Drop</a><a href="#impl-ExactSizeIterator">ExactSizeIterator</a><a href="#impl-Iterator">Iterator</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></a><a href="#impl-IntoIterator">IntoIterator</a><a href="#impl-Same%3CT%3E">Same<T></a><a href="#impl-TryFrom%3CU%3E">TryFrom<U></a><a href="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">iter</a></p><script>window.sidebarCurrent = {name: "GenericArrayIter", ty: "struct", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/iter.rs.html#8-15" title="goto source code">[src]</a></span><span class="in-band">Struct <a href="../index.html">generic_array</a>::<wbr><a href="index.html">iter</a>::<wbr><a class="struct" href="">GenericArrayIter</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust struct">pub struct GenericArrayIter<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> { /* fields omitted */ }</pre></div><div class="docblock"><p>An iterator that moves out of a <code>GenericArray</code></p>
|
||||
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><h3 id="impl" class="impl"><code class="in-band">impl<T, N> <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#29-44" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.as_slice" class="method"><code>pub fn <a href="#method.as_slice" class="fnname">as_slice</a>(&self) -> &[T]</code><a class="srclink" href="../../src/generic_array/iter.rs.html#35-37" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the remaining items of this iterator as a slice</p>
|
||||
</div><h4 id="method.as_mut_slice" class="method"><code>pub fn <a href="#method.as_mut_slice" class="fnname">as_mut_slice</a>(&mut self) -> &mut [T]</code><a class="srclink" href="../../src/generic_array/iter.rs.html#41-43" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the remaining items of this iterator as a mutable slice</p>
|
||||
</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><h3 id="impl-Clone" class="impl"><code class="in-band">impl<T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Clone" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#90-113" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.clone" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&self) -> Self</code><a class="srclink" href="../../src/generic_array/iter.rs.html#94-112" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Struct GenericArrayIter</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.as_mut_slice">as_mut_slice</a><a href="#method.as_slice">as_slice</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-DoubleEndedIterator">DoubleEndedIterator</a><a href="#impl-Drop">Drop</a><a href="#impl-ExactSizeIterator">ExactSizeIterator</a><a href="#impl-FusedIterator">FusedIterator</a><a href="#impl-Iterator">Iterator</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></a><a href="#impl-IntoIterator">IntoIterator</a><a href="#impl-Same%3CT%3E">Same<T></a><a href="#impl-TryFrom%3CU%3E">TryFrom<U></a><a href="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">iter</a></p><script>window.sidebarCurrent = {name: "GenericArrayIter", ty: "struct", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/iter.rs.html#9-16" title="goto source code">[src]</a></span><span class="in-band">Struct <a href="../index.html">generic_array</a>::<wbr><a href="index.html">iter</a>::<wbr><a class="struct" href="">GenericArrayIter</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust struct">pub struct GenericArrayIter<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> { /* fields omitted */ }</pre></div><div class="docblock"><p>An iterator that moves out of a <code>GenericArray</code></p>
|
||||
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><h3 id="impl" class="impl"><code class="in-band">impl<T, N> <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#30-45" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.as_slice" class="method"><code>pub fn <a href="#method.as_slice" class="fnname">as_slice</a>(&self) -> &[T]</code><a class="srclink" href="../../src/generic_array/iter.rs.html#36-38" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the remaining items of this iterator as a slice</p>
|
||||
</div><h4 id="method.as_mut_slice" class="method"><code>pub fn <a href="#method.as_mut_slice" class="fnname">as_mut_slice</a>(&mut self) -> &mut [T]</code><a class="srclink" href="../../src/generic_array/iter.rs.html#42-44" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns the remaining items of this iterator as a mutable slice</p>
|
||||
</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><h3 id="impl-Clone" class="impl"><code class="in-band">impl<T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Clone" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#93-117" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.clone" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&self) -> Self</code><a class="srclink" href="../../src/generic_array/iter.rs.html#97-116" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||||
</div><h4 id="method.clone_from" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&mut self, source: &Self)</code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#128-130" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
|
||||
</div></div><h3 id="impl-Debug" class="impl"><code class="in-band">impl<T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Debug" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#63-72" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.fmt" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class="srclink" href="../../src/generic_array/iter.rs.html#67-71" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
|
||||
</div></div><h3 id="impl-DoubleEndedIterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-DoubleEndedIterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#166-179" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.next_back" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#tymethod.next_back" class="fnname">next_back</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#170-178" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Removes and returns an element from the end of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#tymethod.next_back">Read more</a></p>
|
||||
</div></div><h3 id="impl-Debug" class="impl"><code class="in-band">impl<T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Debug" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#64-73" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.fmt" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class="srclink" href="../../src/generic_array/iter.rs.html#68-72" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
|
||||
</div></div><h3 id="impl-DoubleEndedIterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-DoubleEndedIterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#199-240" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.next_back" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#tymethod.next_back" class="fnname">next_back</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#203-211" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Removes and returns an element from the end of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#tymethod.next_back">Read more</a></p>
|
||||
</div><h4 id="method.rfold" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfold" class="fnname">rfold</a><B, F>(self, init: B, f: F) -> B <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(B, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> B, </span></code><a class="srclink" href="../../src/generic_array/iter.rs.html#213-239" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>An iterator method that reduces the iterator's elements to a single,
|
||||
final value, starting from the back. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfold">Read more</a></p>
|
||||
</div><h4 id="method.advance_back_by" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.advance_back_by" class="fnname">advance_back_by</a>(&mut self, n: usize) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(), usize></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/double_ended.rs.html#130-135" title="goto source code">[src]</a></h4><div class="item-info hidden"><div class="stab unstable"><details><summary><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>iter_advance_by</code>)</summary><p>recently added</p>
|
||||
</details></div></div><div class='docblock hidden'><p>Advances the iterator from the back by <code>n</code> elements. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.advance_back_by">Read more</a></p>
|
||||
</div><h4 id="method.nth_back" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.nth_back" class="fnname">nth_back</a>(&mut self, n: usize) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>></code><span class="since" title="Stable since Rust version 1.37.0">1.37.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/double_ended.rs.html#180-183" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the <code>n</code>th element from the end of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.nth_back">Read more</a></p>
|
||||
</div><h4 id="method.try_rfold" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.try_rfold" class="fnname">try_rfold</a><B, F, R>(&mut self, init: B, f: F) -> R <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(B, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> R,<br> R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/try/trait.Try.html" title="trait core::ops::try::Try">Try</a><Ok = B>, </span></code><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/double_ended.rs.html#217-228" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>This is the reverse version of <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.try_fold" title="Iterator::try_fold()"><code>Iterator::try_fold()</code></a>: it takes
|
||||
elements starting from the back of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.try_rfold">Read more</a></p>
|
||||
</div><h4 id="method.rfold" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfold" class="fnname">rfold</a><B, F>(self, init: B, f: F) -> B <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(B, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> B, </span></code><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/double_ended.rs.html#281-291" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>An iterator method that reduces the iterator's elements to a single,
|
||||
final value, starting from the back. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfold">Read more</a></p>
|
||||
</div><h4 id="method.rfind" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfind" class="fnname">rfind</a><P>(&mut self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>> <span class="where fmt-newline">where<br> P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> bool, </span></code><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/double_ended.rs.html#336-349" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Searches for an element of an iterator from the back that satisfies a predicate. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/double_ended/trait.DoubleEndedIterator.html#method.rfind">Read more</a></p>
|
||||
</div></div><h3 id="impl-Drop" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Drop" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#74-87" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.drop" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop" class="fnname">drop</a>(&mut self)</code><a class="srclink" href="../../src/generic_array/iter.rs.html#79-86" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Executes the destructor for this type. <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
|
||||
</div></div><h3 id="impl-ExactSizeIterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-ExactSizeIterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#181-188" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.len" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.len" class="fnname">len</a>(&self) -> usize</code><a class="srclink" href="../../src/generic_array/iter.rs.html#185-187" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the exact length of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.len">Read more</a></p>
|
||||
</div></div><h3 id="impl-Drop" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Drop" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#75-90" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.drop" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop" class="fnname">drop</a>(&mut self)</code><a class="srclink" href="../../src/generic_array/iter.rs.html#80-89" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Executes the destructor for this type. <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
|
||||
</div></div><h3 id="impl-ExactSizeIterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html" title="trait core::iter::traits::exact_size::ExactSizeIterator">ExactSizeIterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-ExactSizeIterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#242-249" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="method.len" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.len" class="fnname">len</a>(&self) -> usize</code><a class="srclink" href="../../src/generic_array/iter.rs.html#246-248" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the exact length of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.len">Read more</a></p>
|
||||
</div><h4 id="method.is_empty" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.is_empty" class="fnname">is_empty</a>(&self) -> bool</code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/exact_size.rs.html#128-130" title="goto source code">[src]</a></h4><div class="item-info hidden"><div class="stab unstable"><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>exact_size_is_empty</code>)</div></div><div class='docblock hidden'><p>Returns <code>true</code> if the iterator is empty. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/exact_size/trait.ExactSizeIterator.html#method.is_empty">Read more</a></p>
|
||||
</div></div><h3 id="impl-Iterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Iterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#115-164" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Item" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" class="type">Item</a> = T</code></h4><div class='docblock'><p>The type of the elements being iterated over.</p>
|
||||
</div><h4 id="method.next" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#tymethod.next" class="fnname">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#122-132" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Advances the iterator and returns the next value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#tymethod.next">Read more</a></p>
|
||||
</div><h4 id="method.size_hint" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.size_hint" class="fnname">size_hint</a>(&self) -> (usize, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><usize>)</code><a class="srclink" href="../../src/generic_array/iter.rs.html#135-138" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the bounds on the remaining length of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.size_hint">Read more</a></p>
|
||||
</div><h4 id="method.count" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.count" class="fnname">count</a>(self) -> usize</code><a class="srclink" href="../../src/generic_array/iter.rs.html#141-143" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Consumes the iterator, counting the number of iterations and returning it. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.count">Read more</a></p>
|
||||
</div><h4 id="method.nth" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.nth" class="fnname">nth</a>(&mut self, n: usize) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#145-158" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the <code>n</code>th element of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.nth">Read more</a></p>
|
||||
</div><h4 id="method.last" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.last" class="fnname">last</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#160-163" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Consumes the iterator, returning the last element. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.last">Read more</a></p>
|
||||
</div></div><h3 id="impl-FusedIterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/marker/trait.FusedIterator.html" title="trait core::iter::traits::marker::FusedIterator">FusedIterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-FusedIterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#251-255" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-Iterator" class="impl"><code class="in-band">impl<T, N> <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a> for <a class="struct" href="../../generic_array/iter/struct.GenericArrayIter.html" title="struct generic_array::iter::GenericArrayIter">GenericArrayIter</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Iterator" class="anchor"></a><a class="srclink" href="../../src/generic_array/iter.rs.html#119-197" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Item" class="type"><code>type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" class="type">Item</a> = T</code></h4><div class='docblock'><p>The type of the elements being iterated over.</p>
|
||||
</div><h4 id="method.next" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#tymethod.next" class="fnname">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#126-136" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Advances the iterator and returns the next value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#tymethod.next">Read more</a></p>
|
||||
</div><h4 id="method.fold" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold" class="fnname">fold</a><B, F>(self, init: B, f: F) -> B <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(B, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> B, </span></code><a class="srclink" href="../../src/generic_array/iter.rs.html#138-164" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>An iterator method that applies a function, producing a single, final value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></p>
|
||||
</div><h4 id="method.size_hint" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.size_hint" class="fnname">size_hint</a>(&self) -> (usize, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><usize>)</code><a class="srclink" href="../../src/generic_array/iter.rs.html#167-170" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the bounds on the remaining length of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.size_hint">Read more</a></p>
|
||||
</div><h4 id="method.count" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.count" class="fnname">count</a>(self) -> usize</code><a class="srclink" href="../../src/generic_array/iter.rs.html#173-175" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Consumes the iterator, counting the number of iterations and returning it. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.count">Read more</a></p>
|
||||
</div><h4 id="method.nth" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.nth" class="fnname">nth</a>(&mut self, n: usize) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#177-190" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Returns the <code>n</code>th element of the iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.nth">Read more</a></p>
|
||||
</div><h4 id="method.last" class="method hidden"><code>fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.last" class="fnname">last</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T></code><a class="srclink" href="../../src/generic_array/iter.rs.html#193-196" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Consumes the iterator, returning the last element. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.last">Read more</a></p>
|
||||
</div><h4 id="method.advance_by" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.advance_by" class="fnname">advance_by</a>(&mut self, n: usize) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(), usize></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/iterator.rs.html#318-323" title="goto source code">[src]</a></h4><div class="item-info hidden"><div class="stab unstable"><details><summary><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>iter_advance_by</code>)</summary><p>recently added</p>
|
||||
</details></div></div><div class='docblock hidden'><p>Advances the iterator by <code>n</code> elements. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.advance_by">Read more</a></p>
|
||||
</div><h4 id="method.step_by" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.step_by" class="fnname">step_by</a>(self, step: usize) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/iter/adapters/step_by/struct.StepBy.html" title="struct core::iter::adapters::step_by::StepBy">StepBy</a><Self></code><span class="since" title="Stable since Rust version 1.28.0">1.28.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/iterator.rs.html#417-422" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Creates an iterator starting at the same point, but stepping by
|
||||
@ -68,7 +69,6 @@ such that all those that return <code>true</code> precede all those that return
|
||||
successfully, producing a single, final value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.try_fold">Read more</a></p>
|
||||
</div><h4 id="method.try_for_each" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each" class="fnname">try_for_each</a><F, R>(&mut self, f: F) -> R <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> R,<br> R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/try/trait.Try.html" title="trait core::ops::try::Try">Try</a><Ok = ()>, </span></code><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/iterator.rs.html#1922-1934" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>An iterator method that applies a fallible function to each item in the
|
||||
iterator, stopping at the first error and returning that error. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.try_for_each">Read more</a></p>
|
||||
</div><h4 id="method.fold" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold" class="fnname">fold</a><B, F>(self, init: B, f: F) -> B <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(B, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> B, </span></code><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/iterator.rs.html#2016-2026" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>An iterator method that applies a function, producing a single, final value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold">Read more</a></p>
|
||||
</div><h4 id="method.fold_first" class="method hidden"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold_first" class="fnname">fold_first</a><F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>> <span class="where fmt-newline">where<br> F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>) -> Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>, </span></code><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/iter/traits/iterator.rs.html#2058-2065" title="goto source code">[src]</a></h4><div class="item-info hidden"><div class="stab unstable"><span class="emoji">🔬</span> This is a nightly-only experimental API. (<code>iterator_fold_self</code>)</div></div><div class='docblock hidden'><p>The same as <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.fold"><code>fold()</code></a>, but uses the first element in the
|
||||
iterator as the initial value, folding every subsequent element into it.
|
||||
If the iterator is empty, return <a href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html#variant.None" title="None"><code>None</code></a>; otherwise, return the result
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!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 `sequence` mod in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, sequence"><title>generic_array::sequence - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Module sequence</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class="location"><a href="../index.html">generic_array</a></p><script>window.sidebarCurrent = {name: "sequence", 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!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#1-320" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">sequence</a></span></h1><div class="docblock"><p>Useful traits for manipulating sequences of data stored in <code>GenericArray</code>s</p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#1-380" title="goto source code">[src]</a></span><span class="in-band">Module <a href="../index.html">generic_array</a>::<wbr><a class="mod" href="">sequence</a></span></h1><div class="docblock"><p>Useful traits for manipulating sequences of data stored in <code>GenericArray</code>s</p>
|
||||
</div><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2>
|
||||
<table><tr class="module-item"><td><a class="trait" href="trait.Concat.html" title="generic_array::sequence::Concat trait">Concat</a></td><td class="docblock-short"><p>Defines <code>GenericSequence</code>s which can be joined together, forming a larger array.</p>
|
||||
</td></tr><tr class="module-item"><td><a class="trait" href="trait.GenericSequence.html" title="generic_array::sequence::GenericSequence trait">GenericSequence</a></td><td class="docblock-short"><p>Defines some sequence with an associated length and iteration capabilities.</p>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!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 `Concat` trait in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, Concat"><title>generic_array::sequence::Concat - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Trait Concat</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#associated-types">Associated Types</a><div class="sidebar-links"><a href="#associatedtype.Output">Output</a><a href="#associatedtype.Rest">Rest</a></div><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.concat">concat</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a></p><script>window.sidebarCurrent = {name: "Concat", ty: "trait", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#285-297" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Concat</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Concat<T, M>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> <span class="where fmt-newline">where<br> M: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span>{
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#343-355" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Concat</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Concat<T, M>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> <span class="where fmt-newline">where<br> M: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span>{
|
||||
type <a href="#associatedtype.Rest" class="type">Rest</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T, Length = M>;
|
||||
type <a href="#associatedtype.Output" class="type">Output</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T>;
|
||||
fn <a href="#tymethod.concat" class="fnname">concat</a>(self, rest: Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Rest" title="type generic_array::sequence::Concat::Rest">Rest</a>) -> Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Output" title="type generic_array::sequence::Concat::Output">Output</a>;
|
||||
}</pre></div><div class="docblock"><p>Defines <code>GenericSequence</code>s which can be joined together, forming a larger array.</p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Rest" class="method"><code>type <a href="#associatedtype.Rest" class="type">Rest</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T, Length = M></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#290" title="goto source code">[src]</a></h3><div class="docblock"><p>Sequence to be concatenated with <code>self</code></p>
|
||||
</div><h3 id="associatedtype.Output" class="method"><code>type <a href="#associatedtype.Output" class="type">Output</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#293" title="goto source code">[src]</a></h3><div class="docblock"><p>Resulting sequence formed by the concatenation.</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.concat" class="method"><code>fn <a href="#tymethod.concat" class="fnname">concat</a>(self, rest: Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Rest" title="type generic_array::sequence::Concat::Rest">Rest</a>) -> Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Output" title="type generic_array::sequence::Concat::Output">Output</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#296" title="goto source code">[src]</a></h3><div class="docblock"><p>Concatenate, or join, two sequences.</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Concat%3CT%2C%20M%3E" class="impl"><code class="in-band">impl<T, N, M> Concat<T, M> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><M>,<br> M: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sum.html" title="type typenum::operator_aliases::Sum">Sum</a><N, M>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Concat%3CT%2C%20M%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#299-320" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Rest-1" class="type"><code>type <a href="#associatedtype.Rest-1" class="type">Rest</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, M></code></h4><h4 id="associatedtype.Output-1" class="type"><code>type <a href="#associatedtype.Output-1" class="type">Output</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Sum.html" title="type typenum::operator_aliases::Sum">Sum</a><N, M>></code></h4><h4 id="method.concat" class="method hidden"><code>fn <a href="#method.concat" class="fnname">concat</a>(self, rest: Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Rest" title="type generic_array::sequence::Concat::Rest">Rest</a>) -> Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Output" title="type generic_array::sequence::Concat::Output">Output</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#308-319" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Concat.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Rest" class="method"><code>type <a href="#associatedtype.Rest" class="type">Rest</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T, Length = M></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#348" title="goto source code">[src]</a></h3><div class="docblock"><p>Sequence to be concatenated with <code>self</code></p>
|
||||
</div><h3 id="associatedtype.Output" class="method"><code>type <a href="#associatedtype.Output" class="type">Output</a>: <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#351" title="goto source code">[src]</a></h3><div class="docblock"><p>Resulting sequence formed by the concatenation.</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.concat" class="method"><code>fn <a href="#tymethod.concat" class="fnname">concat</a>(self, rest: Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Rest" title="type generic_array::sequence::Concat::Rest">Rest</a>) -> Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Output" title="type generic_array::sequence::Concat::Output">Output</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#354" title="goto source code">[src]</a></h3><div class="docblock"><p>Concatenate, or join, two sequences.</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Concat%3CT%2C%20M%3E" class="impl"><code class="in-band">impl<T, N, M> Concat<T, M> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><M>,<br> M: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sum.html" title="type typenum::operator_aliases::Sum">Sum</a><N, M>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Concat%3CT%2C%20M%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#357-380" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Rest-1" class="type"><code>type <a href="#associatedtype.Rest-1" class="type">Rest</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, M></code></h4><h4 id="associatedtype.Output-1" class="type"><code>type <a href="#associatedtype.Output-1" class="type">Output</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Sum.html" title="type typenum::operator_aliases::Sum">Sum</a><N, M>></code></h4><h4 id="method.concat" class="method hidden"><code>fn <a href="#method.concat" class="fnname">concat</a>(self, rest: Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Rest" title="type generic_array::sequence::Concat::Rest">Rest</a>) -> Self::<a class="type" href="../../generic_array/sequence/trait.Concat.html#associatedtype.Output" title="type generic_array::sequence::Concat::Output">Output</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#366-379" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Concat.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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
@ -1,30 +1,30 @@
|
||||
<!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 `Lengthen` trait in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, Lengthen"><title>generic_array::sequence::Lengthen - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Trait Lengthen</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#associated-types">Associated Types</a><div class="sidebar-links"><a href="#associatedtype.Longer">Longer</a></div><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.append">append</a><a href="#tymethod.prepend">prepend</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a></p><script>window.sidebarCurrent = {name: "Lengthen", ty: "trait", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#112-141" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Lengthen</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Lengthen<T>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> {
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#111-146" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Lengthen</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Lengthen<T>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> {
|
||||
type <a href="#associatedtype.Longer" class="type">Longer</a>: <a class="trait" href="../../generic_array/sequence/trait.Shorten.html" title="trait generic_array::sequence::Shorten">Shorten</a><T, Shorter = Self>;
|
||||
fn <a href="#tymethod.append" class="fnname">append</a>(self, last: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a>;
|
||||
<div class="item-spacer"></div> fn <a href="#tymethod.prepend" class="fnname">prepend</a>(self, first: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a>;
|
||||
}</pre></div><div class="docblock"><p>Defines any <code>GenericSequence</code> which can be lengthened or extended by appending
|
||||
or prepending an element to it.</p>
|
||||
<p>Any lengthened sequence can be shortened back to the original using <code>pop_front</code> or <code>pop_back</code></p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Longer" class="method"><code>type <a href="#associatedtype.Longer" class="type">Longer</a>: <a class="trait" href="../../generic_array/sequence/trait.Shorten.html" title="trait generic_array::sequence::Shorten">Shorten</a><T, Shorter = Self></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#114" title="goto source code">[src]</a></h3><div class="docblock"><p><code>GenericSequence</code> that has one more element than <code>Self</code></p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.append" class="method"><code>fn <a href="#tymethod.append" class="fnname">append</a>(self, last: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#127" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array with the given element appended to the end of it.</p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Longer" class="method"><code>type <a href="#associatedtype.Longer" class="type">Longer</a>: <a class="trait" href="../../generic_array/sequence/trait.Shorten.html" title="trait generic_array::sequence::Shorten">Shorten</a><T, Shorter = Self></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#113" title="goto source code">[src]</a></h3><div class="docblock"><p><code>GenericSequence</code> that has one more element than <code>Self</code></p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.append" class="method"><code>fn <a href="#tymethod.append" class="fnname">append</a>(self, last: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#129" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array with the given element appended to the end of it.</p>
|
||||
<p>Example:</p>
|
||||
|
||||
<div class='information'><div class='tooltip ignore'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore">
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||||
|
||||
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">a</span>.<span class="ident">append</span>(<span class="number">4</span>);
|
||||
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">b</span>, <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</pre></div>
|
||||
</div><h3 id="tymethod.prepend" class="method"><code>fn <a href="#tymethod.prepend" class="fnname">prepend</a>(self, first: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#140" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array with the given element prepended to the front of it.</p>
|
||||
</div><h3 id="tymethod.prepend" class="method"><code>fn <a href="#tymethod.prepend" class="fnname">prepend</a>(self, first: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#145" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array with the given element prepended to the front of it.</p>
|
||||
<p>Example:</p>
|
||||
|
||||
<div class='information'><div class='tooltip ignore'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore">
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||||
|
||||
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">a</span>.<span class="ident">prepend</span>(<span class="number">4</span>);
|
||||
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">b</span>, <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">4</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);</pre></div>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Lengthen%3CT%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> Lengthen<T> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>, Output = N>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><<a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Lengthen%3CT%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#179-211" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Longer-1" class="type"><code>type <a href="#associatedtype.Longer-1" class="type">Longer</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>></code></h4><h4 id="method.append" class="method hidden"><code>fn <a href="#method.append" class="fnname">append</a>(self, last: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#188-197" title="goto source code">[src]</a></h4><h4 id="method.prepend" class="method hidden"><code>fn <a href="#method.prepend" class="fnname">prepend</a>(self, first: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#199-210" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Lengthen.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Lengthen%3CT%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> Lengthen<T> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>, Output = N>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><<a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Lengthen%3CT%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#190-230" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Longer-1" class="type"><code>type <a href="#associatedtype.Longer-1" class="type">Longer</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><N>></code></h4><h4 id="method.append" class="method hidden"><code>fn <a href="#method.append" class="fnname">append</a>(self, last: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#199-213" title="goto source code">[src]</a></h4><h4 id="method.prepend" class="method hidden"><code>fn <a href="#method.prepend" class="fnname">prepend</a>(self, first: T) -> Self::<a class="type" href="../../generic_array/sequence/trait.Lengthen.html#associatedtype.Longer" title="type generic_array::sequence::Lengthen::Longer">Longer</a></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#215-229" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Lengthen.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,32 +1,32 @@
|
||||
<!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 `Shorten` trait in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, Shorten"><title>generic_array::sequence::Shorten - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Trait Shorten</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#associated-types">Associated Types</a><div class="sidebar-links"><a href="#associatedtype.Shorter">Shorter</a></div><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.pop_back">pop_back</a><a href="#tymethod.pop_front">pop_front</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a></p><script>window.sidebarCurrent = {name: "Shorten", ty: "trait", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#147-177" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Shorten</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Shorten<T>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> {
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#152-188" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="trait" href="">Shorten</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait Shorten<T>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../../generic_array/sequence/trait.GenericSequence.html" title="trait generic_array::sequence::GenericSequence">GenericSequence</a><T> {
|
||||
type <a href="#associatedtype.Shorter" class="type">Shorter</a>: <a class="trait" href="../../generic_array/sequence/trait.Lengthen.html" title="trait generic_array::sequence::Lengthen">Lengthen</a><T, Longer = Self>;
|
||||
fn <a href="#tymethod.pop_back" class="fnname">pop_back</a>(self) -> (Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>, T);
|
||||
<div class="item-spacer"></div> fn <a href="#tymethod.pop_front" class="fnname">pop_front</a>(self) -> (T, Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>);
|
||||
}</pre></div><div class="docblock"><p>Defines a <code>GenericSequence</code> which can be shortened by removing the first or last element from it.</p>
|
||||
<p>Additionally, any shortened sequence can be lengthened by
|
||||
appending or prepending an element to it.</p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Shorter" class="method"><code>type <a href="#associatedtype.Shorter" class="type">Shorter</a>: <a class="trait" href="../../generic_array/sequence/trait.Lengthen.html" title="trait generic_array::sequence::Lengthen">Lengthen</a><T, Longer = Self></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#149" title="goto source code">[src]</a></h3><div class="docblock"><p><code>GenericSequence</code> that has one less element than <code>Self</code></p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.pop_back" class="method"><code>fn <a href="#tymethod.pop_back" class="fnname">pop_back</a>(self) -> (Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>, T)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#163" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array without the last element, and the last element.</p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.Shorter" class="method"><code>type <a href="#associatedtype.Shorter" class="type">Shorter</a>: <a class="trait" href="../../generic_array/sequence/trait.Lengthen.html" title="trait generic_array::sequence::Lengthen">Lengthen</a><T, Longer = Self></code><a class="srclink" href="../../src/generic_array/sequence.rs.html#154" title="goto source code">[src]</a></h3><div class="docblock"><p><code>GenericSequence</code> that has one less element than <code>Self</code></p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.pop_back" class="method"><code>fn <a href="#tymethod.pop_back" class="fnname">pop_back</a>(self) -> (Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>, T)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#171" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array without the last element, and the last element.</p>
|
||||
<p>Example:</p>
|
||||
|
||||
<div class='information'><div class='tooltip ignore'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore">
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
|
||||
|
||||
<span class="kw">let</span> (<span class="ident">init</span>, <span class="ident">last</span>) <span class="op">=</span> <span class="ident">a</span>.<span class="ident">pop_back</span>();
|
||||
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">init</span>, <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">last</span>, <span class="number">4</span>);</pre></div>
|
||||
</div><h3 id="tymethod.pop_front" class="method"><code>fn <a href="#tymethod.pop_front" class="fnname">pop_front</a>(self) -> (T, Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#176" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array without the first element, and the first element.
|
||||
</div><h3 id="tymethod.pop_front" class="method"><code>fn <a href="#tymethod.pop_front" class="fnname">pop_front</a>(self) -> (T, Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#187" title="goto source code">[src]</a></h3><div class="docblock"><p>Returns a new array without the first element, and the first element.
|
||||
Example:</p>
|
||||
|
||||
<div class='information'><div class='tooltip ignore'>ⓘ</div></div><div class="example-wrap"><pre class="rust rust-example-rendered ignore">
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
|
||||
|
||||
<span class="kw">let</span> (<span class="ident">head</span>, <span class="ident">tail</span>) <span class="op">=</span> <span class="ident">a</span>.<span class="ident">pop_front</span>();
|
||||
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">head</span>, <span class="number">1</span>);
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">tail</span>, <span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</pre></div>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Shorten%3CT%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> Shorten<T> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>, Output = N>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><<a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Shorten%3CT%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#213-245" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Shorter-1" class="type"><code>type <a href="#associatedtype.Shorter-1" class="type">Shorter</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>></code></h4><h4 id="method.pop_back" class="method hidden"><code>fn <a href="#method.pop_back" class="fnname">pop_back</a>(self) -> (Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>, T)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#222-232" title="goto source code">[src]</a></h4><h4 id="method.pop_front" class="method hidden"><code>fn <a href="#method.pop_front" class="fnname">pop_front</a>(self) -> (T, Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#234-244" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Shorten.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-Shorten%3CT%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> Shorten<T> for <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, N> <span class="where fmt-newline">where<br> N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>,<br> <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a><<a class="struct" href="../../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>, Output = N>,<br> <a class="type" href="../../typenum/operator_aliases/type.Add1.html" title="type typenum::operator_aliases::Add1">Add1</a><<a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>>: <a class="trait" href="../../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>, </span></code><a href="#impl-Shorten%3CT%3E" class="anchor"></a><a class="srclink" href="../../src/generic_array/sequence.rs.html#232-263" title="goto source code">[src]</a></h3><div class="impl-items"><h4 id="associatedtype.Shorter-1" class="type"><code>type <a href="#associatedtype.Shorter-1" class="type">Shorter</a> = <a class="struct" href="../../generic_array/struct.GenericArray.html" title="struct generic_array::GenericArray">GenericArray</a><T, <a class="type" href="../../typenum/operator_aliases/type.Sub1.html" title="type typenum::operator_aliases::Sub1">Sub1</a><N>></code></h4><h4 id="method.pop_back" class="method hidden"><code>fn <a href="#method.pop_back" class="fnname">pop_back</a>(self) -> (Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>, T)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#241-250" title="goto source code">[src]</a></h4><h4 id="method.pop_front" class="method hidden"><code>fn <a href="#method.pop_front" class="fnname">pop_front</a>(self) -> (T, Self::<a class="type" href="../../generic_array/sequence/trait.Shorten.html#associatedtype.Shorter" title="type generic_array::sequence::Shorten::Shorter">Shorter</a>)</code><a class="srclink" href="../../src/generic_array/sequence.rs.html#252-262" title="goto source code">[src]</a></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/generic_array/sequence/trait.Shorten.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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
@ -1,7 +1,7 @@
|
||||
<!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 `SequenceItem` type in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, SequenceItem"><title>generic_array::sequence::SequenceItem - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc type"><!--[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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Type Definition SequenceItem</p><div class="sidebar-elems"><p class="location"><a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a></p><script>window.sidebarCurrent = {name: "SequenceItem", ty: "type", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#74" title="goto source code">[src]</a></span><span class="in-band">Type Definition <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="type" href="">SequenceItem</a></span></h1><pre class="rust typedef">type SequenceItem<T> = <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a>;</pre><div class="docblock"><p>Accessor for <code>GenericSequence</code> item type, which is really <code>IntoIterator::Item</code></p>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../../src/generic_array/sequence.rs.html#73" title="goto source code">[src]</a></span><span class="in-band">Type Definition <a href="../index.html">generic_array</a>::<wbr><a href="index.html">sequence</a>::<wbr><a class="type" href="">SequenceItem</a></span></h1><pre class="rust typedef">type SequenceItem<T> = <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a>;</pre><div class="docblock"><p>Accessor for <code>GenericSequence</code> item type, which is really <code>IntoIterator::Item</code></p>
|
||||
<p>For deeply nested generic mapped sequence types, like shown in <code>tests/generics.rs</code>,
|
||||
this can be useful for keeping things organized.</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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
@ -1,8 +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 `ArrayLength` trait in crate `generic_array`."><meta name="keywords" content="rust, rustlang, rust-lang, ArrayLength"><title>generic_array::ArrayLength - 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="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script id="default-settings"></script><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[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">☰</div><a href='../generic_array/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class="location">Trait ArrayLength</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#associated-types">Associated Types</a><div class="sidebar-links"><a href="#associatedtype.ArrayType">ArrayType</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B0%3E">UInt<N, B0></a><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B1%3E">UInt<N, B1></a><a href="#impl-ArrayLength%3CT%3E-for-UTerm">UTerm</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class="location"><a href="index.html">generic_array</a></p><script>window.sidebarCurrent = {name: "ArrayLength", ty: "trait", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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">−</span>]</a></span><a class="srclink" href="../src/generic_array/lib.rs.html#75-78" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="index.html">generic_array</a>::<wbr><a class="trait" href="">ArrayLength</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait ArrayLength<T>: <a class="trait" href="../typenum/marker_traits/trait.Unsigned.html" title="trait typenum::marker_traits::Unsigned">Unsigned</a> {
|
||||
<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">−</span>]</a></span><a class="srclink" href="../src/generic_array/lib.rs.html#105-108" title="goto source code">[src]</a></span><span class="in-band">Trait <a href="index.html">generic_array</a>::<wbr><a class="trait" href="">ArrayLength</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub unsafe trait ArrayLength<T>: <a class="trait" href="../typenum/marker_traits/trait.Unsigned.html" title="trait typenum::marker_traits::Unsigned">Unsigned</a> {
|
||||
type <a href="#associatedtype.ArrayType" class="type">ArrayType</a>;
|
||||
}</pre></div><div class="docblock"><p>Trait making <code>GenericArray</code> work, marking types to be used as length of an array</p>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.ArrayType" class="method"><code>type <a href="#associatedtype.ArrayType" class="type">ArrayType</a></code><a class="srclink" href="../src/generic_array/lib.rs.html#77" title="goto source code">[src]</a></h3><div class="docblock"><p>Associated type representing the array type for the number</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><h3 id="impl-ArrayLength%3CT%3E-for-UTerm" class="impl"><code class="in-band">impl<T> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UTerm.html" title="struct typenum::uint::UTerm">UTerm</a></code><a href="#impl-ArrayLength%3CT%3E-for-UTerm" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#80-83" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B0%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UInt.html" title="struct typenum::uint::UInt">UInt</a><N, <a class="struct" href="../typenum/bit/struct.B0.html" title="struct typenum::bit::B0">B0</a>></code><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B0%3E" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#129-132" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B1%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UInt.html" title="struct typenum::uint::UInt">UInt</a><N, <a class="struct" href="../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>></code><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B1%3E" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#134-137" title="goto source code">[src]</a></h3><div class="impl-items"></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../implementors/generic_array/trait.ArrayLength.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "generic_array";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
</div><h2 id="associated-types" class="small-section-header">Associated Types<a href="#associated-types" class="anchor"></a></h2><div class="methods"><h3 id="associatedtype.ArrayType" class="method"><code>type <a href="#associatedtype.ArrayType" class="type">ArrayType</a></code><a class="srclink" href="../src/generic_array/lib.rs.html#107" title="goto source code">[src]</a></h3><div class="docblock"><p>Associated type representing the array type for the number</p>
|
||||
</div></div><span class="loading-content">Loading content...</span><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><h3 id="impl-ArrayLength%3CT%3E-for-UTerm" class="impl"><code class="in-band">impl<T> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UTerm.html" title="struct typenum::uint::UTerm">UTerm</a></code><a href="#impl-ArrayLength%3CT%3E-for-UTerm" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#110-113" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B0%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UInt.html" title="struct typenum::uint::UInt">UInt</a><N, <a class="struct" href="../typenum/bit/struct.B0.html" title="struct typenum::bit::B0">B0</a>></code><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B0%3E" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#159-162" title="goto source code">[src]</a></h3><div class="impl-items"></div><h3 id="impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B1%3E" class="impl"><code class="in-band">impl<T, N: <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T>> <a class="trait" href="../generic_array/trait.ArrayLength.html" title="trait generic_array::ArrayLength">ArrayLength</a><T> for <a class="struct" href="../typenum/uint/struct.UInt.html" title="struct typenum::uint::UInt">UInt</a><N, <a class="struct" href="../typenum/bit/struct.B1.html" title="struct typenum::bit::B1">B1</a>></code><a href="#impl-ArrayLength%3CT%3E-for-UInt%3CN%2C%20B1%3E" class="anchor"></a><a class="srclink" href="../src/generic_array/lib.rs.html#164-167" title="goto source code">[src]</a></h3><div class="impl-items"></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../implementors/generic_array/trait.ArrayLength.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "generic_array";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
@ -1,4 +1,4 @@
|
||||
(function() {var implementors = {};
|
||||
implementors["generic_array"] = [{"text":"impl<T, N> AsMut<[T]> for GenericArray<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]}];
|
||||
implementors["generic_array"] = [{"text":"impl<T, N> AsMut<[T]> for GenericArray<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 1]> for GenericArray<T, U1>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 2]> for GenericArray<T, U2>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 3]> for GenericArray<T, U3>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 4]> for GenericArray<T, U4>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 5]> for GenericArray<T, U5>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 6]> for GenericArray<T, U6>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 7]> for GenericArray<T, U7>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 8]> for GenericArray<T, U8>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 9]> for GenericArray<T, U9>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 10]> for GenericArray<T, U10>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 11]> for GenericArray<T, U11>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 12]> for GenericArray<T, U12>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 13]> for GenericArray<T, U13>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 14]> for GenericArray<T, U14>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 15]> for GenericArray<T, U15>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 16]> for GenericArray<T, U16>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 17]> for GenericArray<T, U17>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 18]> for GenericArray<T, U18>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 19]> for GenericArray<T, U19>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 20]> for GenericArray<T, U20>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 21]> for GenericArray<T, U21>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 22]> for GenericArray<T, U22>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 23]> for GenericArray<T, U23>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 24]> for GenericArray<T, U24>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 25]> for GenericArray<T, U25>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 26]> for GenericArray<T, U26>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 27]> for GenericArray<T, U27>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 28]> for GenericArray<T, U28>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 29]> for GenericArray<T, U29>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 30]> for GenericArray<T, U30>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 31]> for GenericArray<T, U31>","synthetic":false,"types":[]},{"text":"impl<T> AsMut<[T; 32]> for GenericArray<T, U32>","synthetic":false,"types":[]}];
|
||||
implementors["heapless"] = [{"text":"impl<T, N> AsMut<Vec<T, N>> for Vec<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]},{"text":"impl<T, N> AsMut<[T]> for Vec<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]}];
|
||||
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
@ -1,4 +1,4 @@
|
||||
(function() {var implementors = {};
|
||||
implementors["generic_array"] = [{"text":"impl<T, N> AsRef<[T]> for GenericArray<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]}];
|
||||
implementors["generic_array"] = [{"text":"impl<T, N> AsRef<[T]> for GenericArray<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 1]> for GenericArray<T, U1>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 2]> for GenericArray<T, U2>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 3]> for GenericArray<T, U3>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 4]> for GenericArray<T, U4>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 5]> for GenericArray<T, U5>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 6]> for GenericArray<T, U6>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 7]> for GenericArray<T, U7>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 8]> for GenericArray<T, U8>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 9]> for GenericArray<T, U9>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 10]> for GenericArray<T, U10>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 11]> for GenericArray<T, U11>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 12]> for GenericArray<T, U12>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 13]> for GenericArray<T, U13>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 14]> for GenericArray<T, U14>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 15]> for GenericArray<T, U15>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 16]> for GenericArray<T, U16>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 17]> for GenericArray<T, U17>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 18]> for GenericArray<T, U18>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 19]> for GenericArray<T, U19>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 20]> for GenericArray<T, U20>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 21]> for GenericArray<T, U21>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 22]> for GenericArray<T, U22>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 23]> for GenericArray<T, U23>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 24]> for GenericArray<T, U24>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 25]> for GenericArray<T, U25>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 26]> for GenericArray<T, U26>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 27]> for GenericArray<T, U27>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 28]> for GenericArray<T, U28>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 29]> for GenericArray<T, U29>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 30]> for GenericArray<T, U30>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 31]> for GenericArray<T, U31>","synthetic":false,"types":[]},{"text":"impl<T> AsRef<[T; 32]> for GenericArray<T, U32>","synthetic":false,"types":[]}];
|
||||
implementors["heapless"] = [{"text":"impl<N> AsRef<str> for String<N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<u8>, </span>","synthetic":false,"types":[]},{"text":"impl<N> AsRef<[u8]> for String<N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<u8>, </span>","synthetic":false,"types":[]},{"text":"impl<T, N> AsRef<Vec<T, N>> for Vec<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]},{"text":"impl<T, N> AsRef<[T]> for Vec<T, N> <span class=\"where fmt-newline\">where<br> N: ArrayLength<T>, </span>","synthetic":false,"types":[]}];
|
||||
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/arr.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>arr.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/arr.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>arr.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -126,7 +126,6 @@
|
||||
<span id="123">123</span>
|
||||
<span id="124">124</span>
|
||||
<span id="125">125</span>
|
||||
<span id="126">126</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! Implementation for `arr!` macro.</span>
|
||||
|
||||
@ -155,18 +154,18 @@
|
||||
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
|
||||
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
|
||||
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">arr_impl</span> {
|
||||
(@<span class="ident">replace_expr</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>)<span class="op">=</span><span class="op">></span>{
|
||||
<span class="number">1</span>
|
||||
};
|
||||
(@<span class="ident">replace_expr</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>) <span class="op">=</span><span class="op">></span> { <span class="number">1</span> };
|
||||
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ty</span>, [$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>:<span class="ident">expr</span>),<span class="kw-2">*</span>], []) <span class="op">=</span><span class="op">></span> ({
|
||||
<span class="kw">const</span> <span class="ident">__ARR_LENGTH</span>:<span class="ident">usize</span><span class="op">=</span><span class="number">0</span> $(<span class="op">+</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro">arr_impl</span><span class="macro">!</span>(@<span class="macro-nonterminal">replace_expr</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>) )<span class="kw-2">*</span>;
|
||||
<span class="kw">fn</span> <span class="ident">__do_transmute</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span>, <span class="ident">N</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span>(<span class="ident">arr</span>: [<span class="ident">T</span>; <span class="ident">__ARR_LENGTH</span>]) <span class="op">-</span><span class="op">></span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="kw">const</span> <span class="ident">__ARR_LENGTH</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">0</span> $(<span class="op">+</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro">arr_impl</span><span class="macro">!</span>(@<span class="macro-nonterminal">replace_expr</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>) )<span class="kw-2">*</span>;
|
||||
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">__do_transmute</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span>(<span class="ident">arr</span>: [<span class="ident">T</span>; <span class="ident">__ARR_LENGTH</span>]) <span class="op">-</span><span class="op">></span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>(<span class="ident">arr</span>) }
|
||||
}
|
||||
|
||||
<span class="kw">let</span> <span class="kw">_</span>:[();<span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> <span class="kw">as</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">typenum</span>::<span class="ident">Unsigned</span><span class="op">></span>::<span class="ident">USIZE</span>]<span class="op">=</span>[();<span class="ident">__ARR_LENGTH</span>];
|
||||
<span class="kw">let</span> <span class="kw">_</span>: [(); <span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> <span class="kw">as</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">typenum</span>::<span class="ident">Unsigned</span><span class="op">></span>::<span class="ident">USIZE</span>] <span class="op">=</span> [(); <span class="ident">__ARR_LENGTH</span>];
|
||||
|
||||
<span class="ident">__do_transmute</span>::<span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>,<span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span><span class="op">></span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>),<span class="kw-2">*</span>])
|
||||
<span class="ident">__do_transmute</span>::<span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span><span class="op">></span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span> <span class="kw">as</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>),<span class="kw-2">*</span>])
|
||||
});
|
||||
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ty</span>, [], [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x1</span>:<span class="ident">expr</span>]) <span class="op">=</span><span class="op">></span> (
|
||||
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro">arr_impl</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>; <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">arr</span>::<span class="ident">Inc</span><span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span><span class="op">></span>, [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x1</span>], [])
|
||||
@ -190,14 +189,13 @@
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>::<span class="op"><</span>[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>; <span class="number">0</span>], <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">GenericArray</span><span class="op"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">typenum</span>::<span class="ident">U0</span><span class="op">></span><span class="op">></span>([]) }
|
||||
});
|
||||
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>:<span class="ident">expr</span>),<span class="op">*</span> $(,)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">></span> (
|
||||
<span class="macro">arr_impl</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>; <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">typenum</span>::<span class="ident">U0</span>, [], [$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>),<span class="kw-2">*</span>])
|
||||
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro">arr_impl</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>; <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">typenum</span>::<span class="ident">U0</span>, [], [$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>),<span class="kw-2">*</span>])
|
||||
);
|
||||
($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>:<span class="ident">expr</span>,)<span class="op">+</span>) <span class="op">=</span><span class="op">></span> (<span class="macro">arr</span><span class="macro">!</span>[$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>),<span class="kw-2">*</span>]);
|
||||
($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>:<span class="ident">expr</span>,)<span class="op">+</span>) <span class="op">=</span><span class="op">></span> (<span class="macro">arr</span><span class="macro">!</span>[$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">x</span>),<span class="op">+</span>]);
|
||||
() <span class="op">=</span><span class="op">></span> (<span class="string">""</span><span class="string">"Macro requires a type, e.g. `let array = arr![u32; 1, 2, 3];`"</span>)
|
||||
}
|
||||
|
||||
|
||||
<span class="kw">mod</span> <span class="ident">doctests_only</span>{
|
||||
<span class="kw">mod</span> <span class="ident">doctests_only</span> {
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// # With ellision</span>
|
||||
<span class="doccomment">///</span>
|
||||
@ -222,7 +220,7 @@
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// # Without ellision</span>
|
||||
<span class="doccomment">/// </span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// Testing that lifetimes aren't transmuted when they're specified explicitly.</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// ```compile_fail</span>
|
||||
@ -252,7 +250,7 @@
|
||||
<span class="doccomment">/// }</span>
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">dead_code</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">DocTests</span>{}
|
||||
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">DocTests</span> {}
|
||||
}
|
||||
</pre></div>
|
||||
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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>
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/functional.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>functional.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/functional.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>functional.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -95,6 +95,7 @@
|
||||
<span id="92">92</span>
|
||||
<span id="93">93</span>
|
||||
<span id="94">94</span>
|
||||
<span id="95">95</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! Functional programming with generic sequences</span>
|
||||
<span class="doccomment">//!</span>
|
||||
@ -102,7 +103,8 @@
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">ArrayLength</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">iter</span>::<span class="ident">FromIterator</span>;
|
||||
<span class="kw">use</span> <span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="doccomment">/// Defines the relationship between one generic sequence and another,</span>
|
||||
<span class="doccomment">/// for operations such as `map` and `zip`.</span>
|
||||
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/hex.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>hex.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/hex.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>hex.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -103,6 +103,9 @@
|
||||
<span id="100">100</span>
|
||||
<span id="101">101</span>
|
||||
<span id="102">102</span>
|
||||
<span id="103">103</span>
|
||||
<span id="104">104</span>
|
||||
<span id="105">105</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! Generic array are commonly used as a return value for hash digests, so</span>
|
||||
<span class="doccomment">//! it's a good idea to allow to hexlify them easily. This module implements</span>
|
||||
@ -121,13 +124,12 @@
|
||||
<span class="doccomment">//! ```</span>
|
||||
<span class="doccomment">//!</span>
|
||||
|
||||
<span class="kw">use</span> {<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">cmp</span>::<span class="ident">min</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">fmt</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">ops</span>::<span class="ident">Add</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">str</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::{<span class="ident">fmt</span>, <span class="ident">str</span>, <span class="ident">ops</span>::<span class="ident">Add</span>, <span class="ident">cmp</span>::<span class="ident">min</span>};
|
||||
|
||||
<span class="kw">use</span> <span class="ident">typenum</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::{<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
|
||||
<span class="kw">static</span> <span class="ident">LOWER_CHARS</span>: <span class="kw-2">&</span><span class="lifetime">'static</span> [<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b"0123456789abcdef"</span>;
|
||||
<span class="kw">static</span> <span class="ident">UPPER_CHARS</span>: <span class="kw-2">&</span><span class="lifetime">'static</span> [<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b"0123456789ABCDEF"</span>;
|
||||
|
||||
@ -136,19 +138,20 @@
|
||||
<span class="ident">T</span>: <span class="ident">Add</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
<span class="op"><</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">Add</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span>::<span class="ident">Output</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">u8</span><span class="op">></span>,
|
||||
{
|
||||
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-</span><span class="op">></span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
|
||||
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span><span class="op"><</span><span class="lifetime">'_</span><span class="op">></span>) <span class="op">-</span><span class="op">></span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
|
||||
<span class="kw">let</span> <span class="ident">max_digits</span> <span class="op">=</span> <span class="ident">f</span>.<span class="ident">precision</span>().<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="op">|</span> <span class="self">self</span>.<span class="ident">len</span>() <span class="op">*</span> <span class="number">2</span>);
|
||||
<span class="kw">let</span> <span class="ident">max_hex</span> <span class="op">=</span> (<span class="ident">max_digits</span> <span class="op">></span><span class="op">></span> <span class="number">1</span>) <span class="op">+</span> (<span class="ident">max_digits</span> <span class="op">&</span> <span class="number">1</span>);
|
||||
|
||||
<span class="kw">if</span> <span class="ident">T</span>::<span class="ident">to_usize</span>() <span class="op"><</span> <span class="number">1024</span> {
|
||||
<span class="kw">if</span> <span class="ident">T</span>::<span class="ident">USIZE</span> <span class="op"><</span> <span class="number">1024</span> {
|
||||
<span class="comment">// For small arrays use a stack allocated</span>
|
||||
<span class="comment">// buffer of 2x number of bytes</span>
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">GenericArray</span>::<span class="op"><</span><span class="ident">u8</span>, <span class="ident">Sum</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">T</span><span class="op">></span><span class="op">></span>::<span class="ident">default</span>();
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">c</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">iter</span>().<span class="ident">take</span>(<span class="ident">max_hex</span>).<span class="ident">enumerate</span>() {
|
||||
<span class="self">self</span>.<span class="ident">iter</span>().<span class="ident">take</span>(<span class="ident">max_hex</span>).<span class="ident">enumerate</span>().<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">c</span>)<span class="op">|</span> {
|
||||
<span class="ident">res</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span>] <span class="op">=</span> <span class="ident">LOWER_CHARS</span>[(<span class="ident">c</span> <span class="op">></span><span class="op">></span> <span class="number">4</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
<span class="ident">res</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span> <span class="op">+</span> <span class="number">1</span>] <span class="op">=</span> <span class="ident">LOWER_CHARS</span>[(<span class="ident">c</span> <span class="op">&</span> <span class="number">0xF</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
}
|
||||
});
|
||||
|
||||
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw">unsafe</span> { <span class="ident">str</span>::<span class="ident">from_utf8_unchecked</span>(<span class="kw-2">&</span><span class="ident">res</span>[..<span class="ident">max_digits</span>]) })<span class="question-mark">?</span>;
|
||||
} <span class="kw">else</span> {
|
||||
<span class="comment">// For large array use chunks of up to 1024 bytes (2048 hex chars)</span>
|
||||
@ -156,10 +159,11 @@
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">digits_left</span> <span class="op">=</span> <span class="ident">max_digits</span>;
|
||||
|
||||
<span class="kw">for</span> <span class="ident">chunk</span> <span class="kw">in</span> <span class="self">self</span>[..<span class="ident">max_hex</span>].<span class="ident">chunks</span>(<span class="number">1024</span>) {
|
||||
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">c</span>) <span class="kw">in</span> <span class="ident">chunk</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
|
||||
<span class="ident">chunk</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>().<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">c</span>)<span class="op">|</span> {
|
||||
<span class="ident">buf</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span>] <span class="op">=</span> <span class="ident">LOWER_CHARS</span>[(<span class="ident">c</span> <span class="op">></span><span class="op">></span> <span class="number">4</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
<span class="ident">buf</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span> <span class="op">+</span> <span class="number">1</span>] <span class="op">=</span> <span class="ident">LOWER_CHARS</span>[(<span class="ident">c</span> <span class="op">&</span> <span class="number">0xF</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
}
|
||||
});
|
||||
|
||||
<span class="kw">let</span> <span class="ident">n</span> <span class="op">=</span> <span class="ident">min</span>(<span class="ident">chunk</span>.<span class="ident">len</span>() <span class="op">*</span> <span class="number">2</span>, <span class="ident">digits_left</span>);
|
||||
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw">unsafe</span> { <span class="ident">str</span>::<span class="ident">from_utf8_unchecked</span>(<span class="kw-2">&</span><span class="ident">buf</span>[..<span class="ident">n</span>]) })<span class="question-mark">?</span>;
|
||||
<span class="ident">digits_left</span> <span class="op">-</span><span class="op">=</span> <span class="ident">n</span>;
|
||||
@ -174,19 +178,20 @@
|
||||
<span class="ident">T</span>: <span class="ident">Add</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
<span class="op"><</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">Add</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span>::<span class="ident">Output</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">u8</span><span class="op">></span>,
|
||||
{
|
||||
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-</span><span class="op">></span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
|
||||
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span><span class="op"><</span><span class="lifetime">'_</span><span class="op">></span>) <span class="op">-</span><span class="op">></span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
|
||||
<span class="kw">let</span> <span class="ident">max_digits</span> <span class="op">=</span> <span class="ident">f</span>.<span class="ident">precision</span>().<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="op">|</span> <span class="self">self</span>.<span class="ident">len</span>() <span class="op">*</span> <span class="number">2</span>);
|
||||
<span class="kw">let</span> <span class="ident">max_hex</span> <span class="op">=</span> (<span class="ident">max_digits</span> <span class="op">></span><span class="op">></span> <span class="number">1</span>) <span class="op">+</span> (<span class="ident">max_digits</span> <span class="op">&</span> <span class="number">1</span>);
|
||||
|
||||
<span class="kw">if</span> <span class="ident">T</span>::<span class="ident">to_usize</span>() <span class="op"><</span> <span class="number">1024</span> {
|
||||
<span class="kw">if</span> <span class="ident">T</span>::<span class="ident">USIZE</span> <span class="op"><</span> <span class="number">1024</span> {
|
||||
<span class="comment">// For small arrays use a stack allocated</span>
|
||||
<span class="comment">// buffer of 2x number of bytes</span>
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">GenericArray</span>::<span class="op"><</span><span class="ident">u8</span>, <span class="ident">Sum</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">T</span><span class="op">></span><span class="op">></span>::<span class="ident">default</span>();
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">c</span>) <span class="kw">in</span> <span class="self">self</span>.<span class="ident">iter</span>().<span class="ident">take</span>(<span class="ident">max_hex</span>).<span class="ident">enumerate</span>() {
|
||||
<span class="self">self</span>.<span class="ident">iter</span>().<span class="ident">take</span>(<span class="ident">max_hex</span>).<span class="ident">enumerate</span>().<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">c</span>)<span class="op">|</span> {
|
||||
<span class="ident">res</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span>] <span class="op">=</span> <span class="ident">UPPER_CHARS</span>[(<span class="ident">c</span> <span class="op">></span><span class="op">></span> <span class="number">4</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
<span class="ident">res</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span> <span class="op">+</span> <span class="number">1</span>] <span class="op">=</span> <span class="ident">UPPER_CHARS</span>[(<span class="ident">c</span> <span class="op">&</span> <span class="number">0xF</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
}
|
||||
});
|
||||
|
||||
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw">unsafe</span> { <span class="ident">str</span>::<span class="ident">from_utf8_unchecked</span>(<span class="kw-2">&</span><span class="ident">res</span>[..<span class="ident">max_digits</span>]) })<span class="question-mark">?</span>;
|
||||
} <span class="kw">else</span> {
|
||||
<span class="comment">// For large array use chunks of up to 1024 bytes (2048 hex chars)</span>
|
||||
@ -194,10 +199,11 @@
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">digits_left</span> <span class="op">=</span> <span class="ident">max_digits</span>;
|
||||
|
||||
<span class="kw">for</span> <span class="ident">chunk</span> <span class="kw">in</span> <span class="self">self</span>[..<span class="ident">max_hex</span>].<span class="ident">chunks</span>(<span class="number">1024</span>) {
|
||||
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">c</span>) <span class="kw">in</span> <span class="ident">chunk</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
|
||||
<span class="ident">chunk</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>().<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">c</span>)<span class="op">|</span> {
|
||||
<span class="ident">buf</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span>] <span class="op">=</span> <span class="ident">UPPER_CHARS</span>[(<span class="ident">c</span> <span class="op">></span><span class="op">></span> <span class="number">4</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
<span class="ident">buf</span>[<span class="ident">i</span> <span class="op">*</span> <span class="number">2</span> <span class="op">+</span> <span class="number">1</span>] <span class="op">=</span> <span class="ident">UPPER_CHARS</span>[(<span class="ident">c</span> <span class="op">&</span> <span class="number">0xF</span>) <span class="kw">as</span> <span class="ident">usize</span>];
|
||||
}
|
||||
});
|
||||
|
||||
<span class="kw">let</span> <span class="ident">n</span> <span class="op">=</span> <span class="ident">min</span>(<span class="ident">chunk</span>.<span class="ident">len</span>() <span class="op">*</span> <span class="number">2</span>, <span class="ident">digits_left</span>);
|
||||
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw">unsafe</span> { <span class="ident">str</span>::<span class="ident">from_utf8_unchecked</span>(<span class="kw-2">&</span><span class="ident">buf</span>[..<span class="ident">n</span>]) })<span class="question-mark">?</span>;
|
||||
<span class="ident">digits_left</span> <span class="op">-</span><span class="op">=</span> <span class="ident">n</span>;
|
||||
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/impls.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>impls.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/impls.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>impls.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -183,20 +183,109 @@
|
||||
<span id="180">180</span>
|
||||
<span id="181">181</span>
|
||||
<span id="182">182</span>
|
||||
<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>
|
||||
<span id="190">190</span>
|
||||
<span id="191">191</span>
|
||||
<span id="192">192</span>
|
||||
<span id="193">193</span>
|
||||
<span id="194">194</span>
|
||||
<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>
|
||||
<span id="202">202</span>
|
||||
<span id="203">203</span>
|
||||
<span id="204">204</span>
|
||||
<span id="205">205</span>
|
||||
<span id="206">206</span>
|
||||
<span id="207">207</span>
|
||||
<span id="208">208</span>
|
||||
<span id="209">209</span>
|
||||
<span id="210">210</span>
|
||||
<span id="211">211</span>
|
||||
<span id="212">212</span>
|
||||
<span id="213">213</span>
|
||||
<span id="214">214</span>
|
||||
<span id="215">215</span>
|
||||
<span id="216">216</span>
|
||||
<span id="217">217</span>
|
||||
<span id="218">218</span>
|
||||
<span id="219">219</span>
|
||||
<span id="220">220</span>
|
||||
<span id="221">221</span>
|
||||
<span id="222">222</span>
|
||||
<span id="223">223</span>
|
||||
<span id="224">224</span>
|
||||
<span id="225">225</span>
|
||||
<span id="226">226</span>
|
||||
<span id="227">227</span>
|
||||
<span id="228">228</span>
|
||||
<span id="229">229</span>
|
||||
<span id="230">230</span>
|
||||
<span id="231">231</span>
|
||||
<span id="232">232</span>
|
||||
<span id="233">233</span>
|
||||
<span id="234">234</span>
|
||||
<span id="235">235</span>
|
||||
<span id="236">236</span>
|
||||
<span id="237">237</span>
|
||||
<span id="238">238</span>
|
||||
<span id="239">239</span>
|
||||
<span id="240">240</span>
|
||||
<span id="241">241</span>
|
||||
<span id="242">242</span>
|
||||
<span id="243">243</span>
|
||||
<span id="244">244</span>
|
||||
<span id="245">245</span>
|
||||
<span id="246">246</span>
|
||||
<span id="247">247</span>
|
||||
<span id="248">248</span>
|
||||
<span id="249">249</span>
|
||||
<span id="250">250</span>
|
||||
<span id="251">251</span>
|
||||
<span id="252">252</span>
|
||||
<span id="253">253</span>
|
||||
<span id="254">254</span>
|
||||
<span id="255">255</span>
|
||||
<span id="256">256</span>
|
||||
<span id="257">257</span>
|
||||
<span id="258">258</span>
|
||||
<span id="259">259</span>
|
||||
<span id="260">260</span>
|
||||
<span id="261">261</span>
|
||||
<span id="262">262</span>
|
||||
<span id="263">263</span>
|
||||
<span id="264">264</span>
|
||||
<span id="265">265</span>
|
||||
<span id="266">266</span>
|
||||
<span id="267">267</span>
|
||||
<span id="268">268</span>
|
||||
<span id="269">269</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">borrow</span>::{<span class="ident">Borrow</span>, <span class="ident">BorrowMut</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">cmp</span>::<span class="ident">Ordering</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">fmt</span>::{<span class="self">self</span>, <span class="ident">Debug</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">hash</span>::{<span class="ident">Hash</span>, <span class="ident">Hasher</span>};
|
||||
<span class="kw">use</span> <span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use</span> <span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>: <span class="ident">Default</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-</span><span class="op">></span> <span class="self">Self</span> {
|
||||
<span class="self">Self</span>::<span class="ident">generate</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> <span class="ident">T</span>::<span class="ident">default</span>())
|
||||
}
|
||||
@ -226,11 +315,7 @@
|
||||
<span class="kw-2">*</span><span class="kw-2">*</span><span class="self">self</span> <span class="op">=</span><span class="op">=</span> <span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">other</span>
|
||||
}
|
||||
}
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>: <span class="ident">Eq</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
}
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>: <span class="ident">Eq</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> <span class="kw">where</span> <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>: <span class="ident">PartialOrd</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">PartialOrd</span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
@ -321,14 +406,50 @@
|
||||
}
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">relaxed_coherence</span>)]</span>
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">From</span><span class="op"><</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span><span class="op">></span> <span class="kw">for</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>] {
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">sel</span>: <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span>) <span class="op">-</span><span class="op">></span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>(<span class="ident">sel</span>) }
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> <span class="ident">From</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'a</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]<span class="op">></span> <span class="kw">for</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">slice</span>: <span class="kw-2">&</span>[<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="kw">unsafe</span> { <span class="kw-2">&</span><span class="kw-2">*</span>(<span class="ident">slice</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span>) }
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span><span class="op">></span> <span class="ident">From</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'a</span> <span class="kw-2">mut</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]<span class="op">></span> <span class="kw">for</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">slice</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="kw">unsafe</span> { <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span>(<span class="ident">slice</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span>) }
|
||||
}
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">relaxed_coherence</span>))]</span>
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">Into</span><span class="op"><</span>[<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]<span class="op">></span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">into</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>(<span class="self">self</span>) }
|
||||
}
|
||||
}
|
||||
)<span class="op">*</span>
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">AsRef</span><span class="op"><</span>[<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]<span class="op">></span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">as_ref</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span>[<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>(<span class="self">self</span>) }
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">AsMut</span><span class="op"><</span>[<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>]<span class="op">></span> <span class="kw">for</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span><span class="op">></span> {
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">as_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="kw-2">mut</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">n</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">transmute</span>(<span class="self">self</span>) }
|
||||
}
|
||||
}
|
||||
)<span class="op">*</span>
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,5 +487,58 @@
|
||||
<span class="number">31</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U31</span>,
|
||||
<span class="number">32</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U32</span>
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">"more_lengths"</span>)]</span>
|
||||
<span class="macro">impl_from</span><span class="macro">!</span> {
|
||||
<span class="number">33</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U33</span>,
|
||||
<span class="number">34</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U34</span>,
|
||||
<span class="number">35</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U35</span>,
|
||||
<span class="number">36</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U36</span>,
|
||||
<span class="number">37</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U37</span>,
|
||||
<span class="number">38</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U38</span>,
|
||||
<span class="number">39</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U39</span>,
|
||||
<span class="number">40</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U40</span>,
|
||||
<span class="number">41</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U41</span>,
|
||||
<span class="number">42</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U42</span>,
|
||||
<span class="number">43</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U43</span>,
|
||||
<span class="number">44</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U44</span>,
|
||||
<span class="number">45</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U45</span>,
|
||||
<span class="number">46</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U46</span>,
|
||||
<span class="number">47</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U47</span>,
|
||||
<span class="number">48</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U48</span>,
|
||||
<span class="number">49</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U49</span>,
|
||||
<span class="number">50</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U50</span>,
|
||||
<span class="number">51</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U51</span>,
|
||||
<span class="number">52</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U52</span>,
|
||||
<span class="number">53</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U53</span>,
|
||||
<span class="number">54</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U54</span>,
|
||||
<span class="number">55</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U55</span>,
|
||||
<span class="number">56</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U56</span>,
|
||||
<span class="number">57</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U57</span>,
|
||||
<span class="number">58</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U58</span>,
|
||||
<span class="number">59</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U59</span>,
|
||||
<span class="number">60</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U60</span>,
|
||||
<span class="number">61</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U61</span>,
|
||||
<span class="number">62</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U62</span>,
|
||||
<span class="number">63</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U63</span>,
|
||||
<span class="number">64</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U64</span>,
|
||||
|
||||
<span class="number">70</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U70</span>,
|
||||
<span class="number">80</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U80</span>,
|
||||
<span class="number">90</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U90</span>,
|
||||
|
||||
<span class="number">100</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U100</span>,
|
||||
<span class="number">200</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U200</span>,
|
||||
<span class="number">300</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U300</span>,
|
||||
<span class="number">400</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U400</span>,
|
||||
<span class="number">500</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U500</span>,
|
||||
|
||||
<span class="number">128</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U128</span>,
|
||||
<span class="number">256</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U256</span>,
|
||||
<span class="number">512</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U512</span>,
|
||||
|
||||
<span class="number">1000</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U1000</span>,
|
||||
<span class="number">1024</span> <span class="op">=</span><span class="op">></span> ::<span class="ident">typenum</span>::<span class="ident">U1024</span>
|
||||
}
|
||||
</pre></div>
|
||||
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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>
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/iter.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>iter.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/iter.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>iter.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -191,12 +191,80 @@
|
||||
<span id="188">188</span>
|
||||
<span id="189">189</span>
|
||||
<span id="190">190</span>
|
||||
<span id="191">191</span>
|
||||
<span id="192">192</span>
|
||||
<span id="193">193</span>
|
||||
<span id="194">194</span>
|
||||
<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>
|
||||
<span id="202">202</span>
|
||||
<span id="203">203</span>
|
||||
<span id="204">204</span>
|
||||
<span id="205">205</span>
|
||||
<span id="206">206</span>
|
||||
<span id="207">207</span>
|
||||
<span id="208">208</span>
|
||||
<span id="209">209</span>
|
||||
<span id="210">210</span>
|
||||
<span id="211">211</span>
|
||||
<span id="212">212</span>
|
||||
<span id="213">213</span>
|
||||
<span id="214">214</span>
|
||||
<span id="215">215</span>
|
||||
<span id="216">216</span>
|
||||
<span id="217">217</span>
|
||||
<span id="218">218</span>
|
||||
<span id="219">219</span>
|
||||
<span id="220">220</span>
|
||||
<span id="221">221</span>
|
||||
<span id="222">222</span>
|
||||
<span id="223">223</span>
|
||||
<span id="224">224</span>
|
||||
<span id="225">225</span>
|
||||
<span id="226">226</span>
|
||||
<span id="227">227</span>
|
||||
<span id="228">228</span>
|
||||
<span id="229">229</span>
|
||||
<span id="230">230</span>
|
||||
<span id="231">231</span>
|
||||
<span id="232">232</span>
|
||||
<span id="233">233</span>
|
||||
<span id="234">234</span>
|
||||
<span id="235">235</span>
|
||||
<span id="236">236</span>
|
||||
<span id="237">237</span>
|
||||
<span id="238">238</span>
|
||||
<span id="239">239</span>
|
||||
<span id="240">240</span>
|
||||
<span id="241">241</span>
|
||||
<span id="242">242</span>
|
||||
<span id="243">243</span>
|
||||
<span id="244">244</span>
|
||||
<span id="245">245</span>
|
||||
<span id="246">246</span>
|
||||
<span id="247">247</span>
|
||||
<span id="248">248</span>
|
||||
<span id="249">249</span>
|
||||
<span id="250">250</span>
|
||||
<span id="251">251</span>
|
||||
<span id="252">252</span>
|
||||
<span id="253">253</span>
|
||||
<span id="254">254</span>
|
||||
<span id="255">255</span>
|
||||
<span id="256">256</span>
|
||||
<span id="257">257</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! `GenericArray` iterator implementation.</span>
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">ArrayLength</span>, <span class="ident">GenericArray</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::{<span class="ident">cmp</span>, <span class="ident">ptr</span>, <span class="ident">fmt</span>, <span class="ident">mem</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>::<span class="ident">ManuallyDrop</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">iter</span>::<span class="ident">FusedIterator</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>::{<span class="ident">MaybeUninit</span>, <span class="ident">ManuallyDrop</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::{<span class="ident">cmp</span>, <span class="ident">fmt</span>, <span class="ident">ptr</span>, <span class="ident">mem</span>};
|
||||
|
||||
<span class="doccomment">/// An iterator that moves out of a `GenericArray`</span>
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GenericArrayIter</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> {
|
||||
@ -248,7 +316,7 @@
|
||||
<span class="ident">GenericArrayIter</span> {
|
||||
<span class="ident">array</span>: <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="self">self</span>),
|
||||
<span class="ident">index</span>: <span class="number">0</span>,
|
||||
<span class="ident">index_back</span>: <span class="ident">N</span>::<span class="ident">to_usize</span>(),
|
||||
<span class="ident">index_back</span>: <span class="ident">N</span>::<span class="ident">USIZE</span>,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -271,10 +339,12 @@
|
||||
{
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) {
|
||||
<span class="comment">// Drop values that are still alive.</span>
|
||||
<span class="kw">for</span> <span class="ident">p</span> <span class="kw">in</span> <span class="self">self</span>.<span class="ident">as_mut_slice</span>() {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">p</span>);
|
||||
<span class="kw">if</span> <span class="ident">mem</span>::<span class="ident">needs_drop</span>::<span class="op"><</span><span class="ident">T</span><span class="op">></span>() {
|
||||
<span class="comment">// Drop values that are still alive.</span>
|
||||
<span class="kw">for</span> <span class="ident">p</span> <span class="kw">in</span> <span class="self">self</span>.<span class="ident">as_mut_slice</span>() {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">p</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -289,19 +359,20 @@
|
||||
<span class="comment">// This places all cloned elements at the start of the new array iterator,</span>
|
||||
<span class="comment">// not at their original indices.</span>
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">iter</span> <span class="op">=</span> <span class="ident">GenericArrayIter</span> {
|
||||
<span class="ident">array</span>: <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="ident">mem</span>::<span class="ident">uninitialized</span>()),
|
||||
<span class="ident">index</span>: <span class="number">0</span>,
|
||||
<span class="ident">index_back</span>: <span class="number">0</span>,
|
||||
};
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">array</span>: <span class="ident">MaybeUninit</span><span class="op"><</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span><span class="op">></span> <span class="op">=</span> <span class="ident">MaybeUninit</span>::<span class="ident">uninit</span>();
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">index_back</span> <span class="op">=</span> <span class="number">0</span>;
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">dst</span>, <span class="ident">src</span>) <span class="kw">in</span> <span class="ident">iter</span>.<span class="ident">array</span>.<span class="ident">iter_mut</span>().<span class="ident">zip</span>(<span class="self">self</span>.<span class="ident">as_slice</span>()) {
|
||||
<span class="kw">for</span> (<span class="ident">dst</span>, <span class="ident">src</span>) <span class="kw">in</span> (<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="ident">array</span>.<span class="ident">as_mut_ptr</span>()).<span class="ident">iter_mut</span>().<span class="ident">zip</span>(<span class="self">self</span>.<span class="ident">as_slice</span>()) {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">src</span>.<span class="ident">clone</span>());
|
||||
|
||||
<span class="ident">iter</span>.<span class="ident">index_back</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
<span class="ident">index_back</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
}
|
||||
|
||||
<span class="ident">iter</span>
|
||||
<span class="ident">GenericArrayIter</span> {
|
||||
<span class="ident">array</span>: <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="ident">array</span>.<span class="ident">assume_init</span>()),
|
||||
<span class="ident">index</span>: <span class="number">0</span>,
|
||||
<span class="ident">index_back</span>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -325,6 +396,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">fold</span><span class="op"><</span><span class="ident">B</span>, <span class="ident">F</span><span class="op">></span>(<span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">init</span>: <span class="ident">B</span>, <span class="kw-2">mut</span> <span class="ident">f</span>: <span class="ident">F</span>) <span class="op">-</span><span class="op">></span> <span class="ident">B</span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">F</span>: <span class="ident">FnMut</span>(<span class="ident">B</span>, <span class="self">Self</span>::<span class="ident">Item</span>) <span class="op">-</span><span class="op">></span> <span class="ident">B</span>,
|
||||
{
|
||||
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">GenericArrayIter</span> {
|
||||
<span class="kw-2">ref</span> <span class="ident">array</span>,
|
||||
<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">index</span>,
|
||||
<span class="ident">index_back</span>,
|
||||
} <span class="op">=</span> <span class="self">self</span>;
|
||||
|
||||
<span class="kw">let</span> <span class="ident">remaining</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">array</span>[<span class="kw-2">*</span><span class="ident">index</span>..<span class="ident">index_back</span>];
|
||||
|
||||
<span class="ident">remaining</span>.<span class="ident">iter</span>().<span class="ident">fold</span>(<span class="ident">init</span>, <span class="op">|</span><span class="ident">acc</span>, <span class="ident">src</span><span class="op">|</span> {
|
||||
<span class="kw">let</span> <span class="ident">value</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">src</span>);
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">index</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
|
||||
<span class="ident">f</span>(<span class="ident">acc</span>, <span class="ident">value</span>)
|
||||
})
|
||||
};
|
||||
|
||||
<span class="comment">// ensure the drop happens here after iteration</span>
|
||||
<span class="ident">drop</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="ident">ret</span>
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">size_hint</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="ident">usize</span>, <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">usize</span><span class="op">></span>) {
|
||||
<span class="kw">let</span> <span class="ident">len</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">len</span>();
|
||||
@ -351,6 +450,7 @@
|
||||
<span class="self">self</span>.<span class="ident">next</span>()
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">last</span>(<span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> {
|
||||
<span class="comment">// Note, everything else will correctly drop first as `self` leaves scope.</span>
|
||||
<span class="self">self</span>.<span class="ident">next_back</span>()
|
||||
@ -370,6 +470,34 @@
|
||||
<span class="prelude-val">None</span>
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">rfold</span><span class="op"><</span><span class="ident">B</span>, <span class="ident">F</span><span class="op">></span>(<span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">init</span>: <span class="ident">B</span>, <span class="kw-2">mut</span> <span class="ident">f</span>: <span class="ident">F</span>) <span class="op">-</span><span class="op">></span> <span class="ident">B</span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">F</span>: <span class="ident">FnMut</span>(<span class="ident">B</span>, <span class="self">Self</span>::<span class="ident">Item</span>) <span class="op">-</span><span class="op">></span> <span class="ident">B</span>,
|
||||
{
|
||||
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">GenericArrayIter</span> {
|
||||
<span class="kw-2">ref</span> <span class="ident">array</span>,
|
||||
<span class="ident">index</span>,
|
||||
<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">index_back</span>,
|
||||
} <span class="op">=</span> <span class="self">self</span>;
|
||||
|
||||
<span class="kw">let</span> <span class="ident">remaining</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">array</span>[<span class="ident">index</span>..<span class="kw-2">*</span><span class="ident">index_back</span>];
|
||||
|
||||
<span class="ident">remaining</span>.<span class="ident">iter</span>().<span class="ident">rfold</span>(<span class="ident">init</span>, <span class="op">|</span><span class="ident">acc</span>, <span class="ident">src</span><span class="op">|</span> {
|
||||
<span class="kw">let</span> <span class="ident">value</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">src</span>);
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">index_back</span> <span class="op">-</span><span class="op">=</span> <span class="number">1</span>;
|
||||
|
||||
<span class="ident">f</span>(<span class="ident">acc</span>, <span class="ident">value</span>)
|
||||
})
|
||||
};
|
||||
|
||||
<span class="comment">// ensure the drop happens here after iteration</span>
|
||||
<span class="ident">drop</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="ident">ret</span>
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">ExactSizeIterator</span> <span class="kw">for</span> <span class="ident">GenericArrayIter</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
@ -381,5 +509,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
<span class="comment">// TODO: Implement `FusedIterator` and `TrustedLen` when stabilized</span></pre></div>
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> <span class="ident">FusedIterator</span> <span class="kw">for</span> <span class="ident">GenericArrayIter</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
}
|
||||
|
||||
<span class="comment">// TODO: Implement `TrustedLen` when stabilized</span>
|
||||
</pre></div>
|
||||
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "generic_array";</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>
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -633,12 +633,53 @@
|
||||
<span id="630">630</span>
|
||||
<span id="631">631</span>
|
||||
<span id="632">632</span>
|
||||
<span id="633">633</span>
|
||||
<span id="634">634</span>
|
||||
<span id="635">635</span>
|
||||
<span id="636">636</span>
|
||||
<span id="637">637</span>
|
||||
<span id="638">638</span>
|
||||
<span id="639">639</span>
|
||||
<span id="640">640</span>
|
||||
<span id="641">641</span>
|
||||
<span id="642">642</span>
|
||||
<span id="643">643</span>
|
||||
<span id="644">644</span>
|
||||
<span id="645">645</span>
|
||||
<span id="646">646</span>
|
||||
<span id="647">647</span>
|
||||
<span id="648">648</span>
|
||||
<span id="649">649</span>
|
||||
<span id="650">650</span>
|
||||
<span id="651">651</span>
|
||||
<span id="652">652</span>
|
||||
<span id="653">653</span>
|
||||
<span id="654">654</span>
|
||||
<span id="655">655</span>
|
||||
<span id="656">656</span>
|
||||
<span id="657">657</span>
|
||||
<span id="658">658</span>
|
||||
<span id="659">659</span>
|
||||
<span id="660">660</span>
|
||||
<span id="661">661</span>
|
||||
<span id="662">662</span>
|
||||
<span id="663">663</span>
|
||||
<span id="664">664</span>
|
||||
<span id="665">665</span>
|
||||
<span id="666">666</span>
|
||||
<span id="667">667</span>
|
||||
<span id="668">668</span>
|
||||
<span id="669">669</span>
|
||||
<span id="670">670</span>
|
||||
<span id="671">671</span>
|
||||
<span id="672">672</span>
|
||||
<span id="673">673</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! This crate implements a structure that can be used as a generic array type.use</span>
|
||||
<span class="doccomment">//! This crate implements a structure that can be used as a generic array type.</span>
|
||||
<span class="doccomment">//! Core Rust array types `[T; N]` can't be used generically with</span>
|
||||
<span class="doccomment">//! respect to `N`, so for example this:</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! ```{should_fail}</span>
|
||||
<span class="doccomment">//! ```rust{compile_fail}</span>
|
||||
<span class="doccomment">//! struct Foo<T, N> {</span>
|
||||
<span class="doccomment">//! data: [T; N]</span>
|
||||
<span class="doccomment">//! }</span>
|
||||
@ -649,8 +690,9 @@
|
||||
<span class="doccomment">//! **generic-array** exports a `GenericArray<T,N>` type, which lets</span>
|
||||
<span class="doccomment">//! the above be implemented as:</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! ```</span>
|
||||
<span class="doccomment">//! # use generic_array::{ArrayLength, GenericArray};</span>
|
||||
<span class="doccomment">//! ```rust</span>
|
||||
<span class="doccomment">//! use generic_array::{ArrayLength, GenericArray};</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! struct Foo<T, N: ArrayLength<T>> {</span>
|
||||
<span class="doccomment">//! data: GenericArray<T,N></span>
|
||||
<span class="doccomment">//! }</span>
|
||||
@ -658,7 +700,35 @@
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! The `ArrayLength<T>` trait is implemented by default for</span>
|
||||
<span class="doccomment">//! [unsigned integer types](../typenum/uint/index.html) from</span>
|
||||
<span class="doccomment">//! [typenum](../typenum/index.html).</span>
|
||||
<span class="doccomment">//! [typenum](../typenum/index.html):</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! ```rust</span>
|
||||
<span class="doccomment">//! # use generic_array::{ArrayLength, GenericArray};</span>
|
||||
<span class="doccomment">//! use generic_array::typenum::U5;</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! struct Foo<N: ArrayLength<i32>> {</span>
|
||||
<span class="doccomment">//! data: GenericArray<i32, N></span>
|
||||
<span class="doccomment">//! }</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! # fn main() {</span>
|
||||
<span class="doccomment">//! let foo = Foo::<U5>{data: GenericArray::default()};</span>
|
||||
<span class="doccomment">//! # }</span>
|
||||
<span class="doccomment">//! ```</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! For example, `GenericArray<T, U5>` would work almost like `[T; 5]`:</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! ```rust</span>
|
||||
<span class="doccomment">//! # use generic_array::{ArrayLength, GenericArray};</span>
|
||||
<span class="doccomment">//! use generic_array::typenum::U5;</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! struct Foo<T, N: ArrayLength<T>> {</span>
|
||||
<span class="doccomment">//! data: GenericArray<T, N></span>
|
||||
<span class="doccomment">//! }</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! # fn main() {</span>
|
||||
<span class="doccomment">//! let foo = Foo::<i32, U5>{data: GenericArray::default()};</span>
|
||||
<span class="doccomment">//! # }</span>
|
||||
<span class="doccomment">//! ```</span>
|
||||
<span class="doccomment">//!</span>
|
||||
<span class="doccomment">//! For ease of use, an `arr!` macro is provided - example below:</span>
|
||||
<span class="doccomment">//!</span>
|
||||
@ -673,6 +743,7 @@
|
||||
<span class="doccomment">//! ```</span>
|
||||
|
||||
<span class="attribute">#![<span class="ident">deny</span>(<span class="ident">missing_docs</span>)]</span>
|
||||
<span class="attribute">#![<span class="ident">deny</span>(<span class="ident">meta_variable_misuse</span>)]</span>
|
||||
<span class="attribute">#![<span class="ident">no_std</span>]</span>
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">"serde"</span>)]</span>
|
||||
@ -687,11 +758,11 @@
|
||||
<span class="kw">mod</span> <span class="ident">impls</span>;
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">"serde"</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">impl_serde</span>;
|
||||
<span class="kw">mod</span> <span class="ident">impl_serde</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">iter</span>::<span class="ident">FromIterator</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>::<span class="ident">ManuallyDrop</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>::{<span class="ident">MaybeUninit</span>, <span class="ident">ManuallyDrop</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">ops</span>::{<span class="ident">Deref</span>, <span class="ident">DerefMut</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::{<span class="ident">mem</span>, <span class="ident">ptr</span>, <span class="ident">slice</span>};
|
||||
<span class="kw">use</span> <span class="ident">typenum</span>::<span class="ident">bit</span>::{<span class="ident">B0</span>, <span class="ident">B1</span>};
|
||||
@ -703,9 +774,9 @@
|
||||
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">iter</span>;
|
||||
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">sequence</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">iter</span>::<span class="ident">GenericArrayIter</span>;
|
||||
<span class="kw">use</span> <span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">iter</span>::<span class="ident">GenericArrayIter</span>;
|
||||
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">sequence</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="doccomment">/// Trait making `GenericArray` work, marking types to be used as length of an array</span>
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">trait</span> <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>: <span class="ident">Unsigned</span> {
|
||||
@ -715,7 +786,7 @@
|
||||
|
||||
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="kw">for</span> <span class="ident">UTerm</span> {
|
||||
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
|
||||
<span class="kw">type</span> <span class="ident">ArrayType</span> <span class="op">=</span> ();
|
||||
<span class="kw">type</span> <span class="ident">ArrayType</span> <span class="op">=</span> [<span class="ident">T</span>; <span class="number">0</span>];
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Internal type used to generate a struct of appropriate size</span>
|
||||
@ -774,6 +845,7 @@
|
||||
|
||||
<span class="doccomment">/// Struct representing a generic array - `GenericArray<T, N>` works like [T; N]</span>
|
||||
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">dead_code</span>)]</span>
|
||||
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">transparent</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">U</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="ident">data</span>: <span class="ident">U</span>::<span class="ident">ArrayType</span>,
|
||||
}
|
||||
@ -789,7 +861,7 @@
|
||||
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span>[<span class="ident">T</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="self">self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="self">Self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>, <span class="ident">N</span>::<span class="ident">to_usize</span>()) }
|
||||
<span class="kw">unsafe</span> { <span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="self">self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="self">Self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>, <span class="ident">N</span>::<span class="ident">USIZE</span>) }
|
||||
}
|
||||
}
|
||||
|
||||
@ -799,7 +871,7 @@
|
||||
{
|
||||
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">deref_mut</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="kw-2">mut</span> [<span class="ident">T</span>] {
|
||||
<span class="kw">unsafe</span> { <span class="ident">slice</span>::<span class="ident">from_raw_parts_mut</span>(<span class="self">self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="self">Self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>, <span class="ident">N</span>::<span class="ident">to_usize</span>()) }
|
||||
<span class="kw">unsafe</span> { <span class="ident">slice</span>::<span class="ident">from_raw_parts_mut</span>(<span class="self">self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="self">Self</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>, <span class="ident">N</span>::<span class="ident">USIZE</span>) }
|
||||
}
|
||||
}
|
||||
|
||||
@ -810,7 +882,7 @@
|
||||
<span class="doccomment">/// which will be dropped if `into_inner` is not called.</span>
|
||||
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">ArrayBuilder</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="ident">array</span>: <span class="ident">ManuallyDrop</span><span class="op"><</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span><span class="op">></span>,
|
||||
<span class="ident">array</span>: <span class="ident">MaybeUninit</span><span class="op"><</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span><span class="op">></span>,
|
||||
<span class="ident">position</span>: <span class="ident">usize</span>,
|
||||
}
|
||||
|
||||
@ -819,7 +891,7 @@
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">></span> <span class="ident">ArrayBuilder</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="ident">ArrayBuilder</span> {
|
||||
<span class="ident">array</span>: <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="ident">mem</span>::<span class="ident">uninitialized</span>()),
|
||||
<span class="ident">array</span>: <span class="ident">MaybeUninit</span>::<span class="ident">uninit</span>(),
|
||||
<span class="ident">position</span>: <span class="number">0</span>,
|
||||
}
|
||||
}
|
||||
@ -831,7 +903,7 @@
|
||||
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">iter_position</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="ident">slice</span>::<span class="ident">IterMut</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>, <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">usize</span>) {
|
||||
(<span class="self">self</span>.<span class="ident">array</span>.<span class="ident">iter_mut</span>(), <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">position</span>)
|
||||
((<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="self">self</span>.<span class="ident">array</span>.<span class="ident">as_mut_ptr</span>()).<span class="ident">iter_mut</span>(), <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">position</span>)
|
||||
}
|
||||
|
||||
<span class="doccomment">/// When done writing (assuming all elements have been written to),</span>
|
||||
@ -843,15 +915,17 @@
|
||||
|
||||
<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="ident">ManuallyDrop</span>::<span class="ident">into_inner</span>(<span class="ident">array</span>)
|
||||
<span class="ident">array</span>.<span class="ident">assume_init</span>()
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">ArrayBuilder</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) {
|
||||
<span class="kw">for</span> <span class="ident">value</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">array</span>[..<span class="self">self</span>.<span class="ident">position</span>] {
|
||||
<span class="kw">if</span> <span class="ident">mem</span>::<span class="ident">needs_drop</span>::<span class="op"><</span><span class="ident">T</span><span class="op">></span>() {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">value</span>);
|
||||
<span class="kw">for</span> <span class="ident">value</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="kw-2">mut</span> (<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="self">self</span>.<span class="ident">array</span>.<span class="ident">as_mut_ptr</span>())[..<span class="self">self</span>.<span class="ident">position</span>] {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">value</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -890,9 +964,11 @@
|
||||
|
||||
<span class="kw">impl</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span><span class="op">></span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">ArrayConsumer</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>) {
|
||||
<span class="kw">for</span> <span class="ident">value</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">array</span>[<span class="self">self</span>.<span class="ident">position</span>..<span class="ident">N</span>::<span class="ident">to_usize</span>()] {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">value</span>);
|
||||
<span class="kw">if</span> <span class="ident">mem</span>::<span class="ident">needs_drop</span>::<span class="op"><</span><span class="ident">T</span><span class="op">></span>() {
|
||||
<span class="kw">for</span> <span class="ident">value</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="ident">array</span>[<span class="self">self</span>.<span class="ident">position</span>..<span class="ident">N</span>::<span class="ident">USIZE</span>] {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">drop_in_place</span>(<span class="ident">value</span>);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -936,15 +1012,17 @@
|
||||
{
|
||||
<span class="kw">let</span> (<span class="ident">destination_iter</span>, <span class="ident">position</span>) <span class="op">=</span> <span class="ident">destination</span>.<span class="ident">iter_position</span>();
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">src</span>, <span class="ident">dst</span>) <span class="kw">in</span> <span class="ident">iter</span>.<span class="ident">into_iter</span>().<span class="ident">zip</span>(<span class="ident">destination_iter</span>) {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">src</span>);
|
||||
<span class="ident">iter</span>.<span class="ident">into_iter</span>()
|
||||
.<span class="ident">zip</span>(<span class="ident">destination_iter</span>)
|
||||
.<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">src</span>, <span class="ident">dst</span>)<span class="op">|</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">src</span>);
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
}
|
||||
<span class="kw-2">*</span><span class="ident">position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
});
|
||||
}
|
||||
|
||||
<span class="kw">if</span> <span class="ident">destination</span>.<span class="ident">position</span> <span class="op"><</span> <span class="ident">N</span>::<span class="ident">to_usize</span>() {
|
||||
<span class="ident">from_iter_length_fail</span>(<span class="ident">destination</span>.<span class="ident">position</span>, <span class="ident">N</span>::<span class="ident">to_usize</span>());
|
||||
<span class="kw">if</span> <span class="ident">destination</span>.<span class="ident">position</span> <span class="op"><</span> <span class="ident">N</span>::<span class="ident">USIZE</span> {
|
||||
<span class="ident">from_iter_length_fail</span>(<span class="ident">destination</span>.<span class="ident">position</span>, <span class="ident">N</span>::<span class="ident">USIZE</span>);
|
||||
}
|
||||
|
||||
<span class="ident">destination</span>.<span class="ident">into_inner</span>()
|
||||
@ -979,11 +1057,11 @@
|
||||
{
|
||||
<span class="kw">let</span> (<span class="ident">destination_iter</span>, <span class="ident">position</span>) <span class="op">=</span> <span class="ident">destination</span>.<span class="ident">iter_position</span>();
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">dst</span>) <span class="kw">in</span> <span class="ident">destination_iter</span>.<span class="ident">enumerate</span>() {
|
||||
<span class="ident">destination_iter</span>.<span class="ident">enumerate</span>().<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">i</span>, <span class="ident">dst</span>)<span class="op">|</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">f</span>(<span class="ident">i</span>));
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
<span class="ident">destination</span>.<span class="ident">into_inner</span>()
|
||||
@ -1155,7 +1233,7 @@
|
||||
<span class="doccomment">/// Length of the slice must be equal to the length of the array.</span>
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">slice</span>: <span class="kw-2">&</span>[<span class="ident">T</span>]) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">slice</span>.<span class="ident">len</span>(), <span class="ident">N</span>::<span class="ident">to_usize</span>());
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">slice</span>.<span class="ident">len</span>(), <span class="ident">N</span>::<span class="ident">USIZE</span>);
|
||||
|
||||
<span class="kw">unsafe</span> { <span class="kw-2">&</span><span class="kw-2">*</span>(<span class="ident">slice</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>) }
|
||||
}
|
||||
@ -1167,7 +1245,7 @@
|
||||
<span class="doccomment">/// Length of the slice must be equal to the length of the array.</span>
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">slice</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> [<span class="ident">T</span>]) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span> {
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">slice</span>.<span class="ident">len</span>(), <span class="ident">N</span>::<span class="ident">to_usize</span>());
|
||||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">slice</span>.<span class="ident">len</span>(), <span class="ident">N</span>::<span class="ident">USIZE</span>);
|
||||
|
||||
<span class="kw">unsafe</span> { <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span>(<span class="ident">slice</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>) }
|
||||
}
|
||||
@ -1191,34 +1269,39 @@
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
<span class="doccomment">/// Creates a new `GenericArray` instance from an iterator with a known exact size.</span>
|
||||
<span class="doccomment">/// Creates a new `GenericArray` instance from an iterator with a specific size.</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// Returns `None` if the size is not equal to the number of elements in the `GenericArray`.</span>
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">from_exact_iter</span><span class="op"><</span><span class="ident">I</span><span class="op">></span>(<span class="ident">iter</span>: <span class="ident">I</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="self">Self</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op"><</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">></span>,
|
||||
<span class="op"><</span><span class="ident">I</span> <span class="kw">as</span> <span class="ident">IntoIterator</span><span class="op">></span>::<span class="ident">IntoIter</span>: <span class="ident">ExactSizeIterator</span>,
|
||||
{
|
||||
<span class="kw">let</span> <span class="ident">iter</span> <span class="op">=</span> <span class="ident">iter</span>.<span class="ident">into_iter</span>();
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">iter</span> <span class="op">=</span> <span class="ident">iter</span>.<span class="ident">into_iter</span>();
|
||||
|
||||
<span class="kw">if</span> <span class="ident">iter</span>.<span class="ident">len</span>() <span class="op">=</span><span class="op">=</span> <span class="ident">N</span>::<span class="ident">to_usize</span>() {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">destination</span> <span class="op">=</span> <span class="ident">ArrayBuilder</span>::<span class="ident">new</span>();
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">destination</span> <span class="op">=</span> <span class="ident">ArrayBuilder</span>::<span class="ident">new</span>();
|
||||
|
||||
{
|
||||
<span class="kw">let</span> (<span class="ident">destination_iter</span>, <span class="ident">position</span>) <span class="op">=</span> <span class="ident">destination</span>.<span class="ident">iter_position</span>();
|
||||
{
|
||||
<span class="kw">let</span> (<span class="ident">destination_iter</span>, <span class="ident">position</span>) <span class="op">=</span> <span class="ident">destination</span>.<span class="ident">iter_position</span>();
|
||||
|
||||
<span class="kw">for</span> (<span class="ident">dst</span>, <span class="ident">src</span>) <span class="kw">in</span> <span class="ident">destination_iter</span>.<span class="ident">zip</span>(<span class="ident">iter</span>.<span class="ident">into_iter</span>()) {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">src</span>);
|
||||
<span class="ident">destination_iter</span>.<span class="ident">zip</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">iter</span>).<span class="ident">for_each</span>(<span class="op">|</span>(<span class="ident">dst</span>, <span class="ident">src</span>)<span class="op">|</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">dst</span>, <span class="ident">src</span>);
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
}
|
||||
<span class="kw-2">*</span><span class="ident">position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
});
|
||||
|
||||
<span class="comment">// The iterator produced fewer than `N` elements.</span>
|
||||
<span class="kw">if</span> <span class="kw-2">*</span><span class="ident">position</span> <span class="op">!</span><span class="op">=</span> <span class="ident">N</span>::<span class="ident">USIZE</span> {
|
||||
<span class="kw">return</span> <span class="prelude-val">None</span>;
|
||||
}
|
||||
|
||||
<span class="prelude-val">Some</span>(<span class="ident">destination</span>.<span class="ident">into_inner</span>())
|
||||
<span class="comment">// The iterator produced more than `N` elements.</span>
|
||||
<span class="kw">if</span> <span class="ident">iter</span>.<span class="ident">next</span>().<span class="ident">is_some</span>() {
|
||||
<span class="kw">return</span> <span class="prelude-val">None</span>;
|
||||
}
|
||||
}
|
||||
} <span class="kw">else</span> {
|
||||
<span class="prelude-val">None</span>
|
||||
|
||||
<span class="prelude-val">Some</span>(<span class="ident">destination</span>.<span class="ident">into_inner</span>())
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1228,9 +1311,8 @@
|
||||
<span class="attribute">#[<span class="ident">inline</span>]</span>
|
||||
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">transmute</span><span class="op"><</span><span class="ident">A</span>, <span class="ident">B</span><span class="op">></span>(<span class="ident">a</span>: <span class="ident">A</span>) <span class="op">-</span><span class="op">></span> <span class="ident">B</span> {
|
||||
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> ::<span class="ident">core</span>::<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="kw-2">&</span><span class="ident">a</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">A</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">B</span>);
|
||||
::<span class="ident">core</span>::<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="ident">a</span>);
|
||||
<span class="ident">b</span>
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="ident">a</span>);
|
||||
::<span class="ident">core</span>::<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="kw-2">&</span><span class="kw-2">*</span><span class="ident">a</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">A</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">B</span>)
|
||||
}
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
|
||||
@ -1252,7 +1334,7 @@
|
||||
|
||||
<span class="attribute">#[<span class="ident">test</span>]</span>
|
||||
<span class="kw">fn</span> <span class="ident">test_assembly</span>() {
|
||||
<span class="kw">use</span> <span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">functional</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="ident">black_box</span>(<span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">1</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>]);
|
||||
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">black_box</span>(<span class="macro">arr</span><span class="macro">!</span>[<span class="ident">i32</span>; <span class="number">2</span>, <span class="number">4</span>, <span class="number">6</span>, <span class="number">8</span>]);
|
||||
|
@ -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="Source of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.12.4/src/sequence.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>sequence.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<!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 of the Rust file `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.14.4/src/sequence.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>sequence.rs - 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="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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">☰</div><a href='../../generic_array/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
|
||||
<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>
|
||||
@ -321,12 +321,73 @@
|
||||
<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>
|
||||
<span id="353">353</span>
|
||||
<span id="354">354</span>
|
||||
<span id="355">355</span>
|
||||
<span id="356">356</span>
|
||||
<span id="357">357</span>
|
||||
<span id="358">358</span>
|
||||
<span id="359">359</span>
|
||||
<span id="360">360</span>
|
||||
<span id="361">361</span>
|
||||
<span id="362">362</span>
|
||||
<span id="363">363</span>
|
||||
<span id="364">364</span>
|
||||
<span id="365">365</span>
|
||||
<span id="366">366</span>
|
||||
<span id="367">367</span>
|
||||
<span id="368">368</span>
|
||||
<span id="369">369</span>
|
||||
<span id="370">370</span>
|
||||
<span id="371">371</span>
|
||||
<span id="372">372</span>
|
||||
<span id="373">373</span>
|
||||
<span id="374">374</span>
|
||||
<span id="375">375</span>
|
||||
<span id="376">376</span>
|
||||
<span id="377">377</span>
|
||||
<span id="378">378</span>
|
||||
<span id="379">379</span>
|
||||
<span id="380">380</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! Useful traits for manipulating sequences of data stored in `GenericArray`s</span>
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::{<span class="ident">mem</span>, <span class="ident">ptr</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">ops</span>::{<span class="ident">Add</span>, <span class="ident">Sub</span>};
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>::<span class="ident">MaybeUninit</span>;
|
||||
<span class="kw">use</span> <span class="ident">core</span>::<span class="ident">ptr</span>;
|
||||
<span class="kw">use</span> <span class="ident">typenum</span>::<span class="ident">operator_aliases</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="doccomment">/// Defines some sequence with an associated length and iteration capabilities.</span>
|
||||
@ -365,17 +426,15 @@
|
||||
|
||||
<span class="kw">let</span> (<span class="ident">left_array_iter</span>, <span class="ident">left_position</span>) <span class="op">=</span> <span class="ident">left</span>.<span class="ident">iter_position</span>();
|
||||
|
||||
<span class="ident">FromIterator</span>::<span class="ident">from_iter</span>(
|
||||
<span class="ident">left_array_iter</span>
|
||||
.<span class="ident">zip</span>(<span class="self">self</span>.<span class="ident">into_iter</span>())
|
||||
.<span class="ident">map</span>(<span class="op">|</span>(<span class="ident">l</span>, <span class="ident">right_value</span>)<span class="op">|</span> {
|
||||
<span class="ident">FromIterator</span>::<span class="ident">from_iter</span>(<span class="ident">left_array_iter</span>.<span class="ident">zip</span>(<span class="self">self</span>.<span class="ident">into_iter</span>()).<span class="ident">map</span>(
|
||||
<span class="op">|</span>(<span class="ident">l</span>, <span class="ident">right_value</span>)<span class="op">|</span> {
|
||||
<span class="kw">let</span> <span class="ident">left_value</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">l</span>);
|
||||
|
||||
<span class="kw-2">*</span><span class="ident">left_position</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
|
||||
|
||||
<span class="ident">f</span>(<span class="ident">left_value</span>, <span class="ident">right_value</span>)
|
||||
})
|
||||
)
|
||||
},
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
@ -441,12 +500,15 @@
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// Example:</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// ```ignore</span>
|
||||
<span class="doccomment">/// ```rust</span>
|
||||
<span class="doccomment">/// # use generic_array::{arr, sequence::Lengthen};</span>
|
||||
<span class="doccomment">/// # fn main() {</span>
|
||||
<span class="doccomment">/// let a = arr![i32; 1, 2, 3];</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// let b = a.append(4);</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// assert_eq!(b, arr![i32; 1, 2, 3, 4]);</span>
|
||||
<span class="doccomment">/// # }</span>
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="kw">fn</span> <span class="ident">append</span>(<span class="self">self</span>, <span class="ident">last</span>: <span class="ident">T</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Longer</span>;
|
||||
|
||||
@ -454,12 +516,15 @@
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// Example:</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// ```ignore</span>
|
||||
<span class="doccomment">/// ```rust</span>
|
||||
<span class="doccomment">/// # use generic_array::{arr, sequence::Lengthen};</span>
|
||||
<span class="doccomment">/// # fn main() {</span>
|
||||
<span class="doccomment">/// let a = arr![i32; 1, 2, 3];</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// let b = a.prepend(4);</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// assert_eq!(b, arr![i32; 4, 1, 2, 3]);</span>
|
||||
<span class="doccomment">/// # }</span>
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="kw">fn</span> <span class="ident">prepend</span>(<span class="self">self</span>, <span class="ident">first</span>: <span class="ident">T</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Longer</span>;
|
||||
}
|
||||
@ -476,26 +541,32 @@
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// Example:</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// ```ignore</span>
|
||||
<span class="doccomment">/// ```rust</span>
|
||||
<span class="doccomment">/// # use generic_array::{arr, sequence::Shorten};</span>
|
||||
<span class="doccomment">/// # fn main() {</span>
|
||||
<span class="doccomment">/// let a = arr![i32; 1, 2, 3, 4];</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// let (init, last) = a.pop_back();</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// assert_eq!(init, arr![i32; 1, 2, 3]);</span>
|
||||
<span class="doccomment">/// assert_eq!(last, 4);</span>
|
||||
<span class="doccomment">/// # }</span>
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="kw">fn</span> <span class="ident">pop_back</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="self">Self</span>::<span class="ident">Shorter</span>, <span class="ident">T</span>);
|
||||
|
||||
<span class="doccomment">/// Returns a new array without the first element, and the first element.</span>
|
||||
<span class="doccomment">/// Example:</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// ```ignore</span>
|
||||
<span class="doccomment">/// ```rust</span>
|
||||
<span class="doccomment">/// # use generic_array::{arr, sequence::Shorten};</span>
|
||||
<span class="doccomment">/// # fn main() {</span>
|
||||
<span class="doccomment">/// let a = arr![i32; 1, 2, 3, 4];</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// let (head, tail) = a.pop_front();</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// assert_eq!(head, 1);</span>
|
||||
<span class="doccomment">/// assert_eq!(tail, arr![i32; 2, 3, 4]);</span>
|
||||
<span class="doccomment">/// # }</span>
|
||||
<span class="doccomment">/// ```</span>
|
||||
<span class="kw">fn</span> <span class="ident">pop_front</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="ident">T</span>, <span class="self">Self</span>::<span class="ident">Shorter</span>);
|
||||
}
|
||||
@ -510,27 +581,35 @@
|
||||
<span class="kw">type</span> <span class="ident">Longer</span> <span class="op">=</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Add1</span><span class="op"><</span><span class="ident">N</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">append</span>(<span class="self">self</span>, <span class="ident">last</span>: <span class="ident">T</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Longer</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">longer</span>: <span class="self">Self</span>::<span class="ident">Longer</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">mem</span>::<span class="ident">uninitialized</span>() };
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">longer</span>: <span class="ident">MaybeUninit</span><span class="op"><</span><span class="self">Self</span>::<span class="ident">Longer</span><span class="op">></span> <span class="op">=</span> <span class="ident">MaybeUninit</span>::<span class="ident">uninit</span>();
|
||||
|
||||
<span class="comment">// Note this is *mut Self, so add(1) increments by the whole array</span>
|
||||
<span class="kw">let</span> <span class="ident">out_ptr</span> <span class="op">=</span> <span class="ident">longer</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="self">Self</span>;
|
||||
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">longer</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="self">self</span>);
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">longer</span>[<span class="ident">N</span>::<span class="ident">to_usize</span>()], <span class="ident">last</span>);
|
||||
}
|
||||
<span class="comment">// write self first</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>, <span class="self">self</span>);
|
||||
<span class="comment">// increment past self, then write the last</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>.<span class="ident">add</span>(<span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>, <span class="ident">last</span>);
|
||||
|
||||
<span class="ident">longer</span>
|
||||
<span class="ident">longer</span>.<span class="ident">assume_init</span>()
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">prepend</span>(<span class="self">self</span>, <span class="ident">first</span>: <span class="ident">T</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Longer</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">longer</span>: <span class="self">Self</span>::<span class="ident">Longer</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">mem</span>::<span class="ident">uninitialized</span>() };
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">longer</span>: <span class="ident">MaybeUninit</span><span class="op"><</span><span class="self">Self</span>::<span class="ident">Longer</span><span class="op">></span> <span class="op">=</span> <span class="ident">MaybeUninit</span>::<span class="ident">uninit</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="ident">longer_ptr</span> <span class="op">=</span> <span class="ident">longer</span>.<span class="ident">as_mut_ptr</span>();
|
||||
<span class="comment">// Note this is *mut T, so add(1) increments by a single T</span>
|
||||
<span class="kw">let</span> <span class="ident">out_ptr</span> <span class="op">=</span> <span class="ident">longer</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>;
|
||||
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">longer_ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="ident">first</span>);
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">longer_ptr</span>.<span class="ident">offset</span>(<span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="self">self</span>);
|
||||
}
|
||||
<span class="comment">// write the first at the start</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>, <span class="ident">first</span>);
|
||||
<span class="comment">// increment past the first, then write self</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>.<span class="ident">add</span>(<span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="self">Self</span>, <span class="self">self</span>);
|
||||
|
||||
<span class="ident">longer</span>
|
||||
<span class="ident">longer</span>.<span class="ident">assume_init</span>()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -544,27 +623,26 @@
|
||||
<span class="kw">type</span> <span class="ident">Shorter</span> <span class="op">=</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Sub1</span><span class="op"><</span><span class="ident">N</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">pop_back</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="self">Self</span>::<span class="ident">Shorter</span>, <span class="ident">T</span>) {
|
||||
<span class="kw">let</span> <span class="ident">init_ptr</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">as_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">last_ptr</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">init_ptr</span>.<span class="ident">offset</span>(<span class="ident">Sub1</span>::<span class="op"><</span><span class="ident">N</span><span class="op">></span>::<span class="ident">to_usize</span>() <span class="kw">as</span> <span class="ident">isize</span>) };
|
||||
<span class="kw">let</span> <span class="ident">whole</span> <span class="op">=</span> <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="kw">let</span> <span class="ident">init</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">init_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">let</span> <span class="ident">last</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">last_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">init</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw">_</span>);
|
||||
<span class="kw">let</span> <span class="ident">last</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>().<span class="ident">add</span>(<span class="ident">Sub1</span>::<span class="op"><</span><span class="ident">N</span><span class="op">></span>::<span class="ident">USIZE</span>) <span class="kw">as</span> <span class="kw">_</span>);
|
||||
|
||||
<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="self">self</span>);
|
||||
|
||||
(<span class="ident">init</span>, <span class="ident">last</span>)
|
||||
(<span class="ident">init</span>, <span class="ident">last</span>)
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">pop_front</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="ident">T</span>, <span class="self">Self</span>::<span class="ident">Shorter</span>) {
|
||||
<span class="kw">let</span> <span class="ident">head_ptr</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">as_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">tail_ptr</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">head_ptr</span>.<span class="ident">offset</span>(<span class="number">1</span>) };
|
||||
<span class="comment">// ensure this doesn't get dropped</span>
|
||||
<span class="kw">let</span> <span class="ident">whole</span> <span class="op">=</span> <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">head_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">tail_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw">_</span>);
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>().<span class="ident">offset</span>(<span class="number">1</span>) <span class="kw">as</span> <span class="kw">_</span>);
|
||||
|
||||
<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="self">self</span>);
|
||||
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -593,15 +671,55 @@
|
||||
<span class="kw">type</span> <span class="ident">Second</span> <span class="op">=</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Diff</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">K</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">split</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="self">Self</span>::<span class="ident">First</span>, <span class="self">Self</span>::<span class="ident">Second</span>) {
|
||||
<span class="kw">let</span> <span class="ident">head_ptr</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">as_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">tail_ptr</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">head_ptr</span>.<span class="ident">offset</span>(<span class="ident">K</span>::<span class="ident">to_usize</span>() <span class="kw">as</span> <span class="ident">isize</span>) };
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="comment">// ensure this doesn't get dropped</span>
|
||||
<span class="kw">let</span> <span class="ident">whole</span> <span class="op">=</span> <span class="ident">ManuallyDrop</span>::<span class="ident">new</span>(<span class="self">self</span>);
|
||||
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">head_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">tail_ptr</span> <span class="kw">as</span> <span class="kw">_</span>) };
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw">_</span>);
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">whole</span>.<span class="ident">as_ptr</span>().<span class="ident">add</span>(<span class="ident">K</span>::<span class="ident">USIZE</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw">_</span>);
|
||||
|
||||
<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="self">self</span>);
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span>, <span class="ident">N</span>, <span class="ident">K</span><span class="op">></span> <span class="ident">Split</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">K</span><span class="op">></span> <span class="kw">for</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
<span class="ident">K</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="op">+</span> <span class="lifetime">'static</span>,
|
||||
<span class="ident">N</span>: <span class="ident">Sub</span><span class="op"><</span><span class="ident">K</span><span class="op">></span>,
|
||||
<span class="ident">Diff</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">K</span><span class="op">></span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
<span class="kw">type</span> <span class="ident">First</span> <span class="op">=</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">K</span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Second</span> <span class="op">=</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Diff</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">K</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">split</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="self">Self</span>::<span class="ident">First</span>, <span class="self">Self</span>::<span class="ident">Second</span>) {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">ptr_to_first</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">as_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="kw-2">&</span><span class="kw-2">*</span>(<span class="ident">ptr_to_first</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw">_</span>);
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="kw-2">&</span><span class="kw-2">*</span>(<span class="ident">ptr_to_first</span>.<span class="ident">add</span>(<span class="ident">K</span>::<span class="ident">USIZE</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw">_</span>);
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op"><</span><span class="lifetime">'a</span>, <span class="ident">T</span>, <span class="ident">N</span>, <span class="ident">K</span><span class="op">></span> <span class="ident">Split</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">K</span><span class="op">></span> <span class="kw">for</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">N</span><span class="op">></span>
|
||||
<span class="kw">where</span>
|
||||
<span class="ident">N</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
<span class="ident">K</span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span> <span class="op">+</span> <span class="lifetime">'static</span>,
|
||||
<span class="ident">N</span>: <span class="ident">Sub</span><span class="op"><</span><span class="ident">K</span><span class="op">></span>,
|
||||
<span class="ident">Diff</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">K</span><span class="op">></span>: <span class="ident">ArrayLength</span><span class="op"><</span><span class="ident">T</span><span class="op">></span>,
|
||||
{
|
||||
<span class="kw">type</span> <span class="ident">First</span> <span class="op">=</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">K</span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Second</span> <span class="op">=</span> <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="kw-2">mut</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Diff</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">K</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">split</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> (<span class="self">Self</span>::<span class="ident">First</span>, <span class="self">Self</span>::<span class="ident">Second</span>) {
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="kw">let</span> <span class="ident">ptr_to_first</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">as_mut_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">head</span> <span class="op">=</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span>(<span class="ident">ptr_to_first</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>);
|
||||
<span class="kw">let</span> <span class="ident">tail</span> <span class="op">=</span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="kw-2">*</span>(<span class="ident">ptr_to_first</span>.<span class="ident">add</span>(<span class="ident">K</span>::<span class="ident">USIZE</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>);
|
||||
(<span class="ident">head</span>, <span class="ident">tail</span>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -630,16 +748,18 @@
|
||||
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="ident">GenericArray</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">Sum</span><span class="op"><</span><span class="ident">N</span>, <span class="ident">M</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">concat</span>(<span class="self">self</span>, <span class="ident">rest</span>: <span class="self">Self</span>::<span class="ident">Rest</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Output</span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">output</span>: <span class="self">Self</span>::<span class="ident">Output</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">mem</span>::<span class="ident">uninitialized</span>() };
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">output</span>: <span class="ident">MaybeUninit</span><span class="op"><</span><span class="self">Self</span>::<span class="ident">Output</span><span class="op">></span> <span class="op">=</span> <span class="ident">MaybeUninit</span>::<span class="ident">uninit</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="ident">output_ptr</span> <span class="op">=</span> <span class="ident">output</span>.<span class="ident">as_mut_ptr</span>();
|
||||
<span class="kw">let</span> <span class="ident">out_ptr</span> <span class="op">=</span> <span class="ident">output</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="self">Self</span>;
|
||||
|
||||
<span class="kw">unsafe</span> {
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">output_ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="self">self</span>);
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">output_ptr</span>.<span class="ident">offset</span>(<span class="ident">N</span>::<span class="ident">to_usize</span>() <span class="kw">as</span> <span class="ident">isize</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="ident">rest</span>);
|
||||
}
|
||||
<span class="comment">// write all of self to the pointer</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>, <span class="self">self</span>);
|
||||
<span class="comment">// increment past self, then write the rest</span>
|
||||
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">out_ptr</span>.<span class="ident">add</span>(<span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw">_</span>, <span class="ident">rest</span>);
|
||||
|
||||
<span class="ident">output</span>
|
||||
<span class="ident">output</span>.<span class="ident">assume_init</span>()
|
||||
}
|
||||
}
|
||||
}
|
||||
</pre></div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user