]> Untitled Git - bitcoindevkit.org/blob
2e1c1c85cd8f19b575d0f5085fb5c14f8e233a6f
[bitcoindevkit.org] /
1 <!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="The merkle proof for inclusion of a tree in a taptree hash."><title>TaprootMerkleBranch in bdk_chain::bitcoin::taproot - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-46132b98.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="bdk_chain" data-themes="" data-resource-suffix="" data-rustdoc-version="1.85.0-nightly (6d9f6ae36 2024-12-16)" data-channel="nightly" data-search-js="search-036cda7a.js" data-settings-js="settings-0f613d39.js" ><script src="../../../static.files/storage-59e33391.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../../../bdk_chain/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../../bdk_chain/index.html"><img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><h2><a href="../../../bdk_chain/index.html">bdk_<wbr>chain</a><span class="version">0.21.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Taproot<wbr>Merkle<wbr>Branch</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.as_inner" title="as_inner">as_inner</a></li><li><a href="#method.as_slice" title="as_slice">as_slice</a></li><li><a href="#method.decode" title="decode">decode</a></li><li><a href="#method.encode" title="encode">encode</a></li><li><a href="#method.into_inner" title="into_inner">into_inner</a></li><li><a href="#method.into_vec" title="into_vec">into_vec</a></li><li><a href="#method.is_empty" title="is_empty">is_empty</a></li><li><a href="#method.len" title="len">len</a></li><li><a href="#method.serialize" title="serialize">serialize</a></li></ul><h3><a href="#deref-methods-%5BTapNodeHash%5D">Methods from Deref&lt;<wbr>Target=[<wbr>TapNode<wbr>Hash]&gt;</a></h3><ul class="block deref-methods"><li><a href="#method.align_to" title="align_to">align_to</a></li><li><a href="#method.align_to_mut" title="align_to_mut">align_to_mut</a></li><li><a href="#method.array_chunks" title="array_chunks">array_chunks</a></li><li><a href="#method.array_chunks_mut" title="array_chunks_mut">array_chunks_mut</a></li><li><a href="#method.array_windows" title="array_windows">array_windows</a></li><li><a href="#method.as_array" title="as_array">as_array</a></li><li><a href="#method.as_ascii" title="as_ascii">as_ascii</a></li><li><a href="#method.as_ascii_unchecked" title="as_ascii_unchecked">as_ascii_unchecked</a></li><li><a href="#method.as_bytes" title="as_bytes">as_bytes</a></li><li><a href="#method.as_chunks" title="as_chunks">as_chunks</a></li><li><a href="#method.as_chunks_mut" title="as_chunks_mut">as_chunks_mut</a></li><li><a href="#method.as_chunks_unchecked" title="as_chunks_unchecked">as_chunks_unchecked</a></li><li><a href="#method.as_chunks_unchecked_mut" title="as_chunks_unchecked_mut">as_chunks_unchecked_mut</a></li><li><a href="#method.as_flattened" title="as_flattened">as_flattened</a></li><li><a href="#method.as_flattened_mut" title="as_flattened_mut">as_flattened_mut</a></li><li><a href="#method.as_mut_array" title="as_mut_array">as_mut_array</a></li><li><a href="#method.as_mut_ptr" title="as_mut_ptr">as_mut_ptr</a></li><li><a href="#method.as_mut_ptr_range" title="as_mut_ptr_range">as_mut_ptr_range</a></li><li><a href="#method.as_ptr" title="as_ptr">as_ptr</a></li><li><a href="#method.as_ptr_range" title="as_ptr_range">as_ptr_range</a></li><li><a href="#method.as_rchunks" title="as_rchunks">as_rchunks</a></li><li><a href="#method.as_rchunks_mut" title="as_rchunks_mut">as_rchunks_mut</a></li><li><a href="#method.as_simd" title="as_simd">as_simd</a></li><li><a href="#method.as_simd_mut" title="as_simd_mut">as_simd_mut</a></li><li><a href="#method.as_str" title="as_str">as_str</a></li><li><a href="#method.binary_search" title="binary_search">binary_search</a></li><li><a href="#method.binary_search_by" title="binary_search_by">binary_search_by</a></li><li><a href="#method.binary_search_by_key" title="binary_search_by_key">binary_search_by_key</a></li><li><a href="#method.chunk_by" title="chunk_by">chunk_by</a></li><li><a href="#method.chunk_by_mut" title="chunk_by_mut">chunk_by_mut</a></li><li><a href="#method.chunks" title="chunks">chunks</a></li><li><a href="#method.chunks_exact" title="chunks_exact">chunks_exact</a></li><li><a href="#method.chunks_exact_mut" title="chunks_exact_mut">chunks_exact_mut</a></li><li><a href="#method.chunks_mut" title="chunks_mut">chunks_mut</a></li><li><a href="#method.clone_from_slice" title="clone_from_slice">clone_from_slice</a></li><li><a href="#method.concat" title="concat">concat</a></li><li><a href="#method.connect" title="connect">connect</a></li><li><a href="#method.contains" title="contains">contains</a></li><li><a href="#method.copy_from_slice" title="copy_from_slice">copy_from_slice</a></li><li><a href="#method.copy_within" title="copy_within">copy_within</a></li><li><a href="#method.elem_offset" title="elem_offset">elem_offset</a></li><li><a href="#method.ends_with" title="ends_with">ends_with</a></li><li><a href="#method.eq_ignore_ascii_case" title="eq_ignore_ascii_case">eq_ignore_ascii_case</a></li><li><a href="#method.escape_ascii" title="escape_ascii">escape_ascii</a></li><li><a href="#method.fill" title="fill">fill</a></li><li><a href="#method.fill_with" title="fill_with">fill_with</a></li><li><a href="#method.first" title="first">first</a></li><li><a href="#method.first_chunk" title="first_chunk">first_chunk</a></li><li><a href="#method.first_chunk_mut" title="first_chunk_mut">first_chunk_mut</a></li><li><a href="#method.first_mut" title="first_mut">first_mut</a></li><li><a href="#method.get" title="get">get</a></li><li><a href="#method.get_many_mut" title="get_many_mut">get_many_mut</a></li><li><a href="#method.get_many_unchecked_mut" title="get_many_unchecked_mut">get_many_unchecked_mut</a></li><li><a href="#method.get_mut" title="get_mut">get_mut</a></li><li><a href="#method.get_unchecked" title="get_unchecked">get_unchecked</a></li><li><a href="#method.get_unchecked_mut" title="get_unchecked_mut">get_unchecked_mut</a></li><li><a href="#method.is_ascii" title="is_ascii">is_ascii</a></li><li><a href="#method.is_empty-1" title="is_empty">is_empty</a></li><li><a href="#method.is_sorted" title="is_sorted">is_sorted</a></li><li><a href="#method.is_sorted_by" title="is_sorted_by">is_sorted_by</a></li><li><a href="#method.is_sorted_by_key" title="is_sorted_by_key">is_sorted_by_key</a></li><li><a href="#method.iter" title="iter">iter</a></li><li><a href="#method.iter_mut" title="iter_mut">iter_mut</a></li><li><a href="#method.join" title="join">join</a></li><li><a href="#method.last" title="last">last</a></li><li><a href="#method.last_chunk" title="last_chunk">last_chunk</a></li><li><a href="#method.last_chunk_mut" title="last_chunk_mut">last_chunk_mut</a></li><li><a href="#method.last_mut" title="last_mut">last_mut</a></li><li><a href="#method.len-1" title="len">len</a></li><li><a href="#method.make_ascii_lowercase" title="make_ascii_lowercase">make_ascii_lowercase</a></li><li><a href="#method.make_ascii_uppercase" title="make_ascii_uppercase">make_ascii_uppercase</a></li><li><a href="#method.partition_dedup" title="partition_dedup">partition_dedup</a></li><li><a href="#method.partition_dedup_by" title="partition_dedup_by">partition_dedup_by</a></li><li><a href="#method.partition_dedup_by_key" title="partition_dedup_by_key">partition_dedup_by_key</a></li><li><a href="#method.partition_point" title="partition_point">partition_point</a></li><li><a href="#method.rchunks" title="rchunks">rchunks</a></li><li><a href="#method.rchunks_exact" title="rchunks_exact">rchunks_exact</a></li><li><a href="#method.rchunks_exact_mut" title="rchunks_exact_mut">rchunks_exact_mut</a></li><li><a href="#method.rchunks_mut" title="rchunks_mut">rchunks_mut</a></li><li><a href="#method.repeat" title="repeat">repeat</a></li><li><a href="#method.reverse" title="reverse">reverse</a></li><li><a href="#method.rotate_left" title="rotate_left">rotate_left</a></li><li><a href="#method.rotate_right" title="rotate_right">rotate_right</a></li><li><a href="#method.rsplit" title="rsplit">rsplit</a></li><li><a href="#method.rsplit_mut" title="rsplit_mut">rsplit_mut</a></li><li><a href="#method.rsplit_once" title="rsplit_once">rsplit_once</a></li><li><a href="#method.rsplitn" title="rsplitn">rsplitn</a></li><li><a href="#method.rsplitn_mut" title="rsplitn_mut">rsplitn_mut</a></li><li><a href="#method.select_nth_unstable" title="select_nth_unstable">select_nth_unstable</a></li><li><a href="#method.select_nth_unstable_by" title="select_nth_unstable_by">select_nth_unstable_by</a></li><li><a href="#method.select_nth_unstable_by_key" title="select_nth_unstable_by_key">select_nth_unstable_by_key</a></li><li><a href="#method.sort" title="sort">sort</a></li><li><a href="#method.sort_by" title="sort_by">sort_by</a></li><li><a href="#method.sort_by_cached_key" title="sort_by_cached_key">sort_by_cached_key</a></li><li><a href="#method.sort_by_key" title="sort_by_key">sort_by_key</a></li><li><a href="#method.sort_floats" title="sort_floats">sort_floats</a></li><li><a href="#method.sort_floats-1" title="sort_floats">sort_floats</a></li><li><a href="#method.sort_unstable" title="sort_unstable">sort_unstable</a></li><li><a href="#method.sort_unstable_by" title="sort_unstable_by">sort_unstable_by</a></li><li><a href="#method.sort_unstable_by_key" title="sort_unstable_by_key">sort_unstable_by_key</a></li><li><a href="#method.split" title="split">split</a></li><li><a href="#method.split_at" title="split_at">split_at</a></li><li><a href="#method.split_at_checked" title="split_at_checked">split_at_checked</a></li><li><a href="#method.split_at_mut" title="split_at_mut">split_at_mut</a></li><li><a href="#method.split_at_mut_checked" title="split_at_mut_checked">split_at_mut_checked</a></li><li><a href="#method.split_at_mut_unchecked" title="split_at_mut_unchecked">split_at_mut_unchecked</a></li><li><a href="#method.split_at_unchecked" title="split_at_unchecked">split_at_unchecked</a></li><li><a href="#method.split_first" title="split_first">split_first</a></li><li><a href="#method.split_first_chunk" title="split_first_chunk">split_first_chunk</a></li><li><a href="#method.split_first_chunk_mut" title="split_first_chunk_mut">split_first_chunk_mut</a></li><li><a href="#method.split_first_mut" title="split_first_mut">split_first_mut</a></li><li><a href="#method.split_inclusive" title="split_inclusive">split_inclusive</a></li><li><a href="#method.split_inclusive_mut" title="split_inclusive_mut">split_inclusive_mut</a></li><li><a href="#method.split_last" title="split_last">split_last</a></li><li><a href="#method.split_last_chunk" title="split_last_chunk">split_last_chunk</a></li><li><a href="#method.split_last_chunk_mut" title="split_last_chunk_mut">split_last_chunk_mut</a></li><li><a href="#method.split_last_mut" title="split_last_mut">split_last_mut</a></li><li><a href="#method.split_mut" title="split_mut">split_mut</a></li><li><a href="#method.split_once" title="split_once">split_once</a></li><li><a href="#method.splitn" title="splitn">splitn</a></li><li><a href="#method.splitn_mut" title="splitn_mut">splitn_mut</a></li><li><a href="#method.starts_with" title="starts_with">starts_with</a></li><li><a href="#method.strip_prefix" title="strip_prefix">strip_prefix</a></li><li><a href="#method.strip_suffix" title="strip_suffix">strip_suffix</a></li><li><a href="#method.subslice_range" title="subslice_range">subslice_range</a></li><li><a href="#method.swap" title="swap">swap</a></li><li><a href="#method.swap_unchecked" title="swap_unchecked">swap_unchecked</a></li><li><a href="#method.swap_with_slice" title="swap_with_slice">swap_with_slice</a></li><li><a href="#method.take" title="take">take</a></li><li><a href="#method.take_first" title="take_first">take_first</a></li><li><a href="#method.take_first_mut" title="take_first_mut">take_first_mut</a></li><li><a href="#method.take_last" title="take_last">take_last</a></li><li><a href="#method.take_last_mut" title="take_last_mut">take_last_mut</a></li><li><a href="#method.take_mut" title="take_mut">take_mut</a></li><li><a href="#method.to_ascii_lowercase" title="to_ascii_lowercase">to_ascii_lowercase</a></li><li><a href="#method.to_ascii_uppercase" title="to_ascii_uppercase">to_ascii_uppercase</a></li><li><a href="#method.to_vec" title="to_vec">to_vec</a></li><li><a href="#method.to_vec_in" title="to_vec_in">to_vec_in</a></li><li><a href="#method.trim_ascii" title="trim_ascii">trim_ascii</a></li><li><a href="#method.trim_ascii_end" title="trim_ascii_end">trim_ascii_end</a></li><li><a href="#method.trim_ascii_start" title="trim_ascii_start">trim_ascii_start</a></li><li><a href="#method.utf8_chunks" title="utf8_chunks">utf8_chunks</a></li><li><a href="#method.windows" title="windows">windows</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-AsMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="AsMut&#60;[TapNodeHash]&#62;">AsMut&#60;[TapNodeHash]&#62;</a></li><li><a href="#impl-AsRef%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="AsRef&#60;[TapNodeHash]&#62;">AsRef&#60;[TapNodeHash]&#62;</a></li><li><a href="#impl-Borrow%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="Borrow&#60;[TapNodeHash]&#62;">Borrow&#60;[TapNodeHash]&#62;</a></li><li><a href="#impl-BorrowMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="BorrowMut&#60;[TapNodeHash]&#62;">BorrowMut&#60;[TapNodeHash]&#62;</a></li><li><a href="#impl-Clone-for-TaprootMerkleBranch" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-TaprootMerkleBranch" title="Debug">Debug</a></li><li><a href="#impl-Default-for-TaprootMerkleBranch" title="Default">Default</a></li><li><a href="#impl-Deref-for-TaprootMerkleBranch" title="Deref">Deref</a></li><li><a href="#impl-DerefMut-for-TaprootMerkleBranch" title="DerefMut">DerefMut</a></li><li><a href="#impl-Deserialize%3C'de%3E-for-TaprootMerkleBranch" title="Deserialize&#60;&#39;de&#62;">Deserialize&#60;&#39;de&#62;</a></li><li><a href="#impl-Eq-for-TaprootMerkleBranch" title="Eq">Eq</a></li><li><a href="#impl-From%3CTaprootMerkleBranch%3E-for-Vec%3CTapNodeHash%3E" title="From&#60;TaprootMerkleBranch&#62;">From&#60;TaprootMerkleBranch&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+0%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 0]&#62;">From&#60;[TapNodeHash; 0]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+100%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 100]&#62;">From&#60;[TapNodeHash; 100]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+101%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 101]&#62;">From&#60;[TapNodeHash; 101]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+102%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 102]&#62;">From&#60;[TapNodeHash; 102]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+103%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 103]&#62;">From&#60;[TapNodeHash; 103]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+104%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 104]&#62;">From&#60;[TapNodeHash; 104]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+105%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 105]&#62;">From&#60;[TapNodeHash; 105]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+106%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 106]&#62;">From&#60;[TapNodeHash; 106]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+107%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 107]&#62;">From&#60;[TapNodeHash; 107]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+108%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 108]&#62;">From&#60;[TapNodeHash; 108]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+109%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 109]&#62;">From&#60;[TapNodeHash; 109]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+10%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 10]&#62;">From&#60;[TapNodeHash; 10]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+110%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 110]&#62;">From&#60;[TapNodeHash; 110]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+111%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 111]&#62;">From&#60;[TapNodeHash; 111]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+112%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 112]&#62;">From&#60;[TapNodeHash; 112]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+113%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 113]&#62;">From&#60;[TapNodeHash; 113]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+114%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 114]&#62;">From&#60;[TapNodeHash; 114]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+115%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 115]&#62;">From&#60;[TapNodeHash; 115]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+116%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 116]&#62;">From&#60;[TapNodeHash; 116]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+117%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 117]&#62;">From&#60;[TapNodeHash; 117]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+118%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 118]&#62;">From&#60;[TapNodeHash; 118]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+119%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 119]&#62;">From&#60;[TapNodeHash; 119]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+11%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 11]&#62;">From&#60;[TapNodeHash; 11]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+120%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 120]&#62;">From&#60;[TapNodeHash; 120]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+121%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 121]&#62;">From&#60;[TapNodeHash; 121]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+122%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 122]&#62;">From&#60;[TapNodeHash; 122]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+123%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 123]&#62;">From&#60;[TapNodeHash; 123]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+124%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 124]&#62;">From&#60;[TapNodeHash; 124]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+125%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 125]&#62;">From&#60;[TapNodeHash; 125]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+126%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 126]&#62;">From&#60;[TapNodeHash; 126]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+127%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 127]&#62;">From&#60;[TapNodeHash; 127]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+128%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 128]&#62;">From&#60;[TapNodeHash; 128]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+12%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 12]&#62;">From&#60;[TapNodeHash; 12]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+13%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 13]&#62;">From&#60;[TapNodeHash; 13]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+14%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 14]&#62;">From&#60;[TapNodeHash; 14]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+15%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 15]&#62;">From&#60;[TapNodeHash; 15]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+16%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 16]&#62;">From&#60;[TapNodeHash; 16]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+17%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 17]&#62;">From&#60;[TapNodeHash; 17]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+18%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 18]&#62;">From&#60;[TapNodeHash; 18]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+19%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 19]&#62;">From&#60;[TapNodeHash; 19]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+1%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 1]&#62;">From&#60;[TapNodeHash; 1]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+20%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 20]&#62;">From&#60;[TapNodeHash; 20]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+21%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 21]&#62;">From&#60;[TapNodeHash; 21]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+22%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 22]&#62;">From&#60;[TapNodeHash; 22]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+23%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 23]&#62;">From&#60;[TapNodeHash; 23]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+24%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 24]&#62;">From&#60;[TapNodeHash; 24]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+25%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 25]&#62;">From&#60;[TapNodeHash; 25]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+26%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 26]&#62;">From&#60;[TapNodeHash; 26]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+27%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 27]&#62;">From&#60;[TapNodeHash; 27]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+28%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 28]&#62;">From&#60;[TapNodeHash; 28]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+29%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 29]&#62;">From&#60;[TapNodeHash; 29]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+2%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 2]&#62;">From&#60;[TapNodeHash; 2]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+30%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 30]&#62;">From&#60;[TapNodeHash; 30]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+31%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 31]&#62;">From&#60;[TapNodeHash; 31]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+32%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 32]&#62;">From&#60;[TapNodeHash; 32]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+33%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 33]&#62;">From&#60;[TapNodeHash; 33]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+34%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 34]&#62;">From&#60;[TapNodeHash; 34]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+35%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 35]&#62;">From&#60;[TapNodeHash; 35]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+36%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 36]&#62;">From&#60;[TapNodeHash; 36]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+37%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 37]&#62;">From&#60;[TapNodeHash; 37]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+38%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 38]&#62;">From&#60;[TapNodeHash; 38]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+39%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 39]&#62;">From&#60;[TapNodeHash; 39]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+3%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 3]&#62;">From&#60;[TapNodeHash; 3]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+40%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 40]&#62;">From&#60;[TapNodeHash; 40]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+41%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 41]&#62;">From&#60;[TapNodeHash; 41]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+42%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 42]&#62;">From&#60;[TapNodeHash; 42]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+43%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 43]&#62;">From&#60;[TapNodeHash; 43]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+44%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 44]&#62;">From&#60;[TapNodeHash; 44]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+45%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 45]&#62;">From&#60;[TapNodeHash; 45]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+46%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 46]&#62;">From&#60;[TapNodeHash; 46]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+47%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 47]&#62;">From&#60;[TapNodeHash; 47]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+48%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 48]&#62;">From&#60;[TapNodeHash; 48]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+49%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 49]&#62;">From&#60;[TapNodeHash; 49]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+4%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 4]&#62;">From&#60;[TapNodeHash; 4]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+50%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 50]&#62;">From&#60;[TapNodeHash; 50]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+51%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 51]&#62;">From&#60;[TapNodeHash; 51]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+52%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 52]&#62;">From&#60;[TapNodeHash; 52]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+53%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 53]&#62;">From&#60;[TapNodeHash; 53]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+54%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 54]&#62;">From&#60;[TapNodeHash; 54]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+55%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 55]&#62;">From&#60;[TapNodeHash; 55]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+56%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 56]&#62;">From&#60;[TapNodeHash; 56]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+57%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 57]&#62;">From&#60;[TapNodeHash; 57]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+58%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 58]&#62;">From&#60;[TapNodeHash; 58]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+59%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 59]&#62;">From&#60;[TapNodeHash; 59]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+5%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 5]&#62;">From&#60;[TapNodeHash; 5]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+60%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 60]&#62;">From&#60;[TapNodeHash; 60]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+61%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 61]&#62;">From&#60;[TapNodeHash; 61]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+62%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 62]&#62;">From&#60;[TapNodeHash; 62]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+63%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 63]&#62;">From&#60;[TapNodeHash; 63]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+64%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 64]&#62;">From&#60;[TapNodeHash; 64]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+65%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 65]&#62;">From&#60;[TapNodeHash; 65]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+66%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 66]&#62;">From&#60;[TapNodeHash; 66]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+67%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 67]&#62;">From&#60;[TapNodeHash; 67]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+68%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 68]&#62;">From&#60;[TapNodeHash; 68]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+69%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 69]&#62;">From&#60;[TapNodeHash; 69]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+6%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 6]&#62;">From&#60;[TapNodeHash; 6]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+70%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 70]&#62;">From&#60;[TapNodeHash; 70]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+71%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 71]&#62;">From&#60;[TapNodeHash; 71]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+72%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 72]&#62;">From&#60;[TapNodeHash; 72]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+73%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 73]&#62;">From&#60;[TapNodeHash; 73]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+74%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 74]&#62;">From&#60;[TapNodeHash; 74]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+75%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 75]&#62;">From&#60;[TapNodeHash; 75]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+76%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 76]&#62;">From&#60;[TapNodeHash; 76]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+77%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 77]&#62;">From&#60;[TapNodeHash; 77]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+78%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 78]&#62;">From&#60;[TapNodeHash; 78]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+79%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 79]&#62;">From&#60;[TapNodeHash; 79]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+7%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 7]&#62;">From&#60;[TapNodeHash; 7]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+80%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 80]&#62;">From&#60;[TapNodeHash; 80]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+81%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 81]&#62;">From&#60;[TapNodeHash; 81]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+82%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 82]&#62;">From&#60;[TapNodeHash; 82]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+83%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 83]&#62;">From&#60;[TapNodeHash; 83]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+84%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 84]&#62;">From&#60;[TapNodeHash; 84]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+85%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 85]&#62;">From&#60;[TapNodeHash; 85]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+86%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 86]&#62;">From&#60;[TapNodeHash; 86]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+87%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 87]&#62;">From&#60;[TapNodeHash; 87]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+88%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 88]&#62;">From&#60;[TapNodeHash; 88]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+89%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 89]&#62;">From&#60;[TapNodeHash; 89]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+8%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 8]&#62;">From&#60;[TapNodeHash; 8]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+90%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 90]&#62;">From&#60;[TapNodeHash; 90]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+91%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 91]&#62;">From&#60;[TapNodeHash; 91]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+92%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 92]&#62;">From&#60;[TapNodeHash; 92]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+93%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 93]&#62;">From&#60;[TapNodeHash; 93]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+94%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 94]&#62;">From&#60;[TapNodeHash; 94]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+95%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 95]&#62;">From&#60;[TapNodeHash; 95]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+96%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 96]&#62;">From&#60;[TapNodeHash; 96]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+97%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 97]&#62;">From&#60;[TapNodeHash; 97]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+98%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 98]&#62;">From&#60;[TapNodeHash; 98]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+99%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 99]&#62;">From&#60;[TapNodeHash; 99]&#62;</a></li><li><a href="#impl-From%3C%5BTapNodeHash;+9%5D%3E-for-TaprootMerkleBranch" title="From&#60;[TapNodeHash; 9]&#62;">From&#60;[TapNodeHash; 9]&#62;</a></li><li><a href="#impl-Hash-for-TaprootMerkleBranch" title="Hash">Hash</a></li><li><a href="#impl-IntoIterator-for-%26TaprootMerkleBranch" title="IntoIterator">IntoIterator</a></li><li><a href="#impl-IntoIterator-for-%26mut+TaprootMerkleBranch" title="IntoIterator">IntoIterator</a></li><li><a href="#impl-IntoIterator-for-TaprootMerkleBranch" title="IntoIterator">IntoIterator</a></li><li><a href="#impl-Ord-for-TaprootMerkleBranch" title="Ord">Ord</a></li><li><a href="#impl-PartialEq-for-TaprootMerkleBranch" title="PartialEq">PartialEq</a></li><li><a href="#impl-PartialOrd-for-TaprootMerkleBranch" title="PartialOrd">PartialOrd</a></li><li><a href="#impl-Serialize-for-TaprootMerkleBranch" title="Serialize">Serialize</a></li><li><a href="#impl-StructuralPartialEq-for-TaprootMerkleBranch" title="StructuralPartialEq">StructuralPartialEq</a></li><li><a href="#impl-TryFrom%3C%26%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="TryFrom&#60;&#38;[TapNodeHash]&#62;">TryFrom&#60;&#38;[TapNodeHash]&#62;</a></li><li><a href="#impl-TryFrom%3CBox%3C%5BTapNodeHash%5D%3E%3E-for-TaprootMerkleBranch" title="TryFrom&#60;Box&#60;[TapNodeHash]&#62;&#62;">TryFrom&#60;Box&#60;[TapNodeHash]&#62;&#62;</a></li><li><a href="#impl-TryFrom%3CVec%3CTapNodeHash%3E%3E-for-TaprootMerkleBranch" title="TryFrom&#60;Vec&#60;TapNodeHash&#62;&#62;">TryFrom&#60;Vec&#60;TapNodeHash&#62;&#62;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-TaprootMerkleBranch" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-TaprootMerkleBranch" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TaprootMerkleBranch" title="Send">Send</a></li><li><a href="#impl-Sync-for-TaprootMerkleBranch" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-TaprootMerkleBranch" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-TaprootMerkleBranch" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-DeserializeOwned-for-T" title="DeserializeOwned">DeserializeOwned</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Q" title="Equivalent&#60;K&#62;">Equivalent&#60;K&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-Receiver-for-P" title="Receiver">Receiver</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-VZip%3CV%3E-for-T" title="VZip&#60;V&#62;">VZip&#60;V&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In bdk_<wbr>chain::<wbr>bitcoin::<wbr>taproot</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../../index.html">bdk_chain</a>::<wbr><a href="../index.html">bitcoin</a>::<wbr><a href="index.html">taproot</a></span><h1>Struct <span class="struct">TaprootMerkleBranch</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub struct TaprootMerkleBranch(<span class="comment">/* private fields */</span>);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The merkle proof for inclusion of a tree in a taptree hash.</p>
2 </div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-TaprootMerkleBranch" class="impl"><a href="#impl-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_inner" class="method"><h4 class="code-header">pub fn <a href="#method.as_inner" class="fn">as_inner</a>(&amp;self) -&gt; &amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.32.0: Use <code>as_slice</code> instead</span></div></span></summary><div class="docblock"><p>Returns a reference to the slice of hashes.</p>
3 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_slice" class="method"><h4 class="code-header">pub fn <a href="#method.as_slice" class="fn">as_slice</a>(&amp;self) -&gt; &amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class="docblock"><p>Returns a reference to the slice of hashes.</p>
4 </div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Returns the number of nodes in this merkle proof.</p>
5 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks if this merkle proof is empty.</p>
6 </div></details><details class="toggle method-toggle" open><summary><section id="method.decode" class="method"><h4 class="code-header">pub fn <a href="#method.decode" class="fn">decode</a>(sl: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, <a class="enum" href="enum.TaprootError.html" title="enum bdk_chain::bitcoin::taproot::TaprootError">TaprootError</a>&gt;</h4></section></summary><div class="docblock"><p>Decodes bytes from control block.</p>
7 <p>This reads the branch as encoded in the control block: the concatenated 32B byte chunks -
8 one for each hash.</p>
9 <h5 id="errors"><a class="doc-anchor" href="#errors">§</a>Errors</h5>
10 <p>The function returns an error if the number of bytes is not an integer multiple of 32 or
11 if the number of hashes exceeds 128.</p>
12 </div></details><details class="toggle method-toggle" open><summary><section id="method.encode" class="method"><h4 class="code-header">pub fn <a href="#method.encode" class="fn">encode</a>&lt;Write&gt;(&amp;self, writer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut Write</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="../io/struct.Error.html" title="struct bdk_chain::bitcoin::io::Error">Error</a>&gt;<div class="where">where
13 Write: <a class="trait" href="../io/trait.Write.html" title="trait bdk_chain::bitcoin::io::Write">Write</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class="docblock"><p>Serializes to a writer.</p>
14 <h5 id="returns"><a class="doc-anchor" href="#returns">§</a>Returns</h5>
15 <p>The number of bytes written to the writer.</p>
16 </div></details><details class="toggle method-toggle" open><summary><section id="method.serialize" class="method"><h4 class="code-header">pub fn <a href="#method.serialize" class="fn">serialize</a>(&amp;self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt; <a href="#" class="tooltip" data-notable-ty="Vec&lt;u8&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Serializes <code>self</code> as bytes.</p>
17 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_inner" class="method"><h4 class="code-header">pub fn <a href="#method.into_inner" class="fn">into_inner</a>(self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.32.0: Use <code>into_vec</code> instead</span></div></span></summary><div class="docblock"><p>Returns the inner list of hashes.</p>
18 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_vec" class="method"><h4 class="code-header">pub fn <a href="#method.into_vec" class="fn">into_vec</a>(self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the list of hashes stored in a <code>Vec</code>.</p>
19 </div></details></div></details></div><details class="toggle big-toggle" open><summary><h2 id="deref-methods-%5BTapNodeHash%5D" class="section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt;</span><a href="#deref-methods-%5BTapNodeHash%5D" class="anchor">§</a></h2></summary><div id="deref-methods-%5BTapNodeHash%5D-1" class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_str" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ascii/ascii_char.rs.html#564">Source</a><h4 class="code-header">pub fn <a href="#method.as_str" class="fn">as_str</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ascii_char</code>)</span></div></span></summary><div class="docblock"><p>Views this slice of ASCII characters as a UTF-8 <code>str</code>.</p>
20 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ascii/ascii_char.rs.html#575">Source</a><h4 class="code-header">pub fn <a href="#method.as_bytes" class="fn">as_bytes</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ascii_char</code>)</span></div></span></summary><div class="docblock"><p>Views this slice of ASCII characters as a slice of <code>u8</code> bytes.</p>
21 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_ascii" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#16">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_ascii" class="fn">is_ascii</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks if all bytes in this slice are within the ASCII range.</p>
22 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_ascii" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#25">Source</a><h4 class="code-header">pub fn <a href="#method.as_ascii" class="fn">as_ascii</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;[<a class="enum" href="https://doc.rust-lang.org/nightly/core/ascii/ascii_char/enum.AsciiChar.html" title="enum core::ascii::ascii_char::AsciiChar">AsciiChar</a>]&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ascii_char</code>)</span></div></span></summary><div class="docblock"><p>If this slice <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_ascii" title="method slice::is_ascii"><code>is_ascii</code></a>, returns it as a slice of
23 <a href="https://doc.rust-lang.org/nightly/core/ascii/ascii_char/enum.AsciiChar.html" title="enum core::ascii::ascii_char::AsciiChar">ASCII characters</a>, otherwise returns <code>None</code>.</p>
24 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_ascii_unchecked" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#43">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_ascii_unchecked" class="fn">as_ascii_unchecked</a>(&amp;self) -&gt; &amp;[<a class="enum" href="https://doc.rust-lang.org/nightly/core/ascii/ascii_char/enum.AsciiChar.html" title="enum core::ascii::ascii_char::AsciiChar">AsciiChar</a>]</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ascii_char</code>)</span></div></span></summary><div class="docblock"><p>Converts this slice of bytes into a slice of ASCII characters,
25 without checking whether they’re valid.</p>
26 <h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
27 <p>Every byte in the slice must be in <code>0..=127</code>, or else this is UB.</p>
28 </div></details><details class="toggle method-toggle" open><summary><section id="method.eq_ignore_ascii_case" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#58">Source</a></span><h4 class="code-header">pub fn <a href="#method.eq_ignore_ascii_case" class="fn">eq_ignore_ascii_case</a>(&amp;self, other: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks that two slices are an ASCII case-insensitive match.</p>
29 <p>Same as <code>to_ascii_lowercase(a) == to_ascii_lowercase(b)</code>,
30 but without allocating and copying temporaries.</p>
31 </div></details><details class="toggle method-toggle" open><summary><section id="method.make_ascii_uppercase" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#93">Source</a></span><h4 class="code-header">pub fn <a href="#method.make_ascii_uppercase" class="fn">make_ascii_uppercase</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Converts this slice to its ASCII upper case equivalent in-place.</p>
32 <p>ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’,
33 but non-ASCII letters are unchanged.</p>
34 <p>To return a new uppercased value without modifying the existing one, use
35 <a href="#method.to_ascii_uppercase"><code>to_ascii_uppercase</code></a>.</p>
36 </div></details><details class="toggle method-toggle" open><summary><section id="method.make_ascii_lowercase" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#115">Source</a></span><h4 class="code-header">pub fn <a href="#method.make_ascii_lowercase" class="fn">make_ascii_lowercase</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Converts this slice to its ASCII lower case equivalent in-place.</p>
37 <p>ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’,
38 but non-ASCII letters are unchanged.</p>
39 <p>To return a new lowercased value without modifying the existing one, use
40 <a href="#method.to_ascii_lowercase"><code>to_ascii_lowercase</code></a>.</p>
41 </div></details><details class="toggle method-toggle" open><summary><section id="method.escape_ascii" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.60.0">1.60.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#139">Source</a></span><h4 class="code-header">pub fn <a href="#method.escape_ascii" class="fn">escape_ascii</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/ascii/struct.EscapeAscii.html" title="struct core::slice::ascii::EscapeAscii">EscapeAscii</a>&lt;'_&gt; <a href="#" class="tooltip" data-notable-ty="EscapeAscii&lt;&#39;_&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator that produces an escaped version of this slice,
42 treating it as an ASCII string.</p>
43 <h5 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h5>
44 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>
45 <span class="kw">let </span>s = <span class="string">b"0\t\r\n'\"\\\x9d"</span>;
46 <span class="kw">let </span>escaped = s.escape_ascii().to_string();
47 <span class="macro">assert_eq!</span>(escaped, <span class="string">"0\\t\\r\\n\\'\\\"\\\\\\x9d"</span>);</code></pre></div>
48 </div></details><details class="toggle method-toggle" open><summary><section id="method.trim_ascii_start" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#158">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii_start" class="fn">trim_ascii_start</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with leading ASCII whitespace bytes removed.</p>
49 <p>‘Whitespace’ refers to the definition used by
50 <a href="https://doc.rust-lang.org/nightly/std/primitive.u8.html#method.is_ascii_whitespace" title="method u8::is_ascii_whitespace"><code>u8::is_ascii_whitespace</code></a>.</p>
51 <h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
52 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>(<span class="string">b" \t hello world\n"</span>.trim_ascii_start(), <span class="string">b"hello world\n"</span>);
53 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii_start(), <span class="string">b""</span>);
54 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii_start(), <span class="string">b""</span>);</code></pre></div>
55 </div></details><details class="toggle method-toggle" open><summary><section id="method.trim_ascii_end" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#187">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii_end" class="fn">trim_ascii_end</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with trailing ASCII whitespace bytes removed.</p>
56 <p>‘Whitespace’ refers to the definition used by
57 <a href="https://doc.rust-lang.org/nightly/std/primitive.u8.html#method.is_ascii_whitespace" title="method u8::is_ascii_whitespace"><code>u8::is_ascii_whitespace</code></a>.</p>
58 <h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
59 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>(<span class="string">b"\r hello world\n "</span>.trim_ascii_end(), <span class="string">b"\r hello world"</span>);
60 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii_end(), <span class="string">b""</span>);
61 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii_end(), <span class="string">b""</span>);</code></pre></div>
62 </div></details><details class="toggle method-toggle" open><summary><section id="method.trim_ascii" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/ascii.rs.html#217">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii" class="fn">trim_ascii</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with leading and trailing ASCII whitespace bytes
63 removed.</p>
64 <p>‘Whitespace’ refers to the definition used by
65 <a href="https://doc.rust-lang.org/nightly/std/primitive.u8.html#method.is_ascii_whitespace" title="method u8::is_ascii_whitespace"><code>u8::is_ascii_whitespace</code></a>.</p>
66 <h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
67 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>(<span class="string">b"\r hello world\n "</span>.trim_ascii(), <span class="string">b"hello world"</span>);
68 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii(), <span class="string">b""</span>);
69 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii(), <span class="string">b""</span>);</code></pre></div>
70 </div></details><details class="toggle method-toggle" open><summary><section id="method.len-1" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#117">Source</a></span><h4 class="code-header">pub fn <a href="#method.len-1" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Returns the number of elements in the slice.</p>
71 <h5 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h5>
72 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
73 <span class="macro">assert_eq!</span>(a.len(), <span class="number">3</span>);</code></pre></div>
74 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty-1" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#136">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_empty-1" class="fn">is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if the slice has a length of 0.</p>
75 <h5 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h5>
76 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
77 <span class="macro">assert!</span>(!a.is_empty());
78
79 <span class="kw">let </span>b: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[];
80 <span class="macro">assert!</span>(b.is_empty());</code></pre></div>
81 </div></details><details class="toggle method-toggle" open><summary><section id="method.first" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#155">Source</a></span><h4 class="code-header">pub fn <a href="#method.first" class="fn">first</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the first element of the slice, or <code>None</code> if it is empty.</p>
82 <h5 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h5>
83 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
84 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">10</span>), v.first());
85
86 <span class="kw">let </span>w: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[];
87 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, w.first());</code></pre></div>
88 </div></details><details class="toggle method-toggle" open><summary><section id="method.first_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#178">Source</a></span><h4 class="code-header">pub fn <a href="#method.first_mut" class="fn">first_mut</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable reference to the first element of the slice, or <code>None</code> if it is empty.</p>
89 <h5 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples</h5>
90 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
91
92 <span class="kw">if let </span><span class="prelude-val">Some</span>(first) = x.first_mut() {
93 <span class="kw-2">*</span>first = <span class="number">5</span>;
94 }
95 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">5</span>, <span class="number">1</span>, <span class="number">2</span>]);
96
97 <span class="kw">let </span>y: <span class="kw-2">&amp;mut </span>[i32] = <span class="kw-2">&amp;mut </span>[];
98 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, y.first_mut());</code></pre></div>
99 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_first" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#198">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_first" class="fn">split_first</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns the first and all the rest of the elements of the slice, or <code>None</code> if it is empty.</p>
100 <h5 id="examples-8"><a class="doc-anchor" href="#examples-8">§</a>Examples</h5>
101 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
102
103 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first() {
104 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&amp;</span><span class="number">0</span>);
105 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>]);
106 }</code></pre></div>
107 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_first_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#220">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_first_mut" class="fn">split_first_mut</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns the first and all the rest of the elements of the slice, or <code>None</code> if it is empty.</p>
108 <h5 id="examples-9"><a class="doc-anchor" href="#examples-9">§</a>Examples</h5>
109 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
110
111 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_mut() {
112 <span class="kw-2">*</span>first = <span class="number">3</span>;
113 elements[<span class="number">0</span>] = <span class="number">4</span>;
114 elements[<span class="number">1</span>] = <span class="number">5</span>;
115 }
116 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);</code></pre></div>
117 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_last" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#240">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_last" class="fn">split_last</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns the last and all the rest of the elements of the slice, or <code>None</code> if it is empty.</p>
118 <h5 id="examples-10"><a class="doc-anchor" href="#examples-10">§</a>Examples</h5>
119 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
120
121 <span class="kw">if let </span><span class="prelude-val">Some</span>((last, elements)) = x.split_last() {
122 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&amp;</span><span class="number">2</span>);
123 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>]);
124 }</code></pre></div>
125 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_last_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.5.0">1.5.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#262">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_last_mut" class="fn">split_last_mut</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns the last and all the rest of the elements of the slice, or <code>None</code> if it is empty.</p>
126 <h5 id="examples-11"><a class="doc-anchor" href="#examples-11">§</a>Examples</h5>
127 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
128
129 <span class="kw">if let </span><span class="prelude-val">Some</span>((last, elements)) = x.split_last_mut() {
130 <span class="kw-2">*</span>last = <span class="number">3</span>;
131 elements[<span class="number">0</span>] = <span class="number">4</span>;
132 elements[<span class="number">1</span>] = <span class="number">5</span>;
133 }
134 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">4</span>, <span class="number">5</span>, <span class="number">3</span>]);</code></pre></div>
135 </div></details><details class="toggle method-toggle" open><summary><section id="method.last" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#281">Source</a></span><h4 class="code-header">pub fn <a href="#method.last" class="fn">last</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the last element of the slice, or <code>None</code> if it is empty.</p>
136 <h5 id="examples-12"><a class="doc-anchor" href="#examples-12">§</a>Examples</h5>
137 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
138 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">30</span>), v.last());
139
140 <span class="kw">let </span>w: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[];
141 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, w.last());</code></pre></div>
142 </div></details><details class="toggle method-toggle" open><summary><section id="method.last_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#304">Source</a></span><h4 class="code-header">pub fn <a href="#method.last_mut" class="fn">last_mut</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable reference to the last item in the slice, or <code>None</code> if it is empty.</p>
143 <h5 id="examples-13"><a class="doc-anchor" href="#examples-13">§</a>Examples</h5>
144 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
145
146 <span class="kw">if let </span><span class="prelude-val">Some</span>(last) = x.last_mut() {
147 <span class="kw-2">*</span>last = <span class="number">10</span>;
148 }
149 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">10</span>]);
150
151 <span class="kw">let </span>y: <span class="kw-2">&amp;mut </span>[i32] = <span class="kw-2">&amp;mut </span>[];
152 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, y.last_mut());</code></pre></div>
153 </div></details><details class="toggle method-toggle" open><summary><section id="method.first_chunk" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#327">Source</a></span><h4 class="code-header">pub fn <a href="#method.first_chunk" class="fn">first_chunk</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section></summary><div class="docblock"><p>Returns an array reference to the first <code>N</code> items in the slice.</p>
154 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
155 <h5 id="examples-14"><a class="doc-anchor" href="#examples-14">§</a>Examples</h5>
156 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>u = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
157 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>]), u.first_chunk::&lt;<span class="number">2</span>&gt;());
158
159 <span class="kw">let </span>v: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[<span class="number">10</span>];
160 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.first_chunk::&lt;<span class="number">2</span>&gt;());
161
162 <span class="kw">let </span>w: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[];
163 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[]), w.first_chunk::&lt;<span class="number">0</span>&gt;());</code></pre></div>
164 </div></details><details class="toggle method-toggle" open><summary><section id="method.first_chunk_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#357">Source</a></span><h4 class="code-header">pub fn <a href="#method.first_chunk_mut" class="fn">first_chunk_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the first <code>N</code> items in the slice.</p>
165 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
166 <h5 id="examples-15"><a class="doc-anchor" href="#examples-15">§</a>Examples</h5>
167 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
168
169 <span class="kw">if let </span><span class="prelude-val">Some</span>(first) = x.first_chunk_mut::&lt;<span class="number">2</span>&gt;() {
170 first[<span class="number">0</span>] = <span class="number">5</span>;
171 first[<span class="number">1</span>] = <span class="number">4</span>;
172 }
173 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">5</span>, <span class="number">4</span>, <span class="number">2</span>]);
174
175 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.first_chunk_mut::&lt;<span class="number">4</span>&gt;());</code></pre></div>
176 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_first_chunk" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#387">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_first_chunk" class="fn">split_first_chunk</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns an array reference to the first <code>N</code> items in the slice and the remaining slice.</p>
177 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
178 <h5 id="examples-16"><a class="doc-anchor" href="#examples-16">§</a>Examples</h5>
179 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
180
181 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_chunk::&lt;<span class="number">2</span>&gt;() {
182 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>]);
183 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&amp;</span>[<span class="number">2</span>]);
184 }
185
186 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_first_chunk::&lt;<span class="number">4</span>&gt;());</code></pre></div>
187 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_first_chunk_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#422-424">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_first_chunk_mut" class="fn">split_first_chunk_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
188 &amp;mut self,
189 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the first <code>N</code> items in the slice and the remaining
190 slice.</p>
191 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
192 <h5 id="examples-17"><a class="doc-anchor" href="#examples-17">§</a>Examples</h5>
193 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
194
195 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_chunk_mut::&lt;<span class="number">2</span>&gt;() {
196 first[<span class="number">0</span>] = <span class="number">3</span>;
197 first[<span class="number">1</span>] = <span class="number">4</span>;
198 elements[<span class="number">0</span>] = <span class="number">5</span>;
199 }
200 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);
201
202 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_first_chunk_mut::&lt;<span class="number">4</span>&gt;());</code></pre></div>
203 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_last_chunk" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#457">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_last_chunk" class="fn">split_last_chunk</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns an array reference to the last <code>N</code> items in the slice and the remaining slice.</p>
204 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
205 <h5 id="examples-18"><a class="doc-anchor" href="#examples-18">§</a>Examples</h5>
206 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
207
208 <span class="kw">if let </span><span class="prelude-val">Some</span>((elements, last)) = x.split_last_chunk::&lt;<span class="number">2</span>&gt;() {
209 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&amp;</span>[<span class="number">0</span>]);
210 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>]);
211 }
212
213 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_last_chunk::&lt;<span class="number">4</span>&gt;());</code></pre></div>
214 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_last_chunk_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#492-494">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_last_chunk_mut" class="fn">split_last_chunk_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
215 &amp;mut self,
216 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>)&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the last <code>N</code> items in the slice and the remaining
217 slice.</p>
218 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
219 <h5 id="examples-19"><a class="doc-anchor" href="#examples-19">§</a>Examples</h5>
220 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
221
222 <span class="kw">if let </span><span class="prelude-val">Some</span>((elements, last)) = x.split_last_chunk_mut::&lt;<span class="number">2</span>&gt;() {
223 last[<span class="number">0</span>] = <span class="number">3</span>;
224 last[<span class="number">1</span>] = <span class="number">4</span>;
225 elements[<span class="number">0</span>] = <span class="number">5</span>;
226 }
227 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">5</span>, <span class="number">3</span>, <span class="number">4</span>]);
228
229 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_last_chunk_mut::&lt;<span class="number">4</span>&gt;());</code></pre></div>
230 </div></details><details class="toggle method-toggle" open><summary><section id="method.last_chunk" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#527">Source</a></span><h4 class="code-header">pub fn <a href="#method.last_chunk" class="fn">last_chunk</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section></summary><div class="docblock"><p>Returns an array reference to the last <code>N</code> items in the slice.</p>
231 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
232 <h5 id="examples-20"><a class="doc-anchor" href="#examples-20">§</a>Examples</h5>
233 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>u = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
234 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">40</span>, <span class="number">30</span>]), u.last_chunk::&lt;<span class="number">2</span>&gt;());
235
236 <span class="kw">let </span>v: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[<span class="number">10</span>];
237 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.last_chunk::&lt;<span class="number">2</span>&gt;());
238
239 <span class="kw">let </span>w: <span class="kw-2">&amp;</span>[i32] = <span class="kw-2">&amp;</span>[];
240 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[]), w.last_chunk::&lt;<span class="number">0</span>&gt;());</code></pre></div>
241 </div></details><details class="toggle method-toggle" open><summary><section id="method.last_chunk_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#561">Source</a></span><h4 class="code-header">pub fn <a href="#method.last_chunk_mut" class="fn">last_chunk_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the last <code>N</code> items in the slice.</p>
242 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
243 <h5 id="examples-21"><a class="doc-anchor" href="#examples-21">§</a>Examples</h5>
244 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
245
246 <span class="kw">if let </span><span class="prelude-val">Some</span>(last) = x.last_chunk_mut::&lt;<span class="number">2</span>&gt;() {
247 last[<span class="number">0</span>] = <span class="number">10</span>;
248 last[<span class="number">1</span>] = <span class="number">20</span>;
249 }
250 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">10</span>, <span class="number">20</span>]);
251
252 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.last_chunk_mut::&lt;<span class="number">4</span>&gt;());</code></pre></div>
253 </div></details><details class="toggle method-toggle" open><summary><section id="method.get" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#596-598">Source</a></span><h4 class="code-header">pub fn <a href="#method.get" class="fn">get</a>&lt;I&gt;(&amp;self, index: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;&lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a>&gt;<div class="where">where
254 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Returns a reference to an element or subslice depending on the type of
255 index.</p>
256 <ul>
257 <li>If given a position, returns a reference to the element at that
258 position or <code>None</code> if out of bounds.</li>
259 <li>If given a range, returns the subslice corresponding to that range,
260 or <code>None</code> if out of bounds.</li>
261 </ul>
262 <h5 id="examples-22"><a class="doc-anchor" href="#examples-22">§</a>Examples</h5>
263 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
264 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">40</span>), v.get(<span class="number">1</span>));
265 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>][..]), v.get(<span class="number">0</span>..<span class="number">2</span>));
266 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.get(<span class="number">3</span>));
267 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.get(<span class="number">0</span>..<span class="number">4</span>));</code></pre></div>
268 </div></details><details class="toggle method-toggle" open><summary><section id="method.get_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#621-623">Source</a></span><h4 class="code-header">pub fn <a href="#method.get_mut" class="fn">get_mut</a>&lt;I&gt;(
269 &amp;mut self,
270 index: I,
271 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut &lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a>&gt;<div class="where">where
272 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Returns a mutable reference to an element or subslice depending on the
273 type of index (see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.get" title="method slice::get"><code>get</code></a>) or <code>None</code> if the index is out of bounds.</p>
274 <h5 id="examples-23"><a class="doc-anchor" href="#examples-23">§</a>Examples</h5>
275 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
276
277 <span class="kw">if let </span><span class="prelude-val">Some</span>(elem) = x.get_mut(<span class="number">1</span>) {
278 <span class="kw-2">*</span>elem = <span class="number">42</span>;
279 }
280 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">42</span>, <span class="number">2</span>]);</code></pre></div>
281 </div></details><details class="toggle method-toggle" open><summary><section id="method.get_unchecked" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#658-660">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.get_unchecked" class="fn">get_unchecked</a>&lt;I&gt;(
282 &amp;self,
283 index: I,
284 ) -&gt; &amp;&lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a><div class="where">where
285 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Returns a reference to an element or subslice, without doing bounds
286 checking.</p>
287 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.get" title="method slice::get"><code>get</code></a>.</p>
288 <h5 id="safety-1"><a class="doc-anchor" href="#safety-1">§</a>Safety</h5>
289 <p>Calling this method with an out-of-bounds index is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>
290 even if the resulting reference is not used.</p>
291 <p>You can think of this like <code>.get(index).unwrap_unchecked()</code>. It’s UB
292 to call <code>.get_unchecked(len)</code>, even if you immediately convert to a
293 pointer. And it’s UB to call <code>.get_unchecked(..len + 1)</code>,
294 <code>.get_unchecked(..=len)</code>, or similar.</p>
295 <h5 id="examples-24"><a class="doc-anchor" href="#examples-24">§</a>Examples</h5>
296 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
297
298 <span class="kw">unsafe </span>{
299 <span class="macro">assert_eq!</span>(x.get_unchecked(<span class="number">1</span>), <span class="kw-2">&amp;</span><span class="number">2</span>);
300 }</code></pre></div>
301 </div></details><details class="toggle method-toggle" open><summary><section id="method.get_unchecked_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#700-702">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.get_unchecked_mut" class="fn">get_unchecked_mut</a>&lt;I&gt;(
302 &amp;mut self,
303 index: I,
304 ) -&gt; &amp;mut &lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a><div class="where">where
305 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Returns a mutable reference to an element or subslice, without doing
306 bounds checking.</p>
307 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.get_mut" title="method slice::get_mut"><code>get_mut</code></a>.</p>
308 <h5 id="safety-2"><a class="doc-anchor" href="#safety-2">§</a>Safety</h5>
309 <p>Calling this method with an out-of-bounds index is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>
310 even if the resulting reference is not used.</p>
311 <p>You can think of this like <code>.get_mut(index).unwrap_unchecked()</code>. It’s
312 UB to call <code>.get_unchecked_mut(len)</code>, even if you immediately convert
313 to a pointer. And it’s UB to call <code>.get_unchecked_mut(..len + 1)</code>,
314 <code>.get_unchecked_mut(..=len)</code>, or similar.</p>
315 <h5 id="examples-25"><a class="doc-anchor" href="#examples-25">§</a>Examples</h5>
316 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
317
318 <span class="kw">unsafe </span>{
319 <span class="kw">let </span>elem = x.get_unchecked_mut(<span class="number">1</span>);
320 <span class="kw-2">*</span>elem = <span class="number">13</span>;
321 }
322 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">13</span>, <span class="number">4</span>]);</code></pre></div>
323 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_ptr" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#742">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_ptr" class="fn">as_ptr</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a></h4></section></summary><div class="docblock"><p>Returns a raw pointer to the slice’s buffer.</p>
324 <p>The caller must ensure that the slice outlives the pointer this
325 function returns, or else it will end up dangling.</p>
326 <p>The caller must also ensure that the memory the pointer (non-transitively) points to
327 is never written to (except inside an <code>UnsafeCell</code>) using this pointer or any pointer
328 derived from it. If you need to mutate the contents of the slice, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_mut_ptr" title="method slice::as_mut_ptr"><code>as_mut_ptr</code></a>.</p>
329 <p>Modifying the container referenced by this slice may cause its buffer
330 to be reallocated, which would also make any pointers to it invalid.</p>
331 <h5 id="examples-26"><a class="doc-anchor" href="#examples-26">§</a>Examples</h5>
332 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
333 <span class="kw">let </span>x_ptr = x.as_ptr();
334
335 <span class="kw">unsafe </span>{
336 <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..x.len() {
337 <span class="macro">assert_eq!</span>(x.get_unchecked(i), <span class="kw-2">&amp;*</span>x_ptr.add(i));
338 }
339 }</code></pre></div>
340 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_mut_ptr" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#773">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_mut_ptr" class="fn">as_mut_ptr</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut T</a></h4></section></summary><div class="docblock"><p>Returns an unsafe mutable pointer to the slice’s buffer.</p>
341 <p>The caller must ensure that the slice outlives the pointer this
342 function returns, or else it will end up dangling.</p>
343 <p>Modifying the container referenced by this slice may cause its buffer
344 to be reallocated, which would also make any pointers to it invalid.</p>
345 <h5 id="examples-27"><a class="doc-anchor" href="#examples-27">§</a>Examples</h5>
346 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
347 <span class="kw">let </span>x_ptr = x.as_mut_ptr();
348
349 <span class="kw">unsafe </span>{
350 <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..x.len() {
351 <span class="kw-2">*</span>x_ptr.add(i) += <span class="number">2</span>;
352 }
353 }
354 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">6</span>]);</code></pre></div>
355 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_ptr_range" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.48.0">1.48.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#809">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_ptr_range" class="fn">as_ptr_range</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a>&gt; <a href="#" class="tooltip" data-notable-ty="Range&lt;*const T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns the two raw pointers spanning the slice.</p>
356 <p>The returned range is half-open, which means that the end pointer
357 points <em>one past</em> the last element of the slice. This way, an empty
358 slice is represented by two equal pointers, and the difference between
359 the two pointers represents the size of the slice.</p>
360 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_ptr" title="method slice::as_ptr"><code>as_ptr</code></a> for warnings on using these pointers. The end pointer
361 requires extra caution, as it does not point to a valid element in the
362 slice.</p>
363 <p>This function is useful for interacting with foreign interfaces which
364 use two pointers to refer to a range of elements in memory, as is
365 common in C++.</p>
366 <p>It can also be useful to check if a pointer to an element refers to an
367 element of this slice:</p>
368
369 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
370 <span class="kw">let </span>x = <span class="kw-2">&amp;</span>a[<span class="number">1</span>] <span class="kw">as </span><span class="kw-2">*const </span><span class="kw">_</span>;
371 <span class="kw">let </span>y = <span class="kw-2">&amp;</span><span class="number">5 </span><span class="kw">as </span><span class="kw-2">*const </span><span class="kw">_</span>;
372
373 <span class="macro">assert!</span>(a.as_ptr_range().contains(<span class="kw-2">&amp;</span>x));
374 <span class="macro">assert!</span>(!a.as_ptr_range().contains(<span class="kw-2">&amp;</span>y));</code></pre></div>
375 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_mut_ptr_range" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.48.0">1.48.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#852">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_mut_ptr_range" class="fn">as_mut_ptr_range</a>(&amp;mut self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut T</a>&gt; <a href="#" class="tooltip" data-notable-ty="Range&lt;*mut T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns the two unsafe mutable pointers spanning the slice.</p>
376 <p>The returned range is half-open, which means that the end pointer
377 points <em>one past</em> the last element of the slice. This way, an empty
378 slice is represented by two equal pointers, and the difference between
379 the two pointers represents the size of the slice.</p>
380 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_mut_ptr" title="method slice::as_mut_ptr"><code>as_mut_ptr</code></a> for warnings on using these pointers. The end
381 pointer requires extra caution, as it does not point to a valid element
382 in the slice.</p>
383 <p>This function is useful for interacting with foreign interfaces which
384 use two pointers to refer to a range of elements in memory, as is
385 common in C++.</p>
386 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_array" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#865">Source</a><h4 class="code-header">pub fn <a href="#method.as_array" class="fn">as_array</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_array</code>)</span></div></span></summary><div class="docblock"><p>Gets a reference to the underlying array.</p>
387 <p>If <code>N</code> is not exactly equal to the length of <code>self</code>, then this method returns <code>None</code>.</p>
388 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_mut_array" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#883">Source</a><h4 class="code-header">pub fn <a href="#method.as_mut_array" class="fn">as_mut_array</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_array</code>)</span></div></span></summary><div class="docblock"><p>Gets a mutable reference to the slice’s underlying array.</p>
389 <p>If <code>N</code> is not exactly equal to the length of <code>self</code>, then this method returns <code>None</code>.</p>
390 </div></details><details class="toggle method-toggle" open><summary><section id="method.swap" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#919">Source</a></span><h4 class="code-header">pub fn <a href="#method.swap" class="fn">swap</a>(&amp;mut self, a: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, b: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Swaps two elements in the slice.</p>
391 <p>If <code>a</code> equals to <code>b</code>, it’s guaranteed that elements won’t change value.</p>
392 <h5 id="arguments"><a class="doc-anchor" href="#arguments">§</a>Arguments</h5>
393 <ul>
394 <li>a - The index of the first element</li>
395 <li>b - The index of the second element</li>
396 </ul>
397 <h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
398 <p>Panics if <code>a</code> or <code>b</code> are out of bounds.</p>
399 <h5 id="examples-28"><a class="doc-anchor" href="#examples-28">§</a>Examples</h5>
400 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>, <span class="string">"d"</span>, <span class="string">"e"</span>];
401 v.swap(<span class="number">2</span>, <span class="number">4</span>);
402 <span class="macro">assert!</span>(v == [<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"e"</span>, <span class="string">"d"</span>, <span class="string">"c"</span>]);</code></pre></div>
403 </div></details><details class="toggle method-toggle" open><summary><section id="method.swap_unchecked" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#962">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.swap_unchecked" class="fn">swap_unchecked</a>(&amp;mut self, a: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, b: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_swap_unchecked</code>)</span></div></span></summary><div class="docblock"><p>Swaps two elements in the slice, without doing bounds checking.</p>
404 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.swap" title="method slice::swap"><code>swap</code></a>.</p>
405 <h5 id="arguments-1"><a class="doc-anchor" href="#arguments-1">§</a>Arguments</h5>
406 <ul>
407 <li>a - The index of the first element</li>
408 <li>b - The index of the second element</li>
409 </ul>
410 <h5 id="safety-3"><a class="doc-anchor" href="#safety-3">§</a>Safety</h5>
411 <p>Calling this method with an out-of-bounds index is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>.
412 The caller has to ensure that <code>a &lt; self.len()</code> and <code>b &lt; self.len()</code>.</p>
413 <h5 id="examples-29"><a class="doc-anchor" href="#examples-29">§</a>Examples</h5>
414 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_swap_unchecked)]
415
416 </span><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>, <span class="string">"d"</span>];
417 <span class="comment">// SAFETY: we know that 1 and 3 are both indices of the slice
418 </span><span class="kw">unsafe </span>{ v.swap_unchecked(<span class="number">1</span>, <span class="number">3</span>) };
419 <span class="macro">assert!</span>(v == [<span class="string">"a"</span>, <span class="string">"d"</span>, <span class="string">"c"</span>, <span class="string">"b"</span>]);</code></pre></div>
420 </div></details><details class="toggle method-toggle" open><summary><section id="method.reverse" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#991">Source</a></span><h4 class="code-header">pub fn <a href="#method.reverse" class="fn">reverse</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Reverses the order of elements in the slice, in place.</p>
421 <h5 id="examples-30"><a class="doc-anchor" href="#examples-30">§</a>Examples</h5>
422 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
423 v.reverse();
424 <span class="macro">assert!</span>(v == [<span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>]);</code></pre></div>
425 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1050">Source</a></span><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Iter.html" title="struct core::slice::iter::Iter">Iter</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="Iter&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over the slice.</p>
426 <p>The iterator yields all items from start to end.</p>
427 <h5 id="examples-31"><a class="doc-anchor" href="#examples-31">§</a>Examples</h5>
428 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
429 <span class="kw">let </span><span class="kw-2">mut </span>iterator = x.iter();
430
431 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">1</span>));
432 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">2</span>));
433 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">4</span>));
434 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">None</span>);</code></pre></div>
435 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1069">Source</a></span><h4 class="code-header">pub fn <a href="#method.iter_mut" class="fn">iter_mut</a>(&amp;mut self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.IterMut.html" title="struct core::slice::iter::IterMut">IterMut</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="IterMut&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator that allows modifying each value.</p>
436 <p>The iterator yields all items from start to end.</p>
437 <h5 id="examples-32"><a class="doc-anchor" href="#examples-32">§</a>Examples</h5>
438 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
439 <span class="kw">for </span>elem <span class="kw">in </span>x.iter_mut() {
440 <span class="kw-2">*</span>elem += <span class="number">2</span>;
441 }
442 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">6</span>]);</code></pre></div>
443 </div></details><details class="toggle method-toggle" open><summary><section id="method.windows" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1118">Source</a></span><h4 class="code-header">pub fn <a href="#method.windows" class="fn">windows</a>(&amp;self, size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Windows.html" title="struct core::slice::iter::Windows">Windows</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="Windows&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over all contiguous windows of length
444 <code>size</code>. The windows overlap. If the slice is shorter than
445 <code>size</code>, the iterator returns no values.</p>
446 <h5 id="panics-1"><a class="doc-anchor" href="#panics-1">§</a>Panics</h5>
447 <p>Panics if <code>size</code> is zero.</p>
448 <h5 id="examples-33"><a class="doc-anchor" href="#examples-33">§</a>Examples</h5>
449 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
450 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.windows(<span class="number">3</span>);
451 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>]);
452 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>]);
453 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>]);
454 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
455 <p>If the slice is shorter than <code>size</code>:</p>
456
457 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'f'</span>, <span class="string">'o'</span>, <span class="string">'o'</span>];
458 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.windows(<span class="number">4</span>);
459 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
460 <p>There’s no <code>windows_mut</code>, as that existing would let safe code violate the
461 “only one <code>&amp;mut</code> at a time to the same thing” rule. However, you can sometimes
462 use <a href="https://doc.rust-lang.org/nightly/core/cell/struct.Cell.html#method.as_slice_of_cells" title="method core::cell::Cell::as_slice_of_cells"><code>Cell::as_slice_of_cells</code></a> in
463 conjunction with <code>windows</code> to accomplish something similar:</p>
464
465 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::cell::Cell;
466
467 <span class="kw">let </span><span class="kw-2">mut </span>array = [<span class="string">'R'</span>, <span class="string">'u'</span>, <span class="string">'s'</span>, <span class="string">'t'</span>, <span class="string">' '</span>, <span class="string">'2'</span>, <span class="string">'0'</span>, <span class="string">'1'</span>, <span class="string">'5'</span>];
468 <span class="kw">let </span>slice = <span class="kw-2">&amp;mut </span>array[..];
469 <span class="kw">let </span>slice_of_cells: <span class="kw-2">&amp;</span>[Cell&lt;char&gt;] = Cell::from_mut(slice).as_slice_of_cells();
470 <span class="kw">for </span>w <span class="kw">in </span>slice_of_cells.windows(<span class="number">3</span>) {
471 Cell::swap(<span class="kw-2">&amp;</span>w[<span class="number">0</span>], <span class="kw-2">&amp;</span>w[<span class="number">2</span>]);
472 }
473 <span class="macro">assert_eq!</span>(array, [<span class="string">'s'</span>, <span class="string">'t'</span>, <span class="string">' '</span>, <span class="string">'2'</span>, <span class="string">'0'</span>, <span class="string">'1'</span>, <span class="string">'5'</span>, <span class="string">'u'</span>, <span class="string">'R'</span>]);</code></pre></div>
474 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunks" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1153">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks" class="fn">chunks</a>(&amp;self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Chunks.html" title="struct core::slice::iter::Chunks">Chunks</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="Chunks&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the
475 beginning of the slice.</p>
476 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
477 slice, then the last chunk will not have length <code>chunk_size</code>.</p>
478 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact" title="method slice::chunks_exact"><code>chunks_exact</code></a> for a variant of this iterator that returns chunks of always exactly
479 <code>chunk_size</code> elements, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks" title="method slice::rchunks"><code>rchunks</code></a> for the same iterator but starting at the end of the
480 slice.</p>
481 <h5 id="panics-2"><a class="doc-anchor" href="#panics-2">§</a>Panics</h5>
482 <p>Panics if <code>chunk_size</code> is zero.</p>
483 <h5 id="examples-34"><a class="doc-anchor" href="#examples-34">§</a>Examples</h5>
484 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
485 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunks(<span class="number">2</span>);
486 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
487 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
488 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'m'</span>]);
489 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
490 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunks_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1192">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_mut" class="fn">chunks_mut</a>(&amp;mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksMut.html" title="struct core::slice::iter::ChunksMut">ChunksMut</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="ChunksMut&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the
491 beginning of the slice.</p>
492 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
493 length of the slice, then the last chunk will not have length <code>chunk_size</code>.</p>
494 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact_mut" title="method slice::chunks_exact_mut"><code>chunks_exact_mut</code></a> for a variant of this iterator that returns chunks of always
495 exactly <code>chunk_size</code> elements, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_mut" title="method slice::rchunks_mut"><code>rchunks_mut</code></a> for the same iterator but starting at
496 the end of the slice.</p>
497 <h5 id="panics-3"><a class="doc-anchor" href="#panics-3">§</a>Panics</h5>
498 <p>Panics if <code>chunk_size</code> is zero.</p>
499 <h5 id="examples-35"><a class="doc-anchor" href="#examples-35">§</a>Examples</h5>
500 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
501 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
502
503 <span class="kw">for </span>chunk <span class="kw">in </span>v.chunks_mut(<span class="number">2</span>) {
504 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
505 <span class="kw-2">*</span>elem += count;
506 }
507 count += <span class="number">1</span>;
508 }
509 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">3</span>]);</code></pre></div>
510 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunks_exact" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1230">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_exact" class="fn">chunks_exact</a>(&amp;self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExact.html" title="struct core::slice::iter::ChunksExact">ChunksExact</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="ChunksExact&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the
511 beginning of the slice.</p>
512 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
513 slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be retrieved
514 from the <code>remainder</code> function of the iterator.</p>
515 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
516 resulting code better than in the case of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks" title="method slice::chunks"><code>chunks</code></a>.</p>
517 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks" title="method slice::chunks"><code>chunks</code></a> for a variant of this iterator that also returns the remainder as a smaller
518 chunk, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_exact" title="method slice::rchunks_exact"><code>rchunks_exact</code></a> for the same iterator but starting at the end of the slice.</p>
519 <h5 id="panics-4"><a class="doc-anchor" href="#panics-4">§</a>Panics</h5>
520 <p>Panics if <code>chunk_size</code> is zero.</p>
521 <h5 id="examples-36"><a class="doc-anchor" href="#examples-36">§</a>Examples</h5>
522 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
523 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunks_exact(<span class="number">2</span>);
524 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
525 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
526 <span class="macro">assert!</span>(iter.next().is_none());
527 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&amp;</span>[<span class="string">'m'</span>]);</code></pre></div>
528 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunks_exact_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1273">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_exact_mut" class="fn">chunks_exact_mut</a>(&amp;mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExactMut.html" title="struct core::slice::iter::ChunksExactMut">ChunksExactMut</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="ChunksExactMut&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the
529 beginning of the slice.</p>
530 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
531 length of the slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be
532 retrieved from the <code>into_remainder</code> function of the iterator.</p>
533 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
534 resulting code better than in the case of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_mut" title="method slice::chunks_mut"><code>chunks_mut</code></a>.</p>
535 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_mut" title="method slice::chunks_mut"><code>chunks_mut</code></a> for a variant of this iterator that also returns the remainder as a
536 smaller chunk, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_exact_mut" title="method slice::rchunks_exact_mut"><code>rchunks_exact_mut</code></a> for the same iterator but starting at the end of
537 the slice.</p>
538 <h5 id="panics-5"><a class="doc-anchor" href="#panics-5">§</a>Panics</h5>
539 <p>Panics if <code>chunk_size</code> is zero.</p>
540 <h5 id="examples-37"><a class="doc-anchor" href="#examples-37">§</a>Examples</h5>
541 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
542 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
543
544 <span class="kw">for </span>chunk <span class="kw">in </span>v.chunks_exact_mut(<span class="number">2</span>) {
545 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
546 <span class="kw-2">*</span>elem += count;
547 }
548 count += <span class="number">1</span>;
549 }
550 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">0</span>]);</code></pre></div>
551 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_chunks_unchecked" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1309">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_chunks_unchecked" class="fn">as_chunks_unchecked</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>]</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
552 assuming that there’s no remainder.</p>
553 <h5 id="safety-4"><a class="doc-anchor" href="#safety-4">§</a>Safety</h5>
554 <p>This may only be called when</p>
555 <ul>
556 <li>The slice splits exactly into <code>N</code>-element chunks (aka <code>self.len() % N == 0</code>).</li>
557 <li><code>N != 0</code>.</li>
558 </ul>
559 <h5 id="examples-38"><a class="doc-anchor" href="#examples-38">§</a>Examples</h5>
560 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
561 </span><span class="kw">let </span>slice: <span class="kw-2">&amp;</span>[char] = <span class="kw-2">&amp;</span>[<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>, <span class="string">'!'</span>];
562 <span class="kw">let </span>chunks: <span class="kw-2">&amp;</span>[[char; <span class="number">1</span>]] =
563 <span class="comment">// SAFETY: 1-element chunks never have remainder
564 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked() };
565 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'l'</span>], [<span class="string">'o'</span>], [<span class="string">'r'</span>], [<span class="string">'e'</span>], [<span class="string">'m'</span>], [<span class="string">'!'</span>]]);
566 <span class="kw">let </span>chunks: <span class="kw-2">&amp;</span>[[char; <span class="number">3</span>]] =
567 <span class="comment">// SAFETY: The slice length (6) is a multiple of 3
568 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked() };
569 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>], [<span class="string">'e'</span>, <span class="string">'m'</span>, <span class="string">'!'</span>]]);
570
571 <span class="comment">// These would be unsound:
572 // let chunks: &amp;[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
573 // let chunks: &amp;[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed</span></code></pre></div>
574 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_chunks" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1356">Source</a><h4 class="code-header">pub fn <a href="#method.as_chunks" class="fn">as_chunks</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; (&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>], &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
575 starting at the beginning of the slice,
576 and a remainder slice with length strictly less than <code>N</code>.</p>
577 <h5 id="panics-6"><a class="doc-anchor" href="#panics-6">§</a>Panics</h5>
578 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
579 error before this method gets stabilized.</p>
580 <h5 id="examples-39"><a class="doc-anchor" href="#examples-39">§</a>Examples</h5>
581 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
582 </span><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
583 <span class="kw">let </span>(chunks, remainder) = slice.as_chunks();
584 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'l'</span>, <span class="string">'o'</span>], [<span class="string">'r'</span>, <span class="string">'e'</span>]]);
585 <span class="macro">assert_eq!</span>(remainder, <span class="kw-2">&amp;</span>[<span class="string">'m'</span>]);</code></pre></div>
586 <p>If you expect the slice to be an exact multiple, you can combine
587 <code>let</code>-<code>else</code> with an empty slice pattern:</p>
588
589 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
590 </span><span class="kw">let </span>slice = [<span class="string">'R'</span>, <span class="string">'u'</span>, <span class="string">'s'</span>, <span class="string">'t'</span>];
591 <span class="kw">let </span>(chunks, []) = slice.as_chunks::&lt;<span class="number">2</span>&gt;() <span class="kw">else </span>{
592 <span class="macro">panic!</span>(<span class="string">"slice didn't have even length"</span>)
593 };
594 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'R'</span>, <span class="string">'u'</span>], [<span class="string">'s'</span>, <span class="string">'t'</span>]]);</code></pre></div>
595 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_rchunks" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1391">Source</a><h4 class="code-header">pub fn <a href="#method.as_rchunks" class="fn">as_rchunks</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; (&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>])</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
596 starting at the end of the slice,
597 and a remainder slice with length strictly less than <code>N</code>.</p>
598 <h5 id="panics-7"><a class="doc-anchor" href="#panics-7">§</a>Panics</h5>
599 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
600 error before this method gets stabilized.</p>
601 <h5 id="examples-40"><a class="doc-anchor" href="#examples-40">§</a>Examples</h5>
602 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
603 </span><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
604 <span class="kw">let </span>(remainder, chunks) = slice.as_rchunks();
605 <span class="macro">assert_eq!</span>(remainder, <span class="kw-2">&amp;</span>[<span class="string">'l'</span>]);
606 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'o'</span>, <span class="string">'r'</span>], [<span class="string">'e'</span>, <span class="string">'m'</span>]]);</code></pre></div>
607 </div></details><details class="toggle method-toggle" open><summary><section id="method.array_chunks" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1431">Source</a><h4 class="code-header">pub fn <a href="#method.array_chunks" class="fn">array_chunks</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunks.html" title="struct core::slice::iter::ArrayChunks">ArrayChunks</a>&lt;'_, T, N&gt; <a href="#" class="tooltip" data-notable-ty="ArrayChunks&lt;&#39;_, T, N&gt;">ⓘ</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>array_chunks</code>)</span></div></span></summary><div class="docblock"><p>Returns an iterator over <code>N</code> elements of the slice at a time, starting at the
608 beginning of the slice.</p>
609 <p>The chunks are array references and do not overlap. If <code>N</code> does not divide the
610 length of the slice, then the last up to <code>N-1</code> elements will be omitted and can be
611 retrieved from the <code>remainder</code> function of the iterator.</p>
612 <p>This method is the const generic equivalent of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact" title="method slice::chunks_exact"><code>chunks_exact</code></a>.</p>
613 <h5 id="panics-8"><a class="doc-anchor" href="#panics-8">§</a>Panics</h5>
614 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
615 error before this method gets stabilized.</p>
616 <h5 id="examples-41"><a class="doc-anchor" href="#examples-41">§</a>Examples</h5>
617 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_chunks)]
618 </span><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
619 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.array_chunks();
620 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
621 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
622 <span class="macro">assert!</span>(iter.next().is_none());
623 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&amp;</span>[<span class="string">'m'</span>]);</code></pre></div>
624 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_chunks_unchecked_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1469">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_chunks_unchecked_mut" class="fn">as_chunks_unchecked_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
625 &amp;mut self,
626 ) -&gt; &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>]</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
627 assuming that there’s no remainder.</p>
628 <h5 id="safety-5"><a class="doc-anchor" href="#safety-5">§</a>Safety</h5>
629 <p>This may only be called when</p>
630 <ul>
631 <li>The slice splits exactly into <code>N</code>-element chunks (aka <code>self.len() % N == 0</code>).</li>
632 <li><code>N != 0</code>.</li>
633 </ul>
634 <h5 id="examples-42"><a class="doc-anchor" href="#examples-42">§</a>Examples</h5>
635 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
636 </span><span class="kw">let </span>slice: <span class="kw-2">&amp;mut </span>[char] = <span class="kw-2">&amp;mut </span>[<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>, <span class="string">'!'</span>];
637 <span class="kw">let </span>chunks: <span class="kw-2">&amp;mut </span>[[char; <span class="number">1</span>]] =
638 <span class="comment">// SAFETY: 1-element chunks never have remainder
639 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked_mut() };
640 chunks[<span class="number">0</span>] = [<span class="string">'L'</span>];
641 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&amp;</span>[[<span class="string">'L'</span>], [<span class="string">'o'</span>], [<span class="string">'r'</span>], [<span class="string">'e'</span>], [<span class="string">'m'</span>], [<span class="string">'!'</span>]]);
642 <span class="kw">let </span>chunks: <span class="kw-2">&amp;mut </span>[[char; <span class="number">3</span>]] =
643 <span class="comment">// SAFETY: The slice length (6) is a multiple of 3
644 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked_mut() };
645 chunks[<span class="number">1</span>] = [<span class="string">'a'</span>, <span class="string">'x'</span>, <span class="string">'?'</span>];
646 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'L'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'a'</span>, <span class="string">'x'</span>, <span class="string">'?'</span>]);
647
648 <span class="comment">// These would be unsound:
649 // let chunks: &amp;[[_; 5]] = slice.as_chunks_unchecked_mut() // The slice length is not a multiple of 5
650 // let chunks: &amp;[[_; 0]] = slice.as_chunks_unchecked_mut() // Zero-length chunks are never allowed</span></code></pre></div>
651 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_chunks_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1511">Source</a><h4 class="code-header">pub fn <a href="#method.as_chunks_mut" class="fn">as_chunks_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; (&amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>], &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
652 starting at the beginning of the slice,
653 and a remainder slice with length strictly less than <code>N</code>.</p>
654 <h5 id="panics-9"><a class="doc-anchor" href="#panics-9">§</a>Panics</h5>
655 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
656 error before this method gets stabilized.</p>
657 <h5 id="examples-43"><a class="doc-anchor" href="#examples-43">§</a>Examples</h5>
658 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
659 </span><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
660 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
661
662 <span class="kw">let </span>(chunks, remainder) = v.as_chunks_mut();
663 remainder[<span class="number">0</span>] = <span class="number">9</span>;
664 <span class="kw">for </span>chunk <span class="kw">in </span>chunks {
665 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
666 count += <span class="number">1</span>;
667 }
668 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">9</span>]);</code></pre></div>
669 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_rchunks_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1552">Source</a><h4 class="code-header">pub fn <a href="#method.as_rchunks_mut" class="fn">as_rchunks_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>])</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_as_chunks</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice into a slice of <code>N</code>-element arrays,
670 starting at the end of the slice,
671 and a remainder slice with length strictly less than <code>N</code>.</p>
672 <h5 id="panics-10"><a class="doc-anchor" href="#panics-10">§</a>Panics</h5>
673 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
674 error before this method gets stabilized.</p>
675 <h5 id="examples-44"><a class="doc-anchor" href="#examples-44">§</a>Examples</h5>
676 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
677 </span><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
678 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
679
680 <span class="kw">let </span>(remainder, chunks) = v.as_rchunks_mut();
681 remainder[<span class="number">0</span>] = <span class="number">9</span>;
682 <span class="kw">for </span>chunk <span class="kw">in </span>chunks {
683 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
684 count += <span class="number">1</span>;
685 }
686 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">9</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>]);</code></pre></div>
687 </div></details><details class="toggle method-toggle" open><summary><section id="method.array_chunks_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1594">Source</a><h4 class="code-header">pub fn <a href="#method.array_chunks_mut" class="fn">array_chunks_mut</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;mut self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunksMut.html" title="struct core::slice::iter::ArrayChunksMut">ArrayChunksMut</a>&lt;'_, T, N&gt; <a href="#" class="tooltip" data-notable-ty="ArrayChunksMut&lt;&#39;_, T, N&gt;">ⓘ</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>array_chunks</code>)</span></div></span></summary><div class="docblock"><p>Returns an iterator over <code>N</code> elements of the slice at a time, starting at the
688 beginning of the slice.</p>
689 <p>The chunks are mutable array references and do not overlap. If <code>N</code> does not divide
690 the length of the slice, then the last up to <code>N-1</code> elements will be omitted and
691 can be retrieved from the <code>into_remainder</code> function of the iterator.</p>
692 <p>This method is the const generic equivalent of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact_mut" title="method slice::chunks_exact_mut"><code>chunks_exact_mut</code></a>.</p>
693 <h5 id="panics-11"><a class="doc-anchor" href="#panics-11">§</a>Panics</h5>
694 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
695 error before this method gets stabilized.</p>
696 <h5 id="examples-45"><a class="doc-anchor" href="#examples-45">§</a>Examples</h5>
697 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_chunks)]
698 </span><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
699 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
700
701 <span class="kw">for </span>chunk <span class="kw">in </span>v.array_chunks_mut() {
702 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
703 count += <span class="number">1</span>;
704 }
705 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">0</span>]);</code></pre></div>
706 </div></details><details class="toggle method-toggle" open><summary><section id="method.array_windows" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1627">Source</a><h4 class="code-header">pub fn <a href="#method.array_windows" class="fn">array_windows</a>&lt;const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayWindows.html" title="struct core::slice::iter::ArrayWindows">ArrayWindows</a>&lt;'_, T, N&gt; <a href="#" class="tooltip" data-notable-ty="ArrayWindows&lt;&#39;_, T, N&gt;">ⓘ</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>array_windows</code>)</span></div></span></summary><div class="docblock"><p>Returns an iterator over overlapping windows of <code>N</code> elements of a slice,
707 starting at the beginning of the slice.</p>
708 <p>This is the const generic equivalent of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.windows" title="method slice::windows"><code>windows</code></a>.</p>
709 <p>If <code>N</code> is greater than the size of the slice, it will return no windows.</p>
710 <h5 id="panics-12"><a class="doc-anchor" href="#panics-12">§</a>Panics</h5>
711 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
712 error before this method gets stabilized.</p>
713 <h5 id="examples-46"><a class="doc-anchor" href="#examples-46">§</a>Examples</h5>
714 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_windows)]
715 </span><span class="kw">let </span>slice = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
716 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.array_windows();
717 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>]);
718 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>]);
719 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">2</span>, <span class="number">3</span>]);
720 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
721 </div></details><details class="toggle method-toggle" open><summary><section id="method.rchunks" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1662">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks" class="fn">rchunks</a>(&amp;self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunks.html" title="struct core::slice::iter::RChunks">RChunks</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="RChunks&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the end
722 of the slice.</p>
723 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
724 slice, then the last chunk will not have length <code>chunk_size</code>.</p>
725 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_exact" title="method slice::rchunks_exact"><code>rchunks_exact</code></a> for a variant of this iterator that returns chunks of always exactly
726 <code>chunk_size</code> elements, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks" title="method slice::chunks"><code>chunks</code></a> for the same iterator but starting at the beginning
727 of the slice.</p>
728 <h5 id="panics-13"><a class="doc-anchor" href="#panics-13">§</a>Panics</h5>
729 <p>Panics if <code>chunk_size</code> is zero.</p>
730 <h5 id="examples-47"><a class="doc-anchor" href="#examples-47">§</a>Examples</h5>
731 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
732 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.rchunks(<span class="number">2</span>);
733 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'e'</span>, <span class="string">'m'</span>]);
734 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'o'</span>, <span class="string">'r'</span>]);
735 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>]);
736 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
737 </div></details><details class="toggle method-toggle" open><summary><section id="method.rchunks_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1701">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_mut" class="fn">rchunks_mut</a>(&amp;mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksMut.html" title="struct core::slice::iter::RChunksMut">RChunksMut</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="RChunksMut&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the end
738 of the slice.</p>
739 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
740 length of the slice, then the last chunk will not have length <code>chunk_size</code>.</p>
741 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_exact_mut" title="method slice::rchunks_exact_mut"><code>rchunks_exact_mut</code></a> for a variant of this iterator that returns chunks of always
742 exactly <code>chunk_size</code> elements, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_mut" title="method slice::chunks_mut"><code>chunks_mut</code></a> for the same iterator but starting at the
743 beginning of the slice.</p>
744 <h5 id="panics-14"><a class="doc-anchor" href="#panics-14">§</a>Panics</h5>
745 <p>Panics if <code>chunk_size</code> is zero.</p>
746 <h5 id="examples-48"><a class="doc-anchor" href="#examples-48">§</a>Examples</h5>
747 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
748 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
749
750 <span class="kw">for </span>chunk <span class="kw">in </span>v.rchunks_mut(<span class="number">2</span>) {
751 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
752 <span class="kw-2">*</span>elem += count;
753 }
754 count += <span class="number">1</span>;
755 }
756 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">1</span>]);</code></pre></div>
757 </div></details><details class="toggle method-toggle" open><summary><section id="method.rchunks_exact" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1741">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_exact" class="fn">rchunks_exact</a>(&amp;self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExact.html" title="struct core::slice::iter::RChunksExact">RChunksExact</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="RChunksExact&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the
758 end of the slice.</p>
759 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
760 slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be retrieved
761 from the <code>remainder</code> function of the iterator.</p>
762 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
763 resulting code better than in the case of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks" title="method slice::rchunks"><code>rchunks</code></a>.</p>
764 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks" title="method slice::rchunks"><code>rchunks</code></a> for a variant of this iterator that also returns the remainder as a smaller
765 chunk, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact" title="method slice::chunks_exact"><code>chunks_exact</code></a> for the same iterator but starting at the beginning of the
766 slice.</p>
767 <h5 id="panics-15"><a class="doc-anchor" href="#panics-15">§</a>Panics</h5>
768 <p>Panics if <code>chunk_size</code> is zero.</p>
769 <h5 id="examples-49"><a class="doc-anchor" href="#examples-49">§</a>Examples</h5>
770 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>];
771 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.rchunks_exact(<span class="number">2</span>);
772 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'e'</span>, <span class="string">'m'</span>]);
773 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="string">'o'</span>, <span class="string">'r'</span>]);
774 <span class="macro">assert!</span>(iter.next().is_none());
775 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&amp;</span>[<span class="string">'l'</span>]);</code></pre></div>
776 </div></details><details class="toggle method-toggle" open><summary><section id="method.rchunks_exact_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.31.0">1.31.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1785">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_exact_mut" class="fn">rchunks_exact_mut</a>(&amp;mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExactMut.html" title="struct core::slice::iter::RChunksExactMut">RChunksExactMut</a>&lt;'_, T&gt; <a href="#" class="tooltip" data-notable-ty="RChunksExactMut&lt;&#39;_, T&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over <code>chunk_size</code> elements of the slice at a time, starting at the end
777 of the slice.</p>
778 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
779 length of the slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be
780 retrieved from the <code>into_remainder</code> function of the iterator.</p>
781 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
782 resulting code better than in the case of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_mut" title="method slice::chunks_mut"><code>chunks_mut</code></a>.</p>
783 <p>See <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.rchunks_mut" title="method slice::rchunks_mut"><code>rchunks_mut</code></a> for a variant of this iterator that also returns the remainder as a
784 smaller chunk, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.chunks_exact_mut" title="method slice::chunks_exact_mut"><code>chunks_exact_mut</code></a> for the same iterator but starting at the beginning
785 of the slice.</p>
786 <h5 id="panics-16"><a class="doc-anchor" href="#panics-16">§</a>Panics</h5>
787 <p>Panics if <code>chunk_size</code> is zero.</p>
788 <h5 id="examples-50"><a class="doc-anchor" href="#examples-50">§</a>Examples</h5>
789 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>];
790 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
791
792 <span class="kw">for </span>chunk <span class="kw">in </span>v.rchunks_exact_mut(<span class="number">2</span>) {
793 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
794 <span class="kw-2">*</span>elem += count;
795 }
796 count += <span class="number">1</span>;
797 }
798 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">1</span>]);</code></pre></div>
799 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunk_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1824-1826">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunk_by" class="fn">chunk_by</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkBy.html" title="struct core::slice::iter::ChunkBy">ChunkBy</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="ChunkBy&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
800 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over the slice producing non-overlapping runs
801 of elements using the predicate to separate them.</p>
802 <p>The predicate is called for every pair of consecutive elements,
803 meaning that it is called on <code>slice[0]</code> and <code>slice[1]</code>,
804 followed by <code>slice[1]</code> and <code>slice[2]</code>, and so on.</p>
805 <h5 id="examples-51"><a class="doc-anchor" href="#examples-51">§</a>Examples</h5>
806 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">3</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>];
807
808 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by(|a, b| a == b);
809
810 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>][..]));
811 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">3</span>][..]));
812 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>][..]));
813 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
814 <p>This method can be used to extract the sorted subslices:</p>
815
816 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
817
818 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by(|a, b| a &lt;= b);
819
820 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..]));
821 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">2</span>, <span class="number">3</span>][..]));
822 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>][..]));
823 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
824 </div></details><details class="toggle method-toggle" open><summary><section id="method.chunk_by_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.77.0">1.77.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1865-1867">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunk_by_mut" class="fn">chunk_by_mut</a>&lt;F&gt;(&amp;mut self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkByMut.html" title="struct core::slice::iter::ChunkByMut">ChunkByMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="ChunkByMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
825 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over the slice producing non-overlapping mutable
826 runs of elements using the predicate to separate them.</p>
827 <p>The predicate is called for every pair of consecutive elements,
828 meaning that it is called on <code>slice[0]</code> and <code>slice[1]</code>,
829 followed by <code>slice[1]</code> and <code>slice[2]</code>, and so on.</p>
830 <h5 id="examples-52"><a class="doc-anchor" href="#examples-52">§</a>Examples</h5>
831 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">3</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>];
832
833 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by_mut(|a, b| a == b);
834
835 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>][..]));
836 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">3</span>, <span class="number">3</span>][..]));
837 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>][..]));
838 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
839 <p>This method can be used to extract the sorted subslices:</p>
840
841 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
842
843 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by_mut(|a, b| a &lt;= b);
844
845 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..]));
846 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">2</span>, <span class="number">3</span>][..]));
847 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>][..]));
848 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
849 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1911">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at" class="fn">split_at</a>(&amp;self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; (&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Divides one slice into two at an index.</p>
850 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
851 the index <code>mid</code> itself) and the second will contain all
852 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
853 <h5 id="panics-17"><a class="doc-anchor" href="#panics-17">§</a>Panics</h5>
854 <p>Panics if <code>mid &gt; len</code>. For a non-panicking alternative see
855 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_checked" title="method slice::split_at_checked"><code>split_at_checked</code></a>.</p>
856 <h5 id="examples-53"><a class="doc-anchor" href="#examples-53">§</a>Examples</h5>
857 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
858
859 {
860 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">0</span>);
861 <span class="macro">assert_eq!</span>(left, []);
862 <span class="macro">assert_eq!</span>(right, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
863 }
864
865 {
866 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">2</span>);
867 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>]);
868 <span class="macro">assert_eq!</span>(right, [<span class="string">'c'</span>]);
869 }
870
871 {
872 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">3</span>);
873 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
874 <span class="macro">assert_eq!</span>(right, []);
875 }</code></pre></div>
876 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1945">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_mut" class="fn">split_at_mut</a>(&amp;mut self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Divides one mutable slice into two at an index.</p>
877 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
878 the index <code>mid</code> itself) and the second will contain all
879 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
880 <h5 id="panics-18"><a class="doc-anchor" href="#panics-18">§</a>Panics</h5>
881 <p>Panics if <code>mid &gt; len</code>. For a non-panicking alternative see
882 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_mut_checked" title="method slice::split_at_mut_checked"><code>split_at_mut_checked</code></a>.</p>
883 <h5 id="examples-54"><a class="doc-anchor" href="#examples-54">§</a>Examples</h5>
884 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">1</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>];
885 <span class="kw">let </span>(left, right) = v.split_at_mut(<span class="number">2</span>);
886 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
887 <span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>]);
888 left[<span class="number">1</span>] = <span class="number">2</span>;
889 right[<span class="number">1</span>] = <span class="number">4</span>;
890 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]);</code></pre></div>
891 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at_unchecked" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.79.0">1.79.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#1996">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.split_at_unchecked" class="fn">split_at_unchecked</a>(&amp;self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; (&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Divides one slice into two at an index, without doing bounds checking.</p>
892 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
893 the index <code>mid</code> itself) and the second will contain all
894 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
895 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at" title="method slice::split_at"><code>split_at</code></a>.</p>
896 <h5 id="safety-6"><a class="doc-anchor" href="#safety-6">§</a>Safety</h5>
897 <p>Calling this method with an out-of-bounds index is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>
898 even if the resulting reference is not used. The caller has to ensure that
899 <code>0 &lt;= mid &lt;= self.len()</code>.</p>
900 <h5 id="examples-55"><a class="doc-anchor" href="#examples-55">§</a>Examples</h5>
901 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
902
903 <span class="kw">unsafe </span>{
904 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">0</span>);
905 <span class="macro">assert_eq!</span>(left, []);
906 <span class="macro">assert_eq!</span>(right, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
907 }
908
909 <span class="kw">unsafe </span>{
910 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">2</span>);
911 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>]);
912 <span class="macro">assert_eq!</span>(right, [<span class="string">'c'</span>]);
913 }
914
915 <span class="kw">unsafe </span>{
916 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">3</span>);
917 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
918 <span class="macro">assert_eq!</span>(right, []);
919 }</code></pre></div>
920 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at_mut_unchecked" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.79.0">1.79.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2049">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.split_at_mut_unchecked" class="fn">split_at_mut_unchecked</a>(
921 &amp;mut self,
922 mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
923 ) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Divides one mutable slice into two at an index, without doing bounds checking.</p>
924 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
925 the index <code>mid</code> itself) and the second will contain all
926 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
927 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_mut" title="method slice::split_at_mut"><code>split_at_mut</code></a>.</p>
928 <h5 id="safety-7"><a class="doc-anchor" href="#safety-7">§</a>Safety</h5>
929 <p>Calling this method with an out-of-bounds index is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>
930 even if the resulting reference is not used. The caller has to ensure that
931 <code>0 &lt;= mid &lt;= self.len()</code>.</p>
932 <h5 id="examples-56"><a class="doc-anchor" href="#examples-56">§</a>Examples</h5>
933 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">1</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>];
934 <span class="comment">// scoped to restrict the lifetime of the borrows
935 </span><span class="kw">unsafe </span>{
936 <span class="kw">let </span>(left, right) = v.split_at_mut_unchecked(<span class="number">2</span>);
937 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
938 <span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>]);
939 left[<span class="number">1</span>] = <span class="number">2</span>;
940 right[<span class="number">1</span>] = <span class="number">4</span>;
941 }
942 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]);</code></pre></div>
943 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at_checked" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2110">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_checked" class="fn">split_at_checked</a>(&amp;self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Divides one slice into two at an index, returning <code>None</code> if the slice is
944 too short.</p>
945 <p>If <code>mid ≤ len</code> returns a pair of slices where the first will contain all
946 indices from <code>[0, mid)</code> (excluding the index <code>mid</code> itself) and the
947 second will contain all indices from <code>[mid, len)</code> (excluding the index
948 <code>len</code> itself).</p>
949 <p>Otherwise, if <code>mid &gt; len</code>, returns <code>None</code>.</p>
950 <h5 id="examples-57"><a class="doc-anchor" href="#examples-57">§</a>Examples</h5>
951 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">1</span>, -<span class="number">2</span>, <span class="number">3</span>, -<span class="number">4</span>, <span class="number">5</span>, -<span class="number">6</span>];
952
953 {
954 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">0</span>).unwrap();
955 <span class="macro">assert_eq!</span>(left, []);
956 <span class="macro">assert_eq!</span>(right, [<span class="number">1</span>, -<span class="number">2</span>, <span class="number">3</span>, -<span class="number">4</span>, <span class="number">5</span>, -<span class="number">6</span>]);
957 }
958
959 {
960 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">2</span>).unwrap();
961 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, -<span class="number">2</span>]);
962 <span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, -<span class="number">4</span>, <span class="number">5</span>, -<span class="number">6</span>]);
963 }
964
965 {
966 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">6</span>).unwrap();
967 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, -<span class="number">2</span>, <span class="number">3</span>, -<span class="number">4</span>, <span class="number">5</span>, -<span class="number">6</span>]);
968 <span class="macro">assert_eq!</span>(right, []);
969 }
970
971 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.split_at_checked(<span class="number">7</span>));</code></pre></div>
972 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_at_mut_checked" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2149">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_mut_checked" class="fn">split_at_mut_checked</a>(
973 &amp;mut self,
974 mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
975 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;</h4></section></summary><div class="docblock"><p>Divides one mutable slice into two at an index, returning <code>None</code> if the
976 slice is too short.</p>
977 <p>If <code>mid ≤ len</code> returns a pair of slices where the first will contain all
978 indices from <code>[0, mid)</code> (excluding the index <code>mid</code> itself) and the
979 second will contain all indices from <code>[mid, len)</code> (excluding the index
980 <code>len</code> itself).</p>
981 <p>Otherwise, if <code>mid &gt; len</code>, returns <code>None</code>.</p>
982 <h5 id="examples-58"><a class="doc-anchor" href="#examples-58">§</a>Examples</h5>
983 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">1</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>];
984
985 <span class="kw">if let </span><span class="prelude-val">Some</span>((left, right)) = v.split_at_mut_checked(<span class="number">2</span>) {
986 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
987 <span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>]);
988 left[<span class="number">1</span>] = <span class="number">2</span>;
989 right[<span class="number">1</span>] = <span class="number">4</span>;
990 }
991 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]);
992
993 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.split_at_mut_checked(<span class="number">7</span>));</code></pre></div>
994 </div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2201-2203">Source</a></span><h4 class="code-header">pub fn <a href="#method.split" class="fn">split</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Split.html" title="struct core::slice::iter::Split">Split</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="Split&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
995 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
996 <code>pred</code>. The matched element is not contained in the subslices.</p>
997 <h5 id="examples-59"><a class="doc-anchor" href="#examples-59">§</a>Examples</h5>
998 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>, <span class="number">20</span>];
999 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.split(|num| num % <span class="number">3 </span>== <span class="number">0</span>);
1000
1001 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>]);
1002 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">20</span>]);
1003 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1004 <p>If the first element is matched, an empty slice will be the first item
1005 returned by the iterator. Similarly, if the last element in the slice
1006 is matched, an empty slice will be the last item returned by the
1007 iterator:</p>
1008
1009 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>];
1010 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.split(|num| num % <span class="number">3 </span>== <span class="number">0</span>);
1011
1012 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>]);
1013 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[]);
1014 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1015 <p>If two matched elements are directly adjacent, an empty slice will be
1016 present between them:</p>
1017
1018 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">10</span>, <span class="number">6</span>, <span class="number">33</span>, <span class="number">20</span>];
1019 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.split(|num| num % <span class="number">3 </span>== <span class="number">0</span>);
1020
1021 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">10</span>]);
1022 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[]);
1023 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">20</span>]);
1024 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1025 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2223-2225">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_mut" class="fn">split_mut</a>&lt;F&gt;(&amp;mut self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitMut.html" title="struct core::slice::iter::SplitMut">SplitMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="SplitMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1026 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over mutable subslices separated by elements that
1027 match <code>pred</code>. The matched element is not contained in the subslices.</p>
1028 <h5 id="examples-60"><a class="doc-anchor" href="#examples-60">§</a>Examples</h5>
1029 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1030
1031 <span class="kw">for </span>group <span class="kw">in </span>v.split_mut(|num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1032 group[<span class="number">0</span>] = <span class="number">1</span>;
1033 }
1034 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">1</span>, <span class="number">60</span>, <span class="number">1</span>]);</code></pre></div>
1035 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_inclusive" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2259-2261">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_inclusive" class="fn">split_inclusive</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusive.html" title="struct core::slice::iter::SplitInclusive">SplitInclusive</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="SplitInclusive&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1036 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
1037 <code>pred</code>. The matched element is contained in the end of the previous
1038 subslice as a terminator.</p>
1039 <h5 id="examples-61"><a class="doc-anchor" href="#examples-61">§</a>Examples</h5>
1040 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>, <span class="number">20</span>];
1041 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.split_inclusive(|num| num % <span class="number">3 </span>== <span class="number">0</span>);
1042
1043 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>]);
1044 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">20</span>]);
1045 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1046 <p>If the last element of the slice is matched,
1047 that element will be considered the terminator of the preceding slice.
1048 That slice will be the last item returned by the iterator.</p>
1049
1050 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">3</span>, <span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>];
1051 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.split_inclusive(|num| num % <span class="number">3 </span>== <span class="number">0</span>);
1052
1053 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">3</span>]);
1054 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>]);
1055 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1056 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_inclusive_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2283-2285">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_inclusive_mut" class="fn">split_inclusive_mut</a>&lt;F&gt;(&amp;mut self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusiveMut.html" title="struct core::slice::iter::SplitInclusiveMut">SplitInclusiveMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="SplitInclusiveMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1057 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over mutable subslices separated by elements that
1058 match <code>pred</code>. The matched element is contained in the previous
1059 subslice as a terminator.</p>
1060 <h5 id="examples-62"><a class="doc-anchor" href="#examples-62">§</a>Examples</h5>
1061 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1062
1063 <span class="kw">for </span>group <span class="kw">in </span>v.split_inclusive_mut(|num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1064 <span class="kw">let </span>terminator_idx = group.len()-<span class="number">1</span>;
1065 group[terminator_idx] = <span class="number">1</span>;
1066 }
1067 <span class="macro">assert_eq!</span>(v, [<span class="number">10</span>, <span class="number">40</span>, <span class="number">1</span>, <span class="number">20</span>, <span class="number">1</span>, <span class="number">1</span>]);</code></pre></div>
1068 </div></details><details class="toggle method-toggle" open><summary><section id="method.rsplit" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2319-2321">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplit" class="fn">rsplit</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplit.html" title="struct core::slice::iter::RSplit">RSplit</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="RSplit&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1069 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
1070 <code>pred</code>, starting at the end of the slice and working backwards.
1071 The matched element is not contained in the subslices.</p>
1072 <h5 id="examples-63"><a class="doc-anchor" href="#examples-63">§</a>Examples</h5>
1073 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = [<span class="number">11</span>, <span class="number">22</span>, <span class="number">33</span>, <span class="number">0</span>, <span class="number">44</span>, <span class="number">55</span>];
1074 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.rsplit(|num| <span class="kw-2">*</span>num == <span class="number">0</span>);
1075
1076 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">44</span>, <span class="number">55</span>]);
1077 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">11</span>, <span class="number">22</span>, <span class="number">33</span>]);
1078 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
1079 <p>As with <code>split()</code>, if the first or last element is matched, an empty
1080 slice will be the first (or last) item returned by the iterator.</p>
1081
1082 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>];
1083 <span class="kw">let </span><span class="kw-2">mut </span>it = v.rsplit(|n| <span class="kw-2">*</span>n % <span class="number">2 </span>== <span class="number">0</span>);
1084 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&amp;</span>[]);
1085 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">5</span>]);
1086 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">1</span>]);
1087 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&amp;</span>[]);
1088 <span class="macro">assert_eq!</span>(it.next(), <span class="prelude-val">None</span>);</code></pre></div>
1089 </div></details><details class="toggle method-toggle" open><summary><section id="method.rsplit_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2345-2347">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplit_mut" class="fn">rsplit_mut</a>&lt;F&gt;(&amp;mut self, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitMut.html" title="struct core::slice::iter::RSplitMut">RSplitMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="RSplitMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1090 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over mutable subslices separated by elements that
1091 match <code>pred</code>, starting at the end of the slice and working
1092 backwards. The matched element is not contained in the subslices.</p>
1093 <h5 id="examples-64"><a class="doc-anchor" href="#examples-64">§</a>Examples</h5>
1094 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">100</span>, <span class="number">400</span>, <span class="number">300</span>, <span class="number">200</span>, <span class="number">600</span>, <span class="number">500</span>];
1095
1096 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">0</span>;
1097 <span class="kw">for </span>group <span class="kw">in </span>v.rsplit_mut(|num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1098 count += <span class="number">1</span>;
1099 group[<span class="number">0</span>] = count;
1100 }
1101 <span class="macro">assert_eq!</span>(v, [<span class="number">3</span>, <span class="number">400</span>, <span class="number">300</span>, <span class="number">2</span>, <span class="number">600</span>, <span class="number">1</span>]);</code></pre></div>
1102 </div></details><details class="toggle method-toggle" open><summary><section id="method.splitn" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2373-2375">Source</a></span><h4 class="code-header">pub fn <a href="#method.splitn" class="fn">splitn</a>&lt;F&gt;(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitN.html" title="struct core::slice::iter::SplitN">SplitN</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="SplitN&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1103 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
1104 <code>pred</code>, limited to returning at most <code>n</code> items. The matched element is
1105 not contained in the subslices.</p>
1106 <p>The last element returned, if any, will contain the remainder of the
1107 slice.</p>
1108 <h5 id="examples-65"><a class="doc-anchor" href="#examples-65">§</a>Examples</h5>
1109 <p>Print the slice split once by numbers divisible by 3 (i.e., <code>[10, 40]</code>,
1110 <code>[20, 60, 50]</code>):</p>
1111
1112 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1113
1114 <span class="kw">for </span>group <span class="kw">in </span>v.splitn(<span class="number">2</span>, |num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1115 <span class="macro">println!</span>(<span class="string">"{group:?}"</span>);
1116 }</code></pre></div>
1117 </div></details><details class="toggle method-toggle" open><summary><section id="method.splitn_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2399-2401">Source</a></span><h4 class="code-header">pub fn <a href="#method.splitn_mut" class="fn">splitn_mut</a>&lt;F&gt;(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitNMut.html" title="struct core::slice::iter::SplitNMut">SplitNMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="SplitNMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1118 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over mutable subslices separated by elements that match
1119 <code>pred</code>, limited to returning at most <code>n</code> items. The matched element is
1120 not contained in the subslices.</p>
1121 <p>The last element returned, if any, will contain the remainder of the
1122 slice.</p>
1123 <h5 id="examples-66"><a class="doc-anchor" href="#examples-66">§</a>Examples</h5>
1124 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1125
1126 <span class="kw">for </span>group <span class="kw">in </span>v.splitn_mut(<span class="number">2</span>, |num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1127 group[<span class="number">0</span>] = <span class="number">1</span>;
1128 }
1129 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">1</span>, <span class="number">60</span>, <span class="number">50</span>]);</code></pre></div>
1130 </div></details><details class="toggle method-toggle" open><summary><section id="method.rsplitn" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2428-2430">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplitn" class="fn">rsplitn</a>&lt;F&gt;(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitN.html" title="struct core::slice::iter::RSplitN">RSplitN</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="RSplitN&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1131 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
1132 <code>pred</code> limited to returning at most <code>n</code> items. This starts at the end of
1133 the slice and works backwards. The matched element is not contained in
1134 the subslices.</p>
1135 <p>The last element returned, if any, will contain the remainder of the
1136 slice.</p>
1137 <h5 id="examples-67"><a class="doc-anchor" href="#examples-67">§</a>Examples</h5>
1138 <p>Print the slice split once, starting from the end, by numbers divisible
1139 by 3 (i.e., <code>[50]</code>, <code>[10, 40, 30, 20]</code>):</p>
1140
1141 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1142
1143 <span class="kw">for </span>group <span class="kw">in </span>v.rsplitn(<span class="number">2</span>, |num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1144 <span class="macro">println!</span>(<span class="string">"{group:?}"</span>);
1145 }</code></pre></div>
1146 </div></details><details class="toggle method-toggle" open><summary><section id="method.rsplitn_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2455-2457">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplitn_mut" class="fn">rsplitn_mut</a>&lt;F&gt;(&amp;mut self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitNMut.html" title="struct core::slice::iter::RSplitNMut">RSplitNMut</a>&lt;'_, T, F&gt; <a href="#" class="tooltip" data-notable-ty="RSplitNMut&lt;&#39;_, T, F&gt;">ⓘ</a><div class="where">where
1147 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns an iterator over subslices separated by elements that match
1148 <code>pred</code> limited to returning at most <code>n</code> items. This starts at the end of
1149 the slice and works backwards. The matched element is not contained in
1150 the subslices.</p>
1151 <p>The last element returned, if any, will contain the remainder of the
1152 slice.</p>
1153 <h5 id="examples-68"><a class="doc-anchor" href="#examples-68">§</a>Examples</h5>
1154 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>s = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">50</span>];
1155
1156 <span class="kw">for </span>group <span class="kw">in </span>s.rsplitn_mut(<span class="number">2</span>, |num| <span class="kw-2">*</span>num % <span class="number">3 </span>== <span class="number">0</span>) {
1157 group[<span class="number">0</span>] = <span class="number">1</span>;
1158 }
1159 <span class="macro">assert_eq!</span>(s, [<span class="number">1</span>, <span class="number">40</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">60</span>, <span class="number">1</span>]);</code></pre></div>
1160 </div></details><details class="toggle method-toggle" open><summary><section id="method.split_once" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2482-2484">Source</a><h4 class="code-header">pub fn <a href="#method.split_once" class="fn">split_once</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;<div class="where">where
1161 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_split_once</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice on the first element that matches the specified
1162 predicate.</p>
1163 <p>If any matching elements are present in the slice, returns the prefix
1164 before the match and suffix after. The matching element itself is not
1165 included. If no elements match, returns <code>None</code>.</p>
1166 <h5 id="examples-69"><a class="doc-anchor" href="#examples-69">§</a>Examples</h5>
1167 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_split_once)]
1168 </span><span class="kw">let </span>s = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>];
1169 <span class="macro">assert_eq!</span>(s.split_once(|<span class="kw-2">&amp;</span>x| x == <span class="number">2</span>), <span class="prelude-val">Some</span>((
1170 <span class="kw-2">&amp;</span>[<span class="number">1</span>][..],
1171 <span class="kw-2">&amp;</span>[<span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>][..]
1172 )));
1173 <span class="macro">assert_eq!</span>(s.split_once(|<span class="kw-2">&amp;</span>x| x == <span class="number">0</span>), <span class="prelude-val">None</span>);</code></pre></div>
1174 </div></details><details class="toggle method-toggle" open><summary><section id="method.rsplit_once" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2510-2512">Source</a><h4 class="code-header">pub fn <a href="#method.rsplit_once" class="fn">rsplit_once</a>&lt;F&gt;(&amp;self, pred: F) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)&gt;<div class="where">where
1175 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_split_once</code>)</span></div></span></summary><div class="docblock"><p>Splits the slice on the last element that matches the specified
1176 predicate.</p>
1177 <p>If any matching elements are present in the slice, returns the prefix
1178 before the match and suffix after. The matching element itself is not
1179 included. If no elements match, returns <code>None</code>.</p>
1180 <h5 id="examples-70"><a class="doc-anchor" href="#examples-70">§</a>Examples</h5>
1181 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_split_once)]
1182 </span><span class="kw">let </span>s = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>];
1183 <span class="macro">assert_eq!</span>(s.rsplit_once(|<span class="kw-2">&amp;</span>x| x == <span class="number">2</span>), <span class="prelude-val">Some</span>((
1184 <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..],
1185 <span class="kw-2">&amp;</span>[<span class="number">4</span>][..]
1186 )));
1187 <span class="macro">assert_eq!</span>(s.rsplit_once(|<span class="kw-2">&amp;</span>x| x == <span class="number">0</span>), <span class="prelude-val">None</span>);</code></pre></div>
1188 </div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2546-2548">Source</a></span><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1189 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if the slice contains an element with the given value.</p>
1190 <p>This operation is <em>O</em>(<em>n</em>).</p>
1191 <p>Note that if you have a sorted slice, <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search" title="method slice::binary_search"><code>binary_search</code></a> may be faster.</p>
1192 <h5 id="examples-71"><a class="doc-anchor" href="#examples-71">§</a>Examples</h5>
1193 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1194 <span class="macro">assert!</span>(v.contains(<span class="kw-2">&amp;</span><span class="number">30</span>));
1195 <span class="macro">assert!</span>(!v.contains(<span class="kw-2">&amp;</span><span class="number">50</span>));</code></pre></div>
1196 <p>If you do not have a <code>&amp;T</code>, but some other value that you can compare
1197 with one (for example, <code>String</code> implements <code>PartialEq&lt;str&gt;</code>), you can
1198 use <code>iter().any</code>:</p>
1199
1200 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [String::from(<span class="string">"hello"</span>), String::from(<span class="string">"world"</span>)]; <span class="comment">// slice of `String`
1201 </span><span class="macro">assert!</span>(v.iter().any(|e| e == <span class="string">"hello"</span>)); <span class="comment">// search with `&amp;str`
1202 </span><span class="macro">assert!</span>(!v.iter().any(|e| e == <span class="string">"hi"</span>));</code></pre></div>
1203 </div></details><details class="toggle method-toggle" open><summary><section id="method.starts_with" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2576-2578">Source</a></span><h4 class="code-header">pub fn <a href="#method.starts_with" class="fn">starts_with</a>(&amp;self, needle: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1204 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if <code>needle</code> is a prefix of the slice or equal to the slice.</p>
1205 <h5 id="examples-72"><a class="doc-anchor" href="#examples-72">§</a>Examples</h5>
1206 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1207 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&amp;</span>[<span class="number">10</span>]));
1208 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>]));
1209 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&amp;</span>v));
1210 <span class="macro">assert!</span>(!v.starts_with(<span class="kw-2">&amp;</span>[<span class="number">50</span>]));
1211 <span class="macro">assert!</span>(!v.starts_with(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">50</span>]));</code></pre></div>
1212 <p>Always returns <code>true</code> if <code>needle</code> is an empty slice:</p>
1213
1214 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1215 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&amp;</span>[]));
1216 <span class="kw">let </span>v: <span class="kw-2">&amp;</span>[u8] = <span class="kw-2">&amp;</span>[];
1217 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&amp;</span>[]));</code></pre></div>
1218 </div></details><details class="toggle method-toggle" open><summary><section id="method.ends_with" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2607-2609">Source</a></span><h4 class="code-header">pub fn <a href="#method.ends_with" class="fn">ends_with</a>(&amp;self, needle: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1219 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if <code>needle</code> is a suffix of the slice or equal to the slice.</p>
1220 <h5 id="examples-73"><a class="doc-anchor" href="#examples-73">§</a>Examples</h5>
1221 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1222 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&amp;</span>[<span class="number">30</span>]));
1223 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&amp;</span>[<span class="number">40</span>, <span class="number">30</span>]));
1224 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&amp;</span>v));
1225 <span class="macro">assert!</span>(!v.ends_with(<span class="kw-2">&amp;</span>[<span class="number">50</span>]));
1226 <span class="macro">assert!</span>(!v.ends_with(<span class="kw-2">&amp;</span>[<span class="number">50</span>, <span class="number">30</span>]));</code></pre></div>
1227 <p>Always returns <code>true</code> if <code>needle</code> is an empty slice:</p>
1228
1229 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1230 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&amp;</span>[]));
1231 <span class="kw">let </span>v: <span class="kw-2">&amp;</span>[u8] = <span class="kw-2">&amp;</span>[];
1232 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&amp;</span>[]));</code></pre></div>
1233 </div></details><details class="toggle method-toggle" open><summary><section id="method.strip_prefix" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2639-2641">Source</a></span><h4 class="code-header">pub fn <a href="#method.strip_prefix" class="fn">strip_prefix</a>&lt;P&gt;(&amp;self, prefix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;P</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;<div class="where">where
1234 P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.SlicePattern.html" title="trait core::slice::SlicePattern">SlicePattern</a>&lt;Item = T&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
1235 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section></summary><div class="docblock"><p>Returns a subslice with the prefix removed.</p>
1236 <p>If the slice starts with <code>prefix</code>, returns the subslice after the prefix, wrapped in <code>Some</code>.
1237 If <code>prefix</code> is empty, simply returns the original slice. If <code>prefix</code> is equal to the
1238 original slice, returns an empty slice.</p>
1239 <p>If the slice does not start with <code>prefix</code>, returns <code>None</code>.</p>
1240 <h5 id="examples-74"><a class="doc-anchor" href="#examples-74">§</a>Examples</h5>
1241 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1242 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&amp;</span>[<span class="number">10</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">40</span>, <span class="number">30</span>][..]));
1243 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">30</span>][..]));
1244 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[][..]));
1245 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&amp;</span>[<span class="number">50</span>]), <span class="prelude-val">None</span>);
1246 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">50</span>]), <span class="prelude-val">None</span>);
1247
1248 <span class="kw">let </span>prefix : <span class="kw-2">&amp;</span>str = <span class="string">"he"</span>;
1249 <span class="macro">assert_eq!</span>(<span class="string">b"hello"</span>.strip_prefix(prefix.as_bytes()),
1250 <span class="prelude-val">Some</span>(<span class="string">b"llo"</span>.as_ref()));</code></pre></div>
1251 </div></details><details class="toggle method-toggle" open><summary><section id="method.strip_suffix" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2675-2677">Source</a></span><h4 class="code-header">pub fn <a href="#method.strip_suffix" class="fn">strip_suffix</a>&lt;P&gt;(&amp;self, suffix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;P</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;<div class="where">where
1252 P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.SlicePattern.html" title="trait core::slice::SlicePattern">SlicePattern</a>&lt;Item = T&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
1253 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section></summary><div class="docblock"><p>Returns a subslice with the suffix removed.</p>
1254 <p>If the slice ends with <code>suffix</code>, returns the subslice before the suffix, wrapped in <code>Some</code>.
1255 If <code>suffix</code> is empty, simply returns the original slice. If <code>suffix</code> is equal to the
1256 original slice, returns an empty slice.</p>
1257 <p>If the slice does not end with <code>suffix</code>, returns <code>None</code>.</p>
1258 <h5 id="examples-75"><a class="doc-anchor" href="#examples-75">§</a>Examples</h5>
1259 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1260 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&amp;</span>[<span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>][..]));
1261 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&amp;</span>[<span class="number">40</span>, <span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[<span class="number">10</span>][..]));
1262 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>[][..]));
1263 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&amp;</span>[<span class="number">50</span>]), <span class="prelude-val">None</span>);
1264 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&amp;</span>[<span class="number">50</span>, <span class="number">30</span>]), <span class="prelude-val">None</span>);</code></pre></div>
1265 </div></details><details class="toggle method-toggle" open><summary><section id="method.binary_search" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2761-2763">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search" class="fn">binary_search</a>(&amp;self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;<div class="where">where
1266 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Binary searches this slice for a given element.
1267 If the slice is not sorted, the returned result is unspecified and
1268 meaningless.</p>
1269 <p>If the value is found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Ok" title="variant core::result::Result::Ok"><code>Result::Ok</code></a> is returned, containing the
1270 index of the matching element. If there are multiple matches, then any
1271 one of the matches could be returned. The index is chosen
1272 deterministically, but is subject to change in future versions of Rust.
1273 If the value is not found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Err" title="variant core::result::Result::Err"><code>Result::Err</code></a> is returned, containing
1274 the index where a matching element could be inserted while maintaining
1275 sorted order.</p>
1276 <p>See also <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by" title="method slice::binary_search_by"><code>binary_search_by</code></a>, <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by_key" title="method slice::binary_search_by_key"><code>binary_search_by_key</code></a>, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.partition_point" title="method slice::partition_point"><code>partition_point</code></a>.</p>
1277 <h5 id="examples-76"><a class="doc-anchor" href="#examples-76">§</a>Examples</h5>
1278 <p>Looks up a series of four elements. The first is found, with a
1279 uniquely determined position; the second and third are not
1280 found; the fourth could match any position in <code>[1, 4]</code>.</p>
1281
1282 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>s = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">55</span>];
1283
1284 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&amp;</span><span class="number">13</span>), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1285 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&amp;</span><span class="number">4</span>), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1286 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&amp;</span><span class="number">100</span>), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1287 <span class="kw">let </span>r = s.binary_search(<span class="kw-2">&amp;</span><span class="number">1</span>);
1288 <span class="macro">assert!</span>(<span class="kw">match </span>r { <span class="prelude-val">Ok</span>(<span class="number">1</span>..=<span class="number">4</span>) =&gt; <span class="bool-val">true</span>, <span class="kw">_ </span>=&gt; <span class="bool-val">false</span>, });</code></pre></div>
1289 <p>If you want to find that whole <em>range</em> of matching items, rather than
1290 an arbitrary matching one, that can be done using <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.partition_point" title="method slice::partition_point"><code>partition_point</code></a>:</p>
1291
1292 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>s = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">55</span>];
1293
1294 <span class="kw">let </span>low = s.partition_point(|x| x &lt; <span class="kw-2">&amp;</span><span class="number">1</span>);
1295 <span class="macro">assert_eq!</span>(low, <span class="number">1</span>);
1296 <span class="kw">let </span>high = s.partition_point(|x| x &lt;= <span class="kw-2">&amp;</span><span class="number">1</span>);
1297 <span class="macro">assert_eq!</span>(high, <span class="number">5</span>);
1298 <span class="kw">let </span>r = s.binary_search(<span class="kw-2">&amp;</span><span class="number">1</span>);
1299 <span class="macro">assert!</span>((low..high).contains(<span class="kw-2">&amp;</span>r.unwrap()));
1300
1301 <span class="macro">assert!</span>(s[..low].iter().all(|<span class="kw-2">&amp;</span>x| x &lt; <span class="number">1</span>));
1302 <span class="macro">assert!</span>(s[low..high].iter().all(|<span class="kw-2">&amp;</span>x| x == <span class="number">1</span>));
1303 <span class="macro">assert!</span>(s[high..].iter().all(|<span class="kw-2">&amp;</span>x| x &gt; <span class="number">1</span>));
1304
1305 <span class="comment">// For something not found, the "range" of equal items is empty
1306 </span><span class="macro">assert_eq!</span>(s.partition_point(|x| x &lt; <span class="kw-2">&amp;</span><span class="number">11</span>), <span class="number">9</span>);
1307 <span class="macro">assert_eq!</span>(s.partition_point(|x| x &lt;= <span class="kw-2">&amp;</span><span class="number">11</span>), <span class="number">9</span>);
1308 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&amp;</span><span class="number">11</span>), <span class="prelude-val">Err</span>(<span class="number">9</span>));</code></pre></div>
1309 <p>If you want to insert an item to a sorted vector, while maintaining
1310 sort order, consider using <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.partition_point" title="method slice::partition_point"><code>partition_point</code></a>:</p>
1311
1312 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>s = <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">55</span>];
1313 <span class="kw">let </span>num = <span class="number">42</span>;
1314 <span class="kw">let </span>idx = s.partition_point(|<span class="kw-2">&amp;</span>x| x &lt;= num);
1315 <span class="comment">// If `num` is unique, `s.partition_point(|&amp;x| x &lt; num)` (with `&lt;`) is equivalent to
1316 // `s.binary_search(&amp;num).unwrap_or_else(|x| x)`, but using `&lt;=` will allow `insert`
1317 // to shift less elements.
1318 </span>s.insert(idx, num);
1319 <span class="macro">assert_eq!</span>(s, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">42</span>, <span class="number">55</span>]);</code></pre></div>
1320 </div></details><details class="toggle method-toggle" open><summary><section id="method.binary_search_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2812-2814">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search_by" class="fn">binary_search_by</a>&lt;'a, F&gt;(&amp;'a self, f: F) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;<div class="where">where
1321 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Binary searches this slice with a comparator function.</p>
1322 <p>The comparator function should return an order code that indicates
1323 whether its argument is <code>Less</code>, <code>Equal</code> or <code>Greater</code> the desired
1324 target.
1325 If the slice is not sorted or if the comparator function does not
1326 implement an order consistent with the sort order of the underlying
1327 slice, the returned result is unspecified and meaningless.</p>
1328 <p>If the value is found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Ok" title="variant core::result::Result::Ok"><code>Result::Ok</code></a> is returned, containing the
1329 index of the matching element. If there are multiple matches, then any
1330 one of the matches could be returned. The index is chosen
1331 deterministically, but is subject to change in future versions of Rust.
1332 If the value is not found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Err" title="variant core::result::Result::Err"><code>Result::Err</code></a> is returned, containing
1333 the index where a matching element could be inserted while maintaining
1334 sorted order.</p>
1335 <p>See also <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search" title="method slice::binary_search"><code>binary_search</code></a>, <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by_key" title="method slice::binary_search_by_key"><code>binary_search_by_key</code></a>, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.partition_point" title="method slice::partition_point"><code>partition_point</code></a>.</p>
1336 <h5 id="examples-77"><a class="doc-anchor" href="#examples-77">§</a>Examples</h5>
1337 <p>Looks up a series of four elements. The first is found, with a
1338 uniquely determined position; the second and third are not
1339 found; the fourth could match any position in <code>[1, 4]</code>.</p>
1340
1341 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>s = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">55</span>];
1342
1343 <span class="kw">let </span>seek = <span class="number">13</span>;
1344 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&amp;</span>seek)), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1345 <span class="kw">let </span>seek = <span class="number">4</span>;
1346 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&amp;</span>seek)), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1347 <span class="kw">let </span>seek = <span class="number">100</span>;
1348 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&amp;</span>seek)), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1349 <span class="kw">let </span>seek = <span class="number">1</span>;
1350 <span class="kw">let </span>r = s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&amp;</span>seek));
1351 <span class="macro">assert!</span>(<span class="kw">match </span>r { <span class="prelude-val">Ok</span>(<span class="number">1</span>..=<span class="number">4</span>) =&gt; <span class="bool-val">true</span>, <span class="kw">_ </span>=&gt; <span class="bool-val">false</span>, });</code></pre></div>
1352 </div></details><details class="toggle method-toggle" open><summary><section id="method.binary_search_by_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.10.0">1.10.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2913-2916">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search_by_key" class="fn">binary_search_by_key</a>&lt;'a, B, F&gt;(
1353 &amp;'a self,
1354 b: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;B</a>,
1355 f: F,
1356 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;<div class="where">where
1357 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>) -&gt; B,
1358 B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Binary searches this slice with a key extraction function.</p>
1359 <p>Assumes that the slice is sorted by the key, for instance with
1360 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_by_key" title="method slice::sort_by_key"><code>sort_by_key</code></a> using the same key extraction function.
1361 If the slice is not sorted by the key, the returned result is
1362 unspecified and meaningless.</p>
1363 <p>If the value is found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Ok" title="variant core::result::Result::Ok"><code>Result::Ok</code></a> is returned, containing the
1364 index of the matching element. If there are multiple matches, then any
1365 one of the matches could be returned. The index is chosen
1366 deterministically, but is subject to change in future versions of Rust.
1367 If the value is not found then <a href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html#variant.Err" title="variant core::result::Result::Err"><code>Result::Err</code></a> is returned, containing
1368 the index where a matching element could be inserted while maintaining
1369 sorted order.</p>
1370 <p>See also <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search" title="method slice::binary_search"><code>binary_search</code></a>, <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by" title="method slice::binary_search_by"><code>binary_search_by</code></a>, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.partition_point" title="method slice::partition_point"><code>partition_point</code></a>.</p>
1371 <h5 id="examples-78"><a class="doc-anchor" href="#examples-78">§</a>Examples</h5>
1372 <p>Looks up a series of four elements in a slice of pairs sorted by
1373 their second elements. The first is found, with a uniquely
1374 determined position; the second and third are not found; the
1375 fourth could match any position in <code>[1, 4]</code>.</p>
1376
1377 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>s = [(<span class="number">0</span>, <span class="number">0</span>), (<span class="number">2</span>, <span class="number">1</span>), (<span class="number">4</span>, <span class="number">1</span>), (<span class="number">5</span>, <span class="number">1</span>), (<span class="number">3</span>, <span class="number">1</span>),
1378 (<span class="number">1</span>, <span class="number">2</span>), (<span class="number">2</span>, <span class="number">3</span>), (<span class="number">4</span>, <span class="number">5</span>), (<span class="number">5</span>, <span class="number">8</span>), (<span class="number">3</span>, <span class="number">13</span>),
1379 (<span class="number">1</span>, <span class="number">21</span>), (<span class="number">2</span>, <span class="number">34</span>), (<span class="number">4</span>, <span class="number">55</span>)];
1380
1381 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&amp;</span><span class="number">13</span>, |<span class="kw-2">&amp;</span>(a, b)| b), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1382 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&amp;</span><span class="number">4</span>, |<span class="kw-2">&amp;</span>(a, b)| b), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1383 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&amp;</span><span class="number">100</span>, |<span class="kw-2">&amp;</span>(a, b)| b), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1384 <span class="kw">let </span>r = s.binary_search_by_key(<span class="kw-2">&amp;</span><span class="number">1</span>, |<span class="kw-2">&amp;</span>(a, b)| b);
1385 <span class="macro">assert!</span>(<span class="kw">match </span>r { <span class="prelude-val">Ok</span>(<span class="number">1</span>..=<span class="number">4</span>) =&gt; <span class="bool-val">true</span>, <span class="kw">_ </span>=&gt; <span class="bool-val">false</span>, });</code></pre></div>
1386 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_unstable" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.20.0">1.20.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#2967-2969">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable" class="fn">sort_unstable</a>(&amp;mut self)<div class="where">where
1387 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice <strong>without</strong> preserving the initial order of equal elements.</p>
1388 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1389 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1390 <p>If the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a> the resulting
1391 order of elements in the slice is unspecified. All original elements will remain in the
1392 slice and any possible modifications via interior mutability are observed in the input. Same
1393 is true if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> panics.</p>
1394 <p>Sorting types that only implement <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd"><code>PartialOrd</code></a> such as <a href="https://doc.rust-lang.org/nightly/std/primitive.f32.html" title="primitive f32"><code>f32</code></a> and <a href="https://doc.rust-lang.org/nightly/std/primitive.f64.html" title="primitive f64"><code>f64</code></a> require
1395 additional precautions. For example, <code>f32::NAN != f32::NAN</code>, which doesn’t fulfill the
1396 reflexivity requirement of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a>. By using an alternative comparison function with
1397 <code>slice::sort_unstable_by</code> such as <a href="https://doc.rust-lang.org/nightly/std/primitive.f32.html#method.total_cmp" title="method f32::total_cmp"><code>f32::total_cmp</code></a> or <a href="https://doc.rust-lang.org/nightly/std/primitive.f64.html#method.total_cmp" title="method f64::total_cmp"><code>f64::total_cmp</code></a> that defines a
1398 <a href="https://en.wikipedia.org/wiki/Total_order">total order</a> users can sort slices containing floating-point values. Alternatively, if all
1399 values in the slice are guaranteed to be in a subset for which <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" title="method core::cmp::PartialOrd::partial_cmp"><code>PartialOrd::partial_cmp</code></a>
1400 forms a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, it’s possible to sort the slice with <code>sort_unstable_by(|a, b| a.partial_cmp(b).unwrap())</code>.</p>
1401 <h5 id="current-implementation"><a class="doc-anchor" href="#current-implementation">§</a>Current implementation</h5>
1402 <p>The current implementation is based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll and Orson Peters, which
1403 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1404 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1405 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1406 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1407 slice is partially sorted.</p>
1408 <h5 id="panics-19"><a class="doc-anchor" href="#panics-19">§</a>Panics</h5>
1409 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1410 <h5 id="examples-79"><a class="doc-anchor" href="#examples-79">§</a>Examples</h5>
1411 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
1412
1413 v.sort_unstable();
1414 <span class="macro">assert_eq!</span>(v, [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>]);</code></pre></div>
1415 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_unstable_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.20.0">1.20.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3019-3021">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable_by" class="fn">sort_unstable_by</a>&lt;F&gt;(&amp;mut self, compare: F)<div class="where">where
1416 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice with a comparison function, <strong>without</strong> preserving the initial order of
1417 equal elements.</p>
1418 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1419 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1420 <p>If the comparison function <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a> the resulting order
1421 of elements in the slice is unspecified. All original elements will remain in the slice and
1422 any possible modifications via interior mutability are observed in the input. Same is true
1423 if <code>compare</code> panics.</p>
1424 <p>For example <code>|a, b| (a - b).cmp(a)</code> is a comparison function that is neither transitive nor
1425 reflexive nor total, <code>a &lt; b &lt; c &lt; a</code> with <code>a = 1, b = 2, c = 3</code>. For more information and
1426 examples see the <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> documentation.</p>
1427 <h5 id="current-implementation-1"><a class="doc-anchor" href="#current-implementation-1">§</a>Current implementation</h5>
1428 <p>The current implementation is based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll and Orson Peters, which
1429 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1430 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1431 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1432 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1433 slice is partially sorted.</p>
1434 <h5 id="panics-20"><a class="doc-anchor" href="#panics-20">§</a>Panics</h5>
1435 <p>May panic if <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1436 <h5 id="examples-80"><a class="doc-anchor" href="#examples-80">§</a>Examples</h5>
1437 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
1438 v.sort_unstable_by(|a, b| a.cmp(b));
1439 <span class="macro">assert_eq!</span>(v, [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>]);
1440
1441 <span class="comment">// reverse sorting
1442 </span>v.sort_unstable_by(|a, b| b.cmp(a));
1443 <span class="macro">assert_eq!</span>(v, [<span class="number">4</span>, <span class="number">2</span>, <span class="number">1</span>, -<span class="number">3</span>, -<span class="number">5</span>]);</code></pre></div>
1444 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_unstable_by_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.20.0">1.20.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3064-3067">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable_by_key" class="fn">sort_unstable_by_key</a>&lt;K, F&gt;(&amp;mut self, f: F)<div class="where">where
1445 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; K,
1446 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice with a key extraction function, <strong>without</strong> preserving the initial order of
1447 equal elements.</p>
1448 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1449 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1450 <p>If the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a> the resulting
1451 order of elements in the slice is unspecified. All original elements will remain in the
1452 slice and any possible modifications via interior mutability are observed in the input. Same
1453 is true if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> panics.</p>
1454 <h5 id="current-implementation-2"><a class="doc-anchor" href="#current-implementation-2">§</a>Current implementation</h5>
1455 <p>The current implementation is based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll and Orson Peters, which
1456 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1457 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1458 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1459 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1460 slice is partially sorted.</p>
1461 <h5 id="panics-21"><a class="doc-anchor" href="#panics-21">§</a>Panics</h5>
1462 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1463 <h5 id="examples-81"><a class="doc-anchor" href="#examples-81">§</a>Examples</h5>
1464 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4i32</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
1465
1466 v.sort_unstable_by_key(|k| k.abs());
1467 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">4</span>, -<span class="number">5</span>]);</code></pre></div>
1468 </div></details><details class="toggle method-toggle" open><summary><section id="method.select_nth_unstable" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.49.0">1.49.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3126-3128">Source</a></span><h4 class="code-header">pub fn <a href="#method.select_nth_unstable" class="fn">select_nth_unstable</a>(
1469 &amp;mut self,
1470 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1471 ) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1472 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Reorders the slice such that the element at <code>index</code> after the reordering is at its final
1473 sorted position.</p>
1474 <p>This reordering has the additional property that any value at position <code>i &lt; index</code> will be
1475 less than or equal to any value at a position <code>j &gt; index</code>. Additionally, this reordering is
1476 unstable (i.e. any number of equal elements may end up at position <code>index</code>), in-place (i.e.
1477 does not allocate), and runs in <em>O</em>(<em>n</em>) time. This function is also known as “kth element”
1478 in other libraries.</p>
1479 <p>It returns a triplet of the following from the reordered slice: the subslice prior to
1480 <code>index</code>, the element at <code>index</code>, and the subslice after <code>index</code>; accordingly, the values in
1481 those two subslices will respectively all be less-than-or-equal-to and
1482 greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1483 <h5 id="current-implementation-3"><a class="doc-anchor" href="#current-implementation-3">§</a>Current implementation</h5>
1484 <p>The current algorithm is an introselect implementation based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll
1485 and Orson Peters, which is also the basis for <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable" title="method slice::sort_unstable"><code>sort_unstable</code></a>. The fallback algorithm is
1486 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1487 for all inputs.</p>
1488 <h5 id="panics-22"><a class="doc-anchor" href="#panics-22">§</a>Panics</h5>
1489 <p>Panics when <code>index &gt;= len()</code>, meaning it always panics on empty slices.</p>
1490 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1491 <h5 id="examples-82"><a class="doc-anchor" href="#examples-82">§</a>Examples</h5>
1492 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [-<span class="number">5i32</span>, <span class="number">4</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">1</span>];
1493
1494 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1495 // the median.
1496 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable(<span class="number">2</span>);
1497
1498 <span class="macro">assert!</span>(lesser == [-<span class="number">3</span>, -<span class="number">5</span>] || lesser == [-<span class="number">5</span>, -<span class="number">3</span>]);
1499 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&amp;mut </span><span class="number">1</span>);
1500 <span class="macro">assert!</span>(greater == [<span class="number">4</span>, <span class="number">2</span>] || greater == [<span class="number">2</span>, <span class="number">4</span>]);
1501
1502 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1503 // about the specified index.
1504 </span><span class="macro">assert!</span>(v == [-<span class="number">3</span>, -<span class="number">5</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>] ||
1505 v == [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>] ||
1506 v == [-<span class="number">3</span>, -<span class="number">5</span>, <span class="number">1</span>, <span class="number">4</span>, <span class="number">2</span>] ||
1507 v == [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">4</span>, <span class="number">2</span>]);</code></pre></div>
1508 </div></details><details class="toggle method-toggle" open><summary><section id="method.select_nth_unstable_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.49.0">1.49.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3187-3193">Source</a></span><h4 class="code-header">pub fn <a href="#method.select_nth_unstable_by" class="fn">select_nth_unstable_by</a>&lt;F&gt;(
1509 &amp;mut self,
1510 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1511 compare: F,
1512 ) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1513 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Reorders the slice with a comparator function such that the element at <code>index</code> after the
1514 reordering is at its final sorted position.</p>
1515 <p>This reordering has the additional property that any value at position <code>i &lt; index</code> will be
1516 less than or equal to any value at a position <code>j &gt; index</code> using the comparator function.
1517 Additionally, this reordering is unstable (i.e. any number of equal elements may end up at
1518 position <code>index</code>), in-place (i.e. does not allocate), and runs in <em>O</em>(<em>n</em>) time. This
1519 function is also known as “kth element” in other libraries.</p>
1520 <p>It returns a triplet of the following from the slice reordered according to the provided
1521 comparator function: the subslice prior to <code>index</code>, the element at <code>index</code>, and the subslice
1522 after <code>index</code>; accordingly, the values in those two subslices will respectively all be
1523 less-than-or-equal-to and greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1524 <h5 id="current-implementation-4"><a class="doc-anchor" href="#current-implementation-4">§</a>Current implementation</h5>
1525 <p>The current algorithm is an introselect implementation based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll
1526 and Orson Peters, which is also the basis for <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable" title="method slice::sort_unstable"><code>sort_unstable</code></a>. The fallback algorithm is
1527 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1528 for all inputs.</p>
1529 <h5 id="panics-23"><a class="doc-anchor" href="#panics-23">§</a>Panics</h5>
1530 <p>Panics when <code>index &gt;= len()</code>, meaning it always panics on empty slices.</p>
1531 <p>May panic if <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1532 <h5 id="examples-83"><a class="doc-anchor" href="#examples-83">§</a>Examples</h5>
1533 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [-<span class="number">5i32</span>, <span class="number">4</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">1</span>];
1534
1535 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1536 // the median as if the slice were sorted in descending order.
1537 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable_by(<span class="number">2</span>, |a, b| b.cmp(a));
1538
1539 <span class="macro">assert!</span>(lesser == [<span class="number">4</span>, <span class="number">2</span>] || lesser == [<span class="number">2</span>, <span class="number">4</span>]);
1540 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&amp;mut </span><span class="number">1</span>);
1541 <span class="macro">assert!</span>(greater == [-<span class="number">3</span>, -<span class="number">5</span>] || greater == [-<span class="number">5</span>, -<span class="number">3</span>]);
1542
1543 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1544 // about the specified index.
1545 </span><span class="macro">assert!</span>(v == [<span class="number">2</span>, <span class="number">4</span>, <span class="number">1</span>, -<span class="number">5</span>, -<span class="number">3</span>] ||
1546 v == [<span class="number">2</span>, <span class="number">4</span>, <span class="number">1</span>, -<span class="number">3</span>, -<span class="number">5</span>] ||
1547 v == [<span class="number">4</span>, <span class="number">2</span>, <span class="number">1</span>, -<span class="number">5</span>, -<span class="number">3</span>] ||
1548 v == [<span class="number">4</span>, <span class="number">2</span>, <span class="number">1</span>, -<span class="number">3</span>, -<span class="number">5</span>]);</code></pre></div>
1549 </div></details><details class="toggle method-toggle" open><summary><section id="method.select_nth_unstable_by_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.49.0">1.49.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3252-3259">Source</a></span><h4 class="code-header">pub fn <a href="#method.select_nth_unstable_by_key" class="fn">select_nth_unstable_by_key</a>&lt;K, F&gt;(
1550 &amp;mut self,
1551 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1552 f: F,
1553 ) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1554 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; K,
1555 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Reorders the slice with a key extraction function such that the element at <code>index</code> after the
1556 reordering is at its final sorted position.</p>
1557 <p>This reordering has the additional property that any value at position <code>i &lt; index</code> will be
1558 less than or equal to any value at a position <code>j &gt; index</code> using the key extraction function.
1559 Additionally, this reordering is unstable (i.e. any number of equal elements may end up at
1560 position <code>index</code>), in-place (i.e. does not allocate), and runs in <em>O</em>(<em>n</em>) time. This
1561 function is also known as “kth element” in other libraries.</p>
1562 <p>It returns a triplet of the following from the slice reordered according to the provided key
1563 extraction function: the subslice prior to <code>index</code>, the element at <code>index</code>, and the subslice
1564 after <code>index</code>; accordingly, the values in those two subslices will respectively all be
1565 less-than-or-equal-to and greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1566 <h5 id="current-implementation-5"><a class="doc-anchor" href="#current-implementation-5">§</a>Current implementation</h5>
1567 <p>The current algorithm is an introselect implementation based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">ipnsort</a> by Lukas Bergdoll
1568 and Orson Peters, which is also the basis for <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable" title="method slice::sort_unstable"><code>sort_unstable</code></a>. The fallback algorithm is
1569 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1570 for all inputs.</p>
1571 <h5 id="panics-24"><a class="doc-anchor" href="#panics-24">§</a>Panics</h5>
1572 <p>Panics when <code>index &gt;= len()</code>, meaning it always panics on empty slices.</p>
1573 <p>May panic if <code>K: Ord</code> does not implement a total order.</p>
1574 <h5 id="examples-84"><a class="doc-anchor" href="#examples-84">§</a>Examples</h5>
1575 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [-<span class="number">5i32</span>, <span class="number">4</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
1576
1577 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1578 // the median as if the slice were sorted according to absolute value.
1579 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable_by_key(<span class="number">2</span>, |a| a.abs());
1580
1581 <span class="macro">assert!</span>(lesser == [<span class="number">1</span>, <span class="number">2</span>] || lesser == [<span class="number">2</span>, <span class="number">1</span>]);
1582 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&amp;mut </span>-<span class="number">3</span>);
1583 <span class="macro">assert!</span>(greater == [<span class="number">4</span>, -<span class="number">5</span>] || greater == [-<span class="number">5</span>, <span class="number">4</span>]);
1584
1585 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1586 // about the specified index.
1587 </span><span class="macro">assert!</span>(v == [<span class="number">1</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">4</span>, -<span class="number">5</span>] ||
1588 v == [<span class="number">1</span>, <span class="number">2</span>, -<span class="number">3</span>, -<span class="number">5</span>, <span class="number">4</span>] ||
1589 v == [<span class="number">2</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">4</span>, -<span class="number">5</span>] ||
1590 v == [<span class="number">2</span>, <span class="number">1</span>, -<span class="number">3</span>, -<span class="number">5</span>, <span class="number">4</span>]);</code></pre></div>
1591 </div></details><details class="toggle method-toggle" open><summary><section id="method.partition_dedup" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3286-3288">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup" class="fn">partition_dedup</a>(&amp;mut self) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1592 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_partition_dedup</code>)</span></div></span></summary><div class="docblock"><p>Moves all consecutive repeated elements to the end of the slice according to the
1593 <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq"><code>PartialEq</code></a> trait implementation.</p>
1594 <p>Returns two slices. The first contains no consecutive repeated elements.
1595 The second contains all the duplicates in no specified order.</p>
1596 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1597 <h5 id="examples-85"><a class="doc-anchor" href="#examples-85">§</a>Examples</h5>
1598 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1599
1600 </span><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">1</span>];
1601
1602 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup();
1603
1604 <span class="macro">assert_eq!</span>(dedup, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>]);
1605 <span class="macro">assert_eq!</span>(duplicates, [<span class="number">2</span>, <span class="number">3</span>, <span class="number">1</span>]);</code></pre></div>
1606 </div></details><details class="toggle method-toggle" open><summary><section id="method.partition_dedup_by" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3320-3322">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup_by" class="fn">partition_dedup_by</a>&lt;F&gt;(&amp;mut self, same_bucket: F) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1607 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_partition_dedup</code>)</span></div></span></summary><div class="docblock"><p>Moves all but the first of consecutive elements to the end of the slice satisfying
1608 a given equality relation.</p>
1609 <p>Returns two slices. The first contains no consecutive repeated elements.
1610 The second contains all the duplicates in no specified order.</p>
1611 <p>The <code>same_bucket</code> function is passed references to two elements from the slice and
1612 must determine if the elements compare equal. The elements are passed in opposite order
1613 from their order in the slice, so if <code>same_bucket(a, b)</code> returns <code>true</code>, <code>a</code> is moved
1614 at the end of the slice.</p>
1615 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1616 <h5 id="examples-86"><a class="doc-anchor" href="#examples-86">§</a>Examples</h5>
1617 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1618
1619 </span><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="string">"foo"</span>, <span class="string">"Foo"</span>, <span class="string">"BAZ"</span>, <span class="string">"Bar"</span>, <span class="string">"bar"</span>, <span class="string">"baz"</span>, <span class="string">"BAZ"</span>];
1620
1621 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup_by(|a, b| a.eq_ignore_ascii_case(b));
1622
1623 <span class="macro">assert_eq!</span>(dedup, [<span class="string">"foo"</span>, <span class="string">"BAZ"</span>, <span class="string">"Bar"</span>, <span class="string">"baz"</span>]);
1624 <span class="macro">assert_eq!</span>(duplicates, [<span class="string">"bar"</span>, <span class="string">"Foo"</span>, <span class="string">"BAZ"</span>]);</code></pre></div>
1625 </div></details><details class="toggle method-toggle" open><summary><section id="method.partition_dedup_by_key" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3446-3449">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup_by_key" class="fn">partition_dedup_by_key</a>&lt;K, F&gt;(&amp;mut self, key: F) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1626 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>) -&gt; K,
1627 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_partition_dedup</code>)</span></div></span></summary><div class="docblock"><p>Moves all but the first of consecutive elements to the end of the slice that resolve
1628 to the same key.</p>
1629 <p>Returns two slices. The first contains no consecutive repeated elements.
1630 The second contains all the duplicates in no specified order.</p>
1631 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1632 <h5 id="examples-87"><a class="doc-anchor" href="#examples-87">§</a>Examples</h5>
1633 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1634
1635 </span><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">10</span>, <span class="number">20</span>, <span class="number">21</span>, <span class="number">30</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">11</span>, <span class="number">13</span>];
1636
1637 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup_by_key(|i| <span class="kw-2">*</span>i / <span class="number">10</span>);
1638
1639 <span class="macro">assert_eq!</span>(dedup, [<span class="number">10</span>, <span class="number">20</span>, <span class="number">30</span>, <span class="number">20</span>, <span class="number">11</span>]);
1640 <span class="macro">assert_eq!</span>(duplicates, [<span class="number">21</span>, <span class="number">30</span>, <span class="number">13</span>]);</code></pre></div>
1641 </div></details><details class="toggle method-toggle" open><summary><section id="method.rotate_left" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.26.0">1.26.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3487">Source</a></span><h4 class="code-header">pub fn <a href="#method.rotate_left" class="fn">rotate_left</a>(&amp;mut self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Rotates the slice in-place such that the first <code>mid</code> elements of the
1642 slice move to the end while the last <code>self.len() - mid</code> elements move to
1643 the front.</p>
1644 <p>After calling <code>rotate_left</code>, the element previously at index <code>mid</code> will
1645 become the first element in the slice.</p>
1646 <h5 id="panics-25"><a class="doc-anchor" href="#panics-25">§</a>Panics</h5>
1647 <p>This function will panic if <code>mid</code> is greater than the length of the
1648 slice. Note that <code>mid == self.len()</code> does <em>not</em> panic and is a no-op
1649 rotation.</p>
1650 <h5 id="complexity"><a class="doc-anchor" href="#complexity">§</a>Complexity</h5>
1651 <p>Takes linear (in <code>self.len()</code>) time.</p>
1652 <h5 id="examples-88"><a class="doc-anchor" href="#examples-88">§</a>Examples</h5>
1653 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>a = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'f'</span>];
1654 a.rotate_left(<span class="number">2</span>);
1655 <span class="macro">assert_eq!</span>(a, [<span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'f'</span>, <span class="string">'a'</span>, <span class="string">'b'</span>]);</code></pre></div>
1656 <p>Rotating a subslice:</p>
1657
1658 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>a = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'f'</span>];
1659 a[<span class="number">1</span>..<span class="number">5</span>].rotate_left(<span class="number">1</span>);
1660 <span class="macro">assert_eq!</span>(a, [<span class="string">'a'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'b'</span>, <span class="string">'f'</span>]);</code></pre></div>
1661 </div></details><details class="toggle method-toggle" open><summary><section id="method.rotate_right" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.26.0">1.26.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3532">Source</a></span><h4 class="code-header">pub fn <a href="#method.rotate_right" class="fn">rotate_right</a>(&amp;mut self, k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Rotates the slice in-place such that the first <code>self.len() - k</code>
1662 elements of the slice move to the end while the last <code>k</code> elements move
1663 to the front.</p>
1664 <p>After calling <code>rotate_right</code>, the element previously at index
1665 <code>self.len() - k</code> will become the first element in the slice.</p>
1666 <h5 id="panics-26"><a class="doc-anchor" href="#panics-26">§</a>Panics</h5>
1667 <p>This function will panic if <code>k</code> is greater than the length of the
1668 slice. Note that <code>k == self.len()</code> does <em>not</em> panic and is a no-op
1669 rotation.</p>
1670 <h5 id="complexity-1"><a class="doc-anchor" href="#complexity-1">§</a>Complexity</h5>
1671 <p>Takes linear (in <code>self.len()</code>) time.</p>
1672 <h5 id="examples-89"><a class="doc-anchor" href="#examples-89">§</a>Examples</h5>
1673 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>a = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'f'</span>];
1674 a.rotate_right(<span class="number">2</span>);
1675 <span class="macro">assert_eq!</span>(a, [<span class="string">'e'</span>, <span class="string">'f'</span>, <span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>]);</code></pre></div>
1676 <p>Rotating a subslice:</p>
1677
1678 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>a = [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>, <span class="string">'f'</span>];
1679 a[<span class="number">1</span>..<span class="number">5</span>].rotate_right(<span class="number">1</span>);
1680 <span class="macro">assert_eq!</span>(a, [<span class="string">'a'</span>, <span class="string">'e'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'f'</span>]);</code></pre></div>
1681 </div></details><details class="toggle method-toggle" open><summary><section id="method.fill" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3555-3557">Source</a></span><h4 class="code-header">pub fn <a href="#method.fill" class="fn">fill</a>(&amp;mut self, value: T)<div class="where">where
1682 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Fills <code>self</code> with elements by cloning <code>value</code>.</p>
1683 <h5 id="examples-90"><a class="doc-anchor" href="#examples-90">§</a>Examples</h5>
1684 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>buf = <span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">10</span>];
1685 buf.fill(<span class="number">1</span>);
1686 <span class="macro">assert_eq!</span>(buf, <span class="macro">vec!</span>[<span class="number">1</span>; <span class="number">10</span>]);</code></pre></div>
1687 </div></details><details class="toggle method-toggle" open><summary><section id="method.fill_with" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.51.0">1.51.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3579-3581">Source</a></span><h4 class="code-header">pub fn <a href="#method.fill_with" class="fn">fill_with</a>&lt;F&gt;(&amp;mut self, f: F)<div class="where">where
1688 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>() -&gt; T,</div></h4></section></summary><div class="docblock"><p>Fills <code>self</code> with elements returned by calling a closure repeatedly.</p>
1689 <p>This method uses a closure to create new values. If you’d rather
1690 <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone"><code>Clone</code></a> a given value, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.fill" title="method slice::fill"><code>fill</code></a>. If you want to use the <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default"><code>Default</code></a>
1691 trait to generate values, you can pass <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" title="associated function core::default::Default::default"><code>Default::default</code></a> as the
1692 argument.</p>
1693 <h5 id="examples-91"><a class="doc-anchor" href="#examples-91">§</a>Examples</h5>
1694 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>buf = <span class="macro">vec!</span>[<span class="number">1</span>; <span class="number">10</span>];
1695 buf.fill_with(Default::default);
1696 <span class="macro">assert_eq!</span>(buf, <span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">10</span>]);</code></pre></div>
1697 </div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from_slice" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.7.0">1.7.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3642-3644">Source</a></span><h4 class="code-header">pub fn <a href="#method.clone_from_slice" class="fn">clone_from_slice</a>(&amp;mut self, src: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1698 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Copies the elements from <code>src</code> into <code>self</code>.</p>
1699 <p>The length of <code>src</code> must be the same as <code>self</code>.</p>
1700 <h5 id="panics-27"><a class="doc-anchor" href="#panics-27">§</a>Panics</h5>
1701 <p>This function will panic if the two slices have different lengths.</p>
1702 <h5 id="examples-92"><a class="doc-anchor" href="#examples-92">§</a>Examples</h5>
1703 <p>Cloning two elements from a slice into another:</p>
1704
1705 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>src = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
1706 <span class="kw">let </span><span class="kw-2">mut </span>dst = [<span class="number">0</span>, <span class="number">0</span>];
1707
1708 <span class="comment">// Because the slices have to be the same length,
1709 // we slice the source slice from four elements
1710 // to two. It will panic if we don't do this.
1711 </span>dst.clone_from_slice(<span class="kw-2">&amp;</span>src[<span class="number">2</span>..]);
1712
1713 <span class="macro">assert_eq!</span>(src, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);
1714 <span class="macro">assert_eq!</span>(dst, [<span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
1715 <p>Rust enforces that there can only be one mutable reference with no
1716 immutable references to a particular piece of data in a particular
1717 scope. Because of this, attempting to use <code>clone_from_slice</code> on a
1718 single slice will result in a compile failure:</p>
1719
1720 <div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1721
1722 slice[..<span class="number">2</span>].clone_from_slice(<span class="kw-2">&amp;</span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1723 <p>To work around this, we can use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_mut" title="method slice::split_at_mut"><code>split_at_mut</code></a> to create two distinct
1724 sub-slices from a slice:</p>
1725
1726 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1727
1728 {
1729 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1730 left.clone_from_slice(<span class="kw-2">&amp;</span>right[<span class="number">1</span>..]);
1731 }
1732
1733 <span class="macro">assert_eq!</span>(slice, [<span class="number">4</span>, <span class="number">5</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);</code></pre></div>
1734 </div></details><details class="toggle method-toggle" open><summary><section id="method.copy_from_slice" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.9.0">1.9.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3707-3709">Source</a></span><h4 class="code-header">pub fn <a href="#method.copy_from_slice" class="fn">copy_from_slice</a>(&amp;mut self, src: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1735 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a>,</div></h4></section></summary><div class="docblock"><p>Copies all elements from <code>src</code> into <code>self</code>, using a memcpy.</p>
1736 <p>The length of <code>src</code> must be the same as <code>self</code>.</p>
1737 <p>If <code>T</code> does not implement <code>Copy</code>, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.clone_from_slice" title="method slice::clone_from_slice"><code>clone_from_slice</code></a>.</p>
1738 <h5 id="panics-28"><a class="doc-anchor" href="#panics-28">§</a>Panics</h5>
1739 <p>This function will panic if the two slices have different lengths.</p>
1740 <h5 id="examples-93"><a class="doc-anchor" href="#examples-93">§</a>Examples</h5>
1741 <p>Copying two elements from a slice into another:</p>
1742
1743 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>src = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
1744 <span class="kw">let </span><span class="kw-2">mut </span>dst = [<span class="number">0</span>, <span class="number">0</span>];
1745
1746 <span class="comment">// Because the slices have to be the same length,
1747 // we slice the source slice from four elements
1748 // to two. It will panic if we don't do this.
1749 </span>dst.copy_from_slice(<span class="kw-2">&amp;</span>src[<span class="number">2</span>..]);
1750
1751 <span class="macro">assert_eq!</span>(src, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);
1752 <span class="macro">assert_eq!</span>(dst, [<span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
1753 <p>Rust enforces that there can only be one mutable reference with no
1754 immutable references to a particular piece of data in a particular
1755 scope. Because of this, attempting to use <code>copy_from_slice</code> on a
1756 single slice will result in a compile failure:</p>
1757
1758 <div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1759
1760 slice[..<span class="number">2</span>].copy_from_slice(<span class="kw-2">&amp;</span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1761 <p>To work around this, we can use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_mut" title="method slice::split_at_mut"><code>split_at_mut</code></a> to create two distinct
1762 sub-slices from a slice:</p>
1763
1764 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1765
1766 {
1767 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1768 left.copy_from_slice(<span class="kw-2">&amp;</span>right[<span class="number">1</span>..]);
1769 }
1770
1771 <span class="macro">assert_eq!</span>(slice, [<span class="number">4</span>, <span class="number">5</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);</code></pre></div>
1772 </div></details><details class="toggle method-toggle" open><summary><section id="method.copy_within" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.37.0">1.37.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3763-3765">Source</a></span><h4 class="code-header">pub fn <a href="#method.copy_within" class="fn">copy_within</a>&lt;R&gt;(&amp;mut self, src: R, dest: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)<div class="where">where
1773 R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/range/trait.RangeBounds.html" title="trait core::ops::range::RangeBounds">RangeBounds</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,
1774 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a>,</div></h4></section></summary><div class="docblock"><p>Copies elements from one part of the slice to another part of itself,
1775 using a memmove.</p>
1776 <p><code>src</code> is the range within <code>self</code> to copy from. <code>dest</code> is the starting
1777 index of the range within <code>self</code> to copy to, which will have the same
1778 length as <code>src</code>. The two ranges may overlap. The ends of the two ranges
1779 must be less than or equal to <code>self.len()</code>.</p>
1780 <h5 id="panics-29"><a class="doc-anchor" href="#panics-29">§</a>Panics</h5>
1781 <p>This function will panic if either range exceeds the end of the slice,
1782 or if the end of <code>src</code> is before the start.</p>
1783 <h5 id="examples-94"><a class="doc-anchor" href="#examples-94">§</a>Examples</h5>
1784 <p>Copying four bytes within a slice:</p>
1785
1786 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>bytes = <span class="kw-2">*</span><span class="string">b"Hello, World!"</span>;
1787
1788 bytes.copy_within(<span class="number">1</span>..<span class="number">5</span>, <span class="number">8</span>);
1789
1790 <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>bytes, <span class="string">b"Hello, Wello!"</span>);</code></pre></div>
1791 </div></details><details class="toggle method-toggle" open><summary><section id="method.swap_with_slice" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.27.0">1.27.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3830">Source</a></span><h4 class="code-header">pub fn <a href="#method.swap_with_slice" class="fn">swap_with_slice</a>(&amp;mut self, other: &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Swaps all elements in <code>self</code> with those in <code>other</code>.</p>
1792 <p>The length of <code>other</code> must be the same as <code>self</code>.</p>
1793 <h5 id="panics-30"><a class="doc-anchor" href="#panics-30">§</a>Panics</h5>
1794 <p>This function will panic if the two slices have different lengths.</p>
1795 <h5 id="example"><a class="doc-anchor" href="#example">§</a>Example</h5>
1796 <p>Swapping two elements across slices:</p>
1797
1798 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice1 = [<span class="number">0</span>, <span class="number">0</span>];
1799 <span class="kw">let </span><span class="kw-2">mut </span>slice2 = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>];
1800
1801 slice1.swap_with_slice(<span class="kw-2">&amp;mut </span>slice2[<span class="number">2</span>..]);
1802
1803 <span class="macro">assert_eq!</span>(slice1, [<span class="number">3</span>, <span class="number">4</span>]);
1804 <span class="macro">assert_eq!</span>(slice2, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">0</span>]);</code></pre></div>
1805 <p>Rust enforces that there can only be one mutable reference to a
1806 particular piece of data in a particular scope. Because of this,
1807 attempting to use <code>swap_with_slice</code> on a single slice will result in
1808 a compile failure:</p>
1809
1810 <div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1811 slice[..<span class="number">2</span>].swap_with_slice(<span class="kw-2">&amp;mut </span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1812 <p>To work around this, we can use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_at_mut" title="method slice::split_at_mut"><code>split_at_mut</code></a> to create two distinct
1813 mutable sub-slices from a slice:</p>
1814
1815 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>slice = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
1816
1817 {
1818 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1819 left.swap_with_slice(<span class="kw-2">&amp;mut </span>right[<span class="number">1</span>..]);
1820 }
1821
1822 <span class="macro">assert_eq!</span>(slice, [<span class="number">4</span>, <span class="number">5</span>, <span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>]);</code></pre></div>
1823 </div></details><details class="toggle method-toggle" open><summary><section id="method.align_to" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3907">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.align_to" class="fn">align_to</a>&lt;U&gt;(&amp;self) -&gt; (&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[U]</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Transmutes the slice to a slice of another type, ensuring alignment of the types is
1824 maintained.</p>
1825 <p>This method splits the slice into three distinct slices: prefix, correctly aligned middle
1826 slice of a new type, and the suffix slice. The middle part will be as big as possible under
1827 the given alignment constraint and element size.</p>
1828 <p>This method has no purpose when either input element <code>T</code> or output element <code>U</code> are
1829 zero-sized and will return the original slice without splitting anything.</p>
1830 <h5 id="safety-8"><a class="doc-anchor" href="#safety-8">§</a>Safety</h5>
1831 <p>This method is essentially a <code>transmute</code> with respect to the elements in the returned
1832 middle slice, so all the usual caveats pertaining to <code>transmute::&lt;T, U&gt;</code> also apply here.</p>
1833 <h5 id="examples-95"><a class="doc-anchor" href="#examples-95">§</a>Examples</h5>
1834 <p>Basic usage:</p>
1835
1836 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">unsafe </span>{
1837 <span class="kw">let </span>bytes: [u8; <span class="number">7</span>] = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">7</span>];
1838 <span class="kw">let </span>(prefix, shorts, suffix) = bytes.align_to::&lt;u16&gt;();
1839 <span class="comment">// less_efficient_algorithm_for_bytes(prefix);
1840 // more_efficient_algorithm_for_aligned_shorts(shorts);
1841 // less_efficient_algorithm_for_bytes(suffix);
1842 </span>}</code></pre></div>
1843 </div></details><details class="toggle method-toggle" open><summary><section id="method.align_to_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#3972">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.align_to_mut" class="fn">align_to_mut</a>&lt;U&gt;(&amp;mut self) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[U]</a>, &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)</h4></section></summary><div class="docblock"><p>Transmutes the mutable slice to a mutable slice of another type, ensuring alignment of the
1844 types is maintained.</p>
1845 <p>This method splits the slice into three distinct slices: prefix, correctly aligned middle
1846 slice of a new type, and the suffix slice. The middle part will be as big as possible under
1847 the given alignment constraint and element size.</p>
1848 <p>This method has no purpose when either input element <code>T</code> or output element <code>U</code> are
1849 zero-sized and will return the original slice without splitting anything.</p>
1850 <h5 id="safety-9"><a class="doc-anchor" href="#safety-9">§</a>Safety</h5>
1851 <p>This method is essentially a <code>transmute</code> with respect to the elements in the returned
1852 middle slice, so all the usual caveats pertaining to <code>transmute::&lt;T, U&gt;</code> also apply here.</p>
1853 <h5 id="examples-96"><a class="doc-anchor" href="#examples-96">§</a>Examples</h5>
1854 <p>Basic usage:</p>
1855
1856 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">unsafe </span>{
1857 <span class="kw">let </span><span class="kw-2">mut </span>bytes: [u8; <span class="number">7</span>] = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">7</span>];
1858 <span class="kw">let </span>(prefix, shorts, suffix) = bytes.align_to_mut::&lt;u16&gt;();
1859 <span class="comment">// less_efficient_algorithm_for_bytes(prefix);
1860 // more_efficient_algorithm_for_aligned_shorts(shorts);
1861 // less_efficient_algorithm_for_bytes(suffix);
1862 </span>}</code></pre></div>
1863 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_simd" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4063-4067">Source</a><h4 class="code-header">pub fn <a href="#method.as_simd" class="fn">as_simd</a>&lt;const LANES: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(&amp;self) -&gt; (&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;[<a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/struct.Simd.html" title="struct core::core_simd::vector::Simd">Simd</a>&lt;T, LANES&gt;], &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1864 <a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/struct.Simd.html" title="struct core::core_simd::vector::Simd">Simd</a>&lt;T, LANES&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; LANES]</a>&gt;,
1865 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/trait.SimdElement.html" title="trait core::core_simd::vector::SimdElement">SimdElement</a>,
1866 <a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/lane_count/struct.LaneCount.html" title="struct core::core_simd::lane_count::LaneCount">LaneCount</a>&lt;LANES&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/core_simd/lane_count/trait.SupportedLaneCount.html" title="trait core::core_simd::lane_count::SupportedLaneCount">SupportedLaneCount</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>portable_simd</code>)</span></div></span></summary><div class="docblock"><p>Splits a slice into a prefix, a middle of aligned SIMD types, and a suffix.</p>
1867 <p>This is a safe wrapper around <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.align_to" title="method slice::align_to"><code>slice::align_to</code></a>, so inherits the same
1868 guarantees as that method.</p>
1869 <h5 id="panics-31"><a class="doc-anchor" href="#panics-31">§</a>Panics</h5>
1870 <p>This will panic if the size of the SIMD type is different from
1871 <code>LANES</code> times that of the scalar.</p>
1872 <p>At the time of writing, the trait restrictions on <code>Simd&lt;T, LANES&gt;</code> keeps
1873 that from ever happening, as only power-of-two numbers of lanes are
1874 supported. It’s possible that, in the future, those restrictions might
1875 be lifted in a way that would make it possible to see panics from this
1876 method for something like <code>LANES == 3</code>.</p>
1877 <h5 id="examples-97"><a class="doc-anchor" href="#examples-97">§</a>Examples</h5>
1878 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(portable_simd)]
1879 </span><span class="kw">use </span>core::simd::prelude::<span class="kw-2">*</span>;
1880
1881 <span class="kw">let </span>short = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
1882 <span class="kw">let </span>(prefix, middle, suffix) = short.as_simd::&lt;<span class="number">4</span>&gt;();
1883 <span class="macro">assert_eq!</span>(middle, []); <span class="comment">// Not enough elements for anything in the middle
1884
1885 // They might be split in any possible way between prefix and suffix
1886 </span><span class="kw">let </span>it = prefix.iter().chain(suffix).copied();
1887 <span class="macro">assert_eq!</span>(it.collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;(), <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
1888
1889 <span class="kw">fn </span>basic_simd_sum(x: <span class="kw-2">&amp;</span>[f32]) -&gt; f32 {
1890 <span class="kw">use </span>std::ops::Add;
1891 <span class="kw">let </span>(prefix, middle, suffix) = x.as_simd();
1892 <span class="kw">let </span>sums = f32x4::from_array([
1893 prefix.iter().copied().sum(),
1894 <span class="number">0.0</span>,
1895 <span class="number">0.0</span>,
1896 suffix.iter().copied().sum(),
1897 ]);
1898 <span class="kw">let </span>sums = middle.iter().copied().fold(sums, f32x4::add);
1899 sums.reduce_sum()
1900 }
1901
1902 <span class="kw">let </span>numbers: Vec&lt;f32&gt; = (<span class="number">1</span>..<span class="number">101</span>).map(|x| x <span class="kw">as _</span>).collect();
1903 <span class="macro">assert_eq!</span>(basic_simd_sum(<span class="kw-2">&amp;</span>numbers[<span class="number">1</span>..<span class="number">99</span>]), <span class="number">4949.0</span>);</code></pre></div>
1904 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_simd_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4099-4103">Source</a><h4 class="code-header">pub fn <a href="#method.as_simd_mut" class="fn">as_simd_mut</a>&lt;const LANES: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
1905 &amp;mut self,
1906 ) -&gt; (&amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &amp;mut [<a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/struct.Simd.html" title="struct core::core_simd::vector::Simd">Simd</a>&lt;T, LANES&gt;], &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1907 <a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/struct.Simd.html" title="struct core::core_simd::vector::Simd">Simd</a>&lt;T, LANES&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; LANES]</a>&gt;,
1908 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/core_simd/vector/trait.SimdElement.html" title="trait core::core_simd::vector::SimdElement">SimdElement</a>,
1909 <a class="struct" href="https://doc.rust-lang.org/nightly/core/core_simd/lane_count/struct.LaneCount.html" title="struct core::core_simd::lane_count::LaneCount">LaneCount</a>&lt;LANES&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/core_simd/lane_count/trait.SupportedLaneCount.html" title="trait core::core_simd::lane_count::SupportedLaneCount">SupportedLaneCount</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>portable_simd</code>)</span></div></span></summary><div class="docblock"><p>Splits a mutable slice into a mutable prefix, a middle of aligned SIMD types,
1910 and a mutable suffix.</p>
1911 <p>This is a safe wrapper around <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.align_to_mut" title="method slice::align_to_mut"><code>slice::align_to_mut</code></a>, so inherits the same
1912 guarantees as that method.</p>
1913 <p>This is the mutable version of <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_simd" title="method slice::as_simd"><code>slice::as_simd</code></a>; see that for examples.</p>
1914 <h5 id="panics-32"><a class="doc-anchor" href="#panics-32">§</a>Panics</h5>
1915 <p>This will panic if the size of the SIMD type is different from
1916 <code>LANES</code> times that of the scalar.</p>
1917 <p>At the time of writing, the trait restrictions on <code>Simd&lt;T, LANES&gt;</code> keeps
1918 that from ever happening, as only power-of-two numbers of lanes are
1919 supported. It’s possible that, in the future, those restrictions might
1920 be lifted in a way that would make it possible to see panics from this
1921 method for something like <code>LANES == 3</code>.</p>
1922 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.82.0">1.82.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4138-4140">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted" class="fn">is_sorted</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1923 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div class="docblock"><p>Checks if the elements of this slice are sorted.</p>
1924 <p>That is, for each element <code>a</code> and its following element <code>b</code>, <code>a &lt;= b</code> must hold. If the
1925 slice yields exactly zero or one element, <code>true</code> is returned.</p>
1926 <p>Note that if <code>Self::Item</code> is only <code>PartialOrd</code>, but not <code>Ord</code>, the above definition
1927 implies that this function returns <code>false</code> if any two consecutive items are not
1928 comparable.</p>
1929 <h5 id="examples-98"><a class="doc-anchor" href="#examples-98">§</a>Examples</h5>
1930 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>empty: [i32; <span class="number">0</span>] = [];
1931
1932 <span class="macro">assert!</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">9</span>].is_sorted());
1933 <span class="macro">assert!</span>(![<span class="number">1</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>].is_sorted());
1934 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted());
1935 <span class="macro">assert!</span>(empty.is_sorted());
1936 <span class="macro">assert!</span>(![<span class="number">0.0</span>, <span class="number">1.0</span>, f32::NAN].is_sorted());</code></pre></div>
1937 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.82.0">1.82.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4181-4183">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted_by" class="fn">is_sorted_by</a>&lt;'a, F&gt;(&amp;'a self, compare: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1938 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Checks if the elements of this slice are sorted using the given comparator function.</p>
1939 <p>Instead of using <code>PartialOrd::partial_cmp</code>, this function uses the given <code>compare</code>
1940 function to determine whether two elements are to be considered in sorted order.</p>
1941 <h5 id="examples-99"><a class="doc-anchor" href="#examples-99">§</a>Examples</h5>
1942 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert!</span>([<span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">9</span>].is_sorted_by(|a, b| a &lt;= b));
1943 <span class="macro">assert!</span>(![<span class="number">1</span>, <span class="number">2</span>, <span class="number">2</span>, <span class="number">9</span>].is_sorted_by(|a, b| a &lt; b));
1944
1945 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted_by(|a, b| <span class="bool-val">true</span>));
1946 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted_by(|a, b| <span class="bool-val">false</span>));
1947
1948 <span class="kw">let </span>empty: [i32; <span class="number">0</span>] = [];
1949 <span class="macro">assert!</span>(empty.is_sorted_by(|a, b| <span class="bool-val">false</span>));
1950 <span class="macro">assert!</span>(empty.is_sorted_by(|a, b| <span class="bool-val">true</span>));</code></pre></div>
1951 </div></details><details class="toggle method-toggle" open><summary><section id="method.is_sorted_by_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.82.0">1.82.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4205-4208">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted_by_key" class="fn">is_sorted_by_key</a>&lt;'a, F, K&gt;(&amp;'a self, f: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1952 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>) -&gt; K,
1953 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div class="docblock"><p>Checks if the elements of this slice are sorted using the given key extraction function.</p>
1954 <p>Instead of comparing the slice’s elements directly, this function compares the keys of the
1955 elements, as determined by <code>f</code>. Apart from that, it’s equivalent to <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted" title="method slice::is_sorted"><code>is_sorted</code></a>; see its
1956 documentation for more information.</p>
1957 <h5 id="examples-100"><a class="doc-anchor" href="#examples-100">§</a>Examples</h5>
1958 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert!</span>([<span class="string">"c"</span>, <span class="string">"bb"</span>, <span class="string">"aaa"</span>].is_sorted_by_key(|s| s.len()));
1959 <span class="macro">assert!</span>(![-<span class="number">2i32</span>, -<span class="number">1</span>, <span class="number">0</span>, <span class="number">3</span>].is_sorted_by_key(|n| n.abs()));</code></pre></div>
1960 </div></details><details class="toggle method-toggle" open><summary><section id="method.partition_point" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.52.0">1.52.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4264-4266">Source</a></span><h4 class="code-header">pub fn <a href="#method.partition_point" class="fn">partition_point</a>&lt;P&gt;(&amp;self, pred: P) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><div class="where">where
1961 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class="docblock"><p>Returns the index of the partition point according to the given predicate
1962 (the index of the first element of the second partition).</p>
1963 <p>The slice is assumed to be partitioned according to the given predicate.
1964 This means that all elements for which the predicate returns true are at the start of the slice
1965 and all elements for which the predicate returns false are at the end.
1966 For example, <code>[7, 15, 3, 5, 4, 12, 6]</code> is partitioned under the predicate <code>x % 2 != 0</code>
1967 (all odd numbers are at the start, all even at the end).</p>
1968 <p>If this slice is not partitioned, the returned result is unspecified and meaningless,
1969 as this method performs a kind of binary search.</p>
1970 <p>See also <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search" title="method slice::binary_search"><code>binary_search</code></a>, <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by" title="method slice::binary_search_by"><code>binary_search_by</code></a>, and <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.binary_search_by_key" title="method slice::binary_search_by_key"><code>binary_search_by_key</code></a>.</p>
1971 <h5 id="examples-101"><a class="doc-anchor" href="#examples-101">§</a>Examples</h5>
1972 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">7</span>];
1973 <span class="kw">let </span>i = v.partition_point(|<span class="kw-2">&amp;</span>x| x &lt; <span class="number">5</span>);
1974
1975 <span class="macro">assert_eq!</span>(i, <span class="number">4</span>);
1976 <span class="macro">assert!</span>(v[..i].iter().all(|<span class="kw-2">&amp;</span>x| x &lt; <span class="number">5</span>));
1977 <span class="macro">assert!</span>(v[i..].iter().all(|<span class="kw-2">&amp;</span>x| !(x &lt; <span class="number">5</span>)));</code></pre></div>
1978 <p>If all elements of the slice match the predicate, including if the slice
1979 is empty, then the length of the slice will be returned:</p>
1980
1981 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>a = [<span class="number">2</span>, <span class="number">4</span>, <span class="number">8</span>];
1982 <span class="macro">assert_eq!</span>(a.partition_point(|x| x &lt; <span class="kw-2">&amp;</span><span class="number">100</span>), a.len());
1983 <span class="kw">let </span>a: [i32; <span class="number">0</span>] = [];
1984 <span class="macro">assert_eq!</span>(a.partition_point(|x| x &lt; <span class="kw-2">&amp;</span><span class="number">100</span>), <span class="number">0</span>);</code></pre></div>
1985 <p>If you want to insert an item to a sorted vector, while maintaining
1986 sort order:</p>
1987
1988 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>s = <span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">55</span>];
1989 <span class="kw">let </span>num = <span class="number">42</span>;
1990 <span class="kw">let </span>idx = s.partition_point(|<span class="kw-2">&amp;</span>x| x &lt;= num);
1991 s.insert(idx, num);
1992 <span class="macro">assert_eq!</span>(s, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">8</span>, <span class="number">13</span>, <span class="number">21</span>, <span class="number">34</span>, <span class="number">42</span>, <span class="number">55</span>]);</code></pre></div>
1993 </div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4322">Source</a><h4 class="code-header">pub fn <a href="#method.take" class="fn">take</a>&lt;'a, R&gt;(self: &amp;mut &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, range: R) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;<div class="where">where
1994 R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/range/trait.OneSidedRange.html" title="trait core::ops::range::OneSidedRange">OneSidedRange</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the subslice corresponding to the given range
1995 and returns a reference to it.</p>
1996 <p>Returns <code>None</code> and does not modify the slice if the given
1997 range is out of bounds.</p>
1998 <p>Note that this method only accepts one-sided ranges such as
1999 <code>2..</code> or <code>..6</code>, but not <code>2..6</code>.</p>
2000 <h5 id="examples-102"><a class="doc-anchor" href="#examples-102">§</a>Examples</h5>
2001 <p>Taking the first three elements of a slice:</p>
2002
2003 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2004
2005 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;</span>[<span class="kw">_</span>] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2006 <span class="kw">let </span><span class="kw-2">mut </span>first_three = slice.take(..<span class="number">3</span>).unwrap();
2007
2008 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'d'</span>]);
2009 <span class="macro">assert_eq!</span>(first_three, <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);</code></pre></div>
2010 <p>Taking the last two elements of a slice:</p>
2011
2012 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2013
2014 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;</span>[<span class="kw">_</span>] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2015 <span class="kw">let </span><span class="kw-2">mut </span>tail = slice.take(<span class="number">2</span>..).unwrap();
2016
2017 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2018 <span class="macro">assert_eq!</span>(tail, <span class="kw-2">&amp;</span>[<span class="string">'c'</span>, <span class="string">'d'</span>]);</code></pre></div>
2019 <p>Getting <code>None</code> when <code>range</code> is out of bounds:</p>
2020
2021 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2022
2023 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;</span>[<span class="kw">_</span>] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2024
2025 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(<span class="number">5</span>..));
2026 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(..<span class="number">5</span>));
2027 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(..=<span class="number">4</span>));
2028 <span class="kw">let </span>expected: <span class="kw-2">&amp;</span>[char] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2029 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(expected), slice.take(..<span class="number">4</span>));</code></pre></div>
2030 </div></details><details class="toggle method-toggle" open><summary><section id="method.take_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4391-4394">Source</a><h4 class="code-header">pub fn <a href="#method.take_mut" class="fn">take_mut</a>&lt;'a, R&gt;(self: &amp;mut &amp;'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, range: R) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;<div class="where">where
2031 R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/range/trait.OneSidedRange.html" title="trait core::ops::range::OneSidedRange">OneSidedRange</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the subslice corresponding to the given range
2032 and returns a mutable reference to it.</p>
2033 <p>Returns <code>None</code> and does not modify the slice if the given
2034 range is out of bounds.</p>
2035 <p>Note that this method only accepts one-sided ranges such as
2036 <code>2..</code> or <code>..6</code>, but not <code>2..6</code>.</p>
2037 <h5 id="examples-103"><a class="doc-anchor" href="#examples-103">§</a>Examples</h5>
2038 <p>Taking the first three elements of a slice:</p>
2039
2040 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2041
2042 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2043 <span class="kw">let </span><span class="kw-2">mut </span>first_three = slice.take_mut(..<span class="number">3</span>).unwrap();
2044
2045 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;mut </span>[<span class="string">'d'</span>]);
2046 <span class="macro">assert_eq!</span>(first_three, <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);</code></pre></div>
2047 <p>Taking the last two elements of a slice:</p>
2048
2049 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2050
2051 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2052 <span class="kw">let </span><span class="kw-2">mut </span>tail = slice.take_mut(<span class="number">2</span>..).unwrap();
2053
2054 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2055 <span class="macro">assert_eq!</span>(tail, <span class="kw-2">&amp;mut </span>[<span class="string">'c'</span>, <span class="string">'d'</span>]);</code></pre></div>
2056 <p>Getting <code>None</code> when <code>range</code> is out of bounds:</p>
2057
2058 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2059
2060 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2061
2062 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(<span class="number">5</span>..));
2063 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(..<span class="number">5</span>));
2064 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(..=<span class="number">4</span>));
2065 <span class="kw">let </span>expected: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2066 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(expected), slice.take_mut(..<span class="number">4</span>));</code></pre></div>
2067 </div></details><details class="toggle method-toggle" open><summary><section id="method.take_first" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4430">Source</a><h4 class="code-header">pub fn <a href="#method.take_first" class="fn">take_first</a>&lt;'a&gt;(self: &amp;mut &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the first element of the slice and returns a reference
2068 to it.</p>
2069 <p>Returns <code>None</code> if the slice is empty.</p>
2070 <h5 id="examples-104"><a class="doc-anchor" href="#examples-104">§</a>Examples</h5>
2071 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2072
2073 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;</span>[<span class="kw">_</span>] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2074 <span class="kw">let </span>first = slice.take_first().unwrap();
2075
2076 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'b'</span>, <span class="string">'c'</span>]);
2077 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&amp;</span><span class="string">'a'</span>);</code></pre></div>
2078 </div></details><details class="toggle method-toggle" open><summary><section id="method.take_first_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4455">Source</a><h4 class="code-header">pub fn <a href="#method.take_first_mut" class="fn">take_first_mut</a>&lt;'a&gt;(self: &amp;mut &amp;'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut T</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the first element of the slice and returns a mutable
2079 reference to it.</p>
2080 <p>Returns <code>None</code> if the slice is empty.</p>
2081 <h5 id="examples-105"><a class="doc-anchor" href="#examples-105">§</a>Examples</h5>
2082 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2083
2084 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2085 <span class="kw">let </span>first = slice.take_first_mut().unwrap();
2086 <span class="kw-2">*</span>first = <span class="string">'d'</span>;
2087
2088 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'b'</span>, <span class="string">'c'</span>]);
2089 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&amp;</span><span class="string">'d'</span>);</code></pre></div>
2090 </div></details><details class="toggle method-toggle" open><summary><section id="method.take_last" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4479">Source</a><h4 class="code-header">pub fn <a href="#method.take_last" class="fn">take_last</a>&lt;'a&gt;(self: &amp;mut &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a T</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the last element of the slice and returns a reference
2091 to it.</p>
2092 <p>Returns <code>None</code> if the slice is empty.</p>
2093 <h5 id="examples-106"><a class="doc-anchor" href="#examples-106">§</a>Examples</h5>
2094 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2095
2096 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;</span>[<span class="kw">_</span>] = <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2097 <span class="kw">let </span>last = slice.take_last().unwrap();
2098
2099 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2100 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&amp;</span><span class="string">'c'</span>);</code></pre></div>
2101 </div></details><details class="toggle method-toggle" open><summary><section id="method.take_last_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4504">Source</a><h4 class="code-header">pub fn <a href="#method.take_last_mut" class="fn">take_last_mut</a>&lt;'a&gt;(self: &amp;mut &amp;'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut T</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>slice_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the last element of the slice and returns a mutable
2102 reference to it.</p>
2103 <p>Returns <code>None</code> if the slice is empty.</p>
2104 <h5 id="examples-107"><a class="doc-anchor" href="#examples-107">§</a>Examples</h5>
2105 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2106
2107 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&amp;mut </span>[<span class="kw">_</span>] = <span class="kw-2">&amp;mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2108 <span class="kw">let </span>last = slice.take_last_mut().unwrap();
2109 <span class="kw-2">*</span>last = <span class="string">'d'</span>;
2110
2111 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&amp;</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2112 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&amp;</span><span class="string">'d'</span>);</code></pre></div>
2113 </div></details><details class="toggle method-toggle" open><summary><section id="method.get_many_unchecked_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4560-4565">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.get_many_unchecked_mut" class="fn">get_many_unchecked_mut</a>&lt;I, const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
2114 &amp;mut self,
2115 indices: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[I; N]</a>,
2116 ) -&gt; [&amp;mut &lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">N</a>]<div class="where">where
2117 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.GetManyMutIndex.html" title="trait core::slice::GetManyMutIndex">GetManyMutIndex</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>get_many_mut</code>)</span></div></span></summary><div class="docblock"><p>Returns mutable references to many indices at once, without doing any checks.</p>
2118 <p>An index can be either a <code>usize</code>, a <a href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range"><code>Range</code></a> or a <a href="https://doc.rust-lang.org/nightly/core/ops/range/struct.RangeInclusive.html" title="struct core::ops::range::RangeInclusive"><code>RangeInclusive</code></a>. Note
2119 that this method takes an array, so all indices must be of the same type.
2120 If passed an array of <code>usize</code>s this method gives back an array of mutable references
2121 to single elements, while if passed an array of ranges it gives back an array of
2122 mutable references to slices.</p>
2123 <p>For a safe alternative see <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.get_many_mut" title="method slice::get_many_mut"><code>get_many_mut</code></a>.</p>
2124 <h5 id="safety-10"><a class="doc-anchor" href="#safety-10">§</a>Safety</h5>
2125 <p>Calling this method with overlapping or out-of-bounds indices is <em><a href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">undefined behavior</a></em>
2126 even if the resulting references are not used.</p>
2127 <h5 id="examples-108"><a class="doc-anchor" href="#examples-108">§</a>Examples</h5>
2128 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(get_many_mut)]
2129
2130 </span><span class="kw">let </span>x = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
2131
2132 <span class="kw">unsafe </span>{
2133 <span class="kw">let </span>[a, b] = x.get_many_unchecked_mut([<span class="number">0</span>, <span class="number">2</span>]);
2134 <span class="kw-2">*</span>a <span class="kw-2">*</span>= <span class="number">10</span>;
2135 <span class="kw-2">*</span>b <span class="kw-2">*</span>= <span class="number">100</span>;
2136 }
2137 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">10</span>, <span class="number">2</span>, <span class="number">400</span>]);
2138
2139 <span class="kw">unsafe </span>{
2140 <span class="kw">let </span>[a, b] = x.get_many_unchecked_mut([<span class="number">0</span>..<span class="number">1</span>, <span class="number">1</span>..<span class="number">3</span>]);
2141 a[<span class="number">0</span>] = <span class="number">8</span>;
2142 b[<span class="number">0</span>] = <span class="number">88</span>;
2143 b[<span class="number">1</span>] = <span class="number">888</span>;
2144 }
2145 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">8</span>, <span class="number">88</span>, <span class="number">888</span>]);
2146
2147 <span class="kw">unsafe </span>{
2148 <span class="kw">let </span>[a, b] = x.get_many_unchecked_mut([<span class="number">1</span>..=<span class="number">2</span>, <span class="number">0</span>..=<span class="number">0</span>]);
2149 a[<span class="number">0</span>] = <span class="number">11</span>;
2150 a[<span class="number">1</span>] = <span class="number">111</span>;
2151 b[<span class="number">0</span>] = <span class="number">1</span>;
2152 }
2153 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">11</span>, <span class="number">111</span>]);</code></pre></div>
2154 </div></details><details class="toggle method-toggle" open><summary><section id="method.get_many_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4629-4634">Source</a><h4 class="code-header">pub fn <a href="#method.get_many_mut" class="fn">get_many_mut</a>&lt;I, const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;(
2155 &amp;mut self,
2156 indices: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[I; N]</a>,
2157 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;[&amp;mut &lt;I as <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html#associatedtype.Output" title="type core::slice::index::SliceIndex::Output">Output</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">N</a>], <a class="enum" href="https://doc.rust-lang.org/nightly/core/slice/enum.GetManyMutError.html" title="enum core::slice::GetManyMutError">GetManyMutError</a>&gt;<div class="where">where
2158 I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.GetManyMutIndex.html" title="trait core::slice::GetManyMutIndex">GetManyMutIndex</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/index/trait.SliceIndex.html" title="trait core::slice::index::SliceIndex">SliceIndex</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>&gt;,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>get_many_mut</code>)</span></div></span></summary><div class="docblock"><p>Returns mutable references to many indices at once.</p>
2159 <p>An index can be either a <code>usize</code>, a <a href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range"><code>Range</code></a> or a <a href="https://doc.rust-lang.org/nightly/core/ops/range/struct.RangeInclusive.html" title="struct core::ops::range::RangeInclusive"><code>RangeInclusive</code></a>. Note
2160 that this method takes an array, so all indices must be of the same type.
2161 If passed an array of <code>usize</code>s this method gives back an array of mutable references
2162 to single elements, while if passed an array of ranges it gives back an array of
2163 mutable references to slices.</p>
2164 <p>Returns an error if any index is out-of-bounds, or if there are overlapping indices.
2165 An empty range is not considered to overlap if it is located at the beginning or at
2166 the end of another range, but is considered to overlap if it is located in the middle.</p>
2167 <p>This method does a O(n^2) check to check that there are no overlapping indices, so be careful
2168 when passing many indices.</p>
2169 <h5 id="examples-109"><a class="doc-anchor" href="#examples-109">§</a>Examples</h5>
2170 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(get_many_mut)]
2171
2172 </span><span class="kw">let </span>v = <span class="kw-2">&amp;mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
2173 <span class="kw">if let </span><span class="prelude-val">Ok</span>([a, b]) = v.get_many_mut([<span class="number">0</span>, <span class="number">2</span>]) {
2174 <span class="kw-2">*</span>a = <span class="number">413</span>;
2175 <span class="kw-2">*</span>b = <span class="number">612</span>;
2176 }
2177 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">413</span>, <span class="number">2</span>, <span class="number">612</span>]);
2178
2179 <span class="kw">if let </span><span class="prelude-val">Ok</span>([a, b]) = v.get_many_mut([<span class="number">0</span>..<span class="number">1</span>, <span class="number">1</span>..<span class="number">3</span>]) {
2180 a[<span class="number">0</span>] = <span class="number">8</span>;
2181 b[<span class="number">0</span>] = <span class="number">88</span>;
2182 b[<span class="number">1</span>] = <span class="number">888</span>;
2183 }
2184 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">8</span>, <span class="number">88</span>, <span class="number">888</span>]);
2185
2186 <span class="kw">if let </span><span class="prelude-val">Ok</span>([a, b]) = v.get_many_mut([<span class="number">1</span>..=<span class="number">2</span>, <span class="number">0</span>..=<span class="number">0</span>]) {
2187 a[<span class="number">0</span>] = <span class="number">11</span>;
2188 a[<span class="number">1</span>] = <span class="number">111</span>;
2189 b[<span class="number">0</span>] = <span class="number">1</span>;
2190 }
2191 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">11</span>, <span class="number">111</span>]);</code></pre></div>
2192 </div></details><details class="toggle method-toggle" open><summary><section id="method.elem_offset" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4684">Source</a><h4 class="code-header">pub fn <a href="#method.elem_offset" class="fn">elem_offset</a>(&amp;self, element: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>substr_range</code>)</span></div></span></summary><div class="docblock"><p>Returns the index that an element reference points to.</p>
2193 <p>Returns <code>None</code> if <code>element</code> does not point within the slice or if it points between elements.</p>
2194 <p>This method is useful for extending slice iterators like <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split" title="method slice::split"><code>slice::split</code></a>.</p>
2195 <p>Note that this uses pointer arithmetic and <strong>does not compare elements</strong>.
2196 To find the index of an element via comparison, use
2197 <a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.position" title="method core::iter::traits::iterator::Iterator::position"><code>.iter().position()</code></a> instead.</p>
2198 <h5 id="panics-33"><a class="doc-anchor" href="#panics-33">§</a>Panics</h5>
2199 <p>Panics if <code>T</code> is zero-sized.</p>
2200 <h5 id="examples-110"><a class="doc-anchor" href="#examples-110">§</a>Examples</h5>
2201 <p>Basic usage:</p>
2202
2203 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2204
2205 </span><span class="kw">let </span>nums: <span class="kw-2">&amp;</span>[u32] = <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">1</span>];
2206 <span class="kw">let </span>num = <span class="kw-2">&amp;</span>nums[<span class="number">2</span>];
2207
2208 <span class="macro">assert_eq!</span>(num, <span class="kw-2">&amp;</span><span class="number">1</span>);
2209 <span class="macro">assert_eq!</span>(nums.elem_offset(num), <span class="prelude-val">Some</span>(<span class="number">2</span>));</code></pre></div>
2210 <p>Returning <code>None</code> with an in-between element:</p>
2211
2212 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2213
2214 </span><span class="kw">let </span>arr: <span class="kw-2">&amp;</span>[[u32; <span class="number">2</span>]] = <span class="kw-2">&amp;</span>[[<span class="number">0</span>, <span class="number">1</span>], [<span class="number">2</span>, <span class="number">3</span>]];
2215 <span class="kw">let </span>flat_arr: <span class="kw-2">&amp;</span>[u32] = arr.as_flattened();
2216
2217 <span class="kw">let </span>ok_elm: <span class="kw-2">&amp;</span>[u32; <span class="number">2</span>] = flat_arr[<span class="number">0</span>..<span class="number">2</span>].try_into().unwrap();
2218 <span class="kw">let </span>weird_elm: <span class="kw-2">&amp;</span>[u32; <span class="number">2</span>] = flat_arr[<span class="number">1</span>..<span class="number">3</span>].try_into().unwrap();
2219
2220 <span class="macro">assert_eq!</span>(ok_elm, <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>]);
2221 <span class="macro">assert_eq!</span>(weird_elm, <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>]);
2222
2223 <span class="macro">assert_eq!</span>(arr.elem_offset(ok_elm), <span class="prelude-val">Some</span>(<span class="number">0</span>)); <span class="comment">// Points to element 0
2224 </span><span class="macro">assert_eq!</span>(arr.elem_offset(weird_elm), <span class="prelude-val">None</span>); <span class="comment">// Points between element 0 and 1</span></code></pre></div>
2225 </div></details><details class="toggle method-toggle" open><summary><section id="method.subslice_range" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4737">Source</a><h4 class="code-header">pub fn <a href="#method.subslice_range" class="fn">subslice_range</a>(&amp;self, subslice: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;&gt;</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>substr_range</code>)</span></div></span></summary><div class="docblock"><p>Returns the range of indices that a subslice points to.</p>
2226 <p>Returns <code>None</code> if <code>subslice</code> does not point within the slice or if it points between elements.</p>
2227 <p>This method <strong>does not compare elements</strong>. Instead, this method finds the location in the slice that
2228 <code>subslice</code> was obtained from. To find the index of a subslice via comparison, instead use
2229 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.windows" title="method slice::windows"><code>.windows()</code></a><a href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#method.position" title="method core::iter::traits::iterator::Iterator::position"><code>.position()</code></a>.</p>
2230 <p>This method is useful for extending slice iterators like <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split" title="method slice::split"><code>slice::split</code></a>.</p>
2231 <p>Note that this may return a false positive (either <code>Some(0..0)</code> or <code>Some(self.len()..self.len())</code>)
2232 if <code>subslice</code> has a length of zero and points to the beginning or end of another, separate, slice.</p>
2233 <h5 id="panics-34"><a class="doc-anchor" href="#panics-34">§</a>Panics</h5>
2234 <p>Panics if <code>T</code> is zero-sized.</p>
2235 <h5 id="examples-111"><a class="doc-anchor" href="#examples-111">§</a>Examples</h5>
2236 <p>Basic usage:</p>
2237
2238 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2239
2240 </span><span class="kw">let </span>nums = <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>, <span class="number">10</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">5</span>];
2241
2242 <span class="kw">let </span><span class="kw-2">mut </span>iter = nums
2243 .split(|t| <span class="kw-2">*</span>t == <span class="number">0</span>)
2244 .map(|n| nums.subslice_range(n).unwrap());
2245
2246 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">0</span>..<span class="number">0</span>));
2247 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">1</span>..<span class="number">3</span>));
2248 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">4</span>..<span class="number">4</span>));
2249 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">5</span>..<span class="number">6</span>));</code></pre></div>
2250 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_flattened" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4787">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_flattened" class="fn">as_flattened</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a></h4></section></summary><div class="docblock"><p>Takes a <code>&amp;[[T; N]]</code>, and flattens it to a <code>&amp;[T]</code>.</p>
2251 <h5 id="panics-35"><a class="doc-anchor" href="#panics-35">§</a>Panics</h5>
2252 <p>This panics if the length of the resulting slice would overflow a <code>usize</code>.</p>
2253 <p>This is only possible when flattening a slice of arrays of zero-sized
2254 types, and thus tends to be irrelevant in practice. If
2255 <code>size_of::&lt;T&gt;() &gt; 0</code>, this will never panic.</p>
2256 <h5 id="examples-112"><a class="doc-anchor" href="#examples-112">§</a>Examples</h5>
2257 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>], [<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]].as_flattened(), <span class="kw-2">&amp;</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]);
2258
2259 <span class="macro">assert_eq!</span>(
2260 [[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>], [<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>]].as_flattened(),
2261 [[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>], [<span class="number">5</span>, <span class="number">6</span>]].as_flattened(),
2262 );
2263
2264 <span class="kw">let </span>slice_of_empty_arrays: <span class="kw-2">&amp;</span>[[i32; <span class="number">0</span>]] = <span class="kw-2">&amp;</span>[[], [], [], [], []];
2265 <span class="macro">assert!</span>(slice_of_empty_arrays.as_flattened().is_empty());
2266
2267 <span class="kw">let </span>empty_slice_of_arrays: <span class="kw-2">&amp;</span>[[u32; <span class="number">10</span>]] = <span class="kw-2">&amp;</span>[];
2268 <span class="macro">assert!</span>(empty_slice_of_arrays.as_flattened().is_empty());</code></pre></div>
2269 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_flattened_mut" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4823">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_flattened_mut" class="fn">as_flattened_mut</a>(&amp;mut self) -&gt; &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a></h4></section></summary><div class="docblock"><p>Takes a <code>&amp;mut [[T; N]]</code>, and flattens it to a <code>&amp;mut [T]</code>.</p>
2270 <h5 id="panics-36"><a class="doc-anchor" href="#panics-36">§</a>Panics</h5>
2271 <p>This panics if the length of the resulting slice would overflow a <code>usize</code>.</p>
2272 <p>This is only possible when flattening a slice of arrays of zero-sized
2273 types, and thus tends to be irrelevant in practice. If
2274 <code>size_of::&lt;T&gt;() &gt; 0</code>, this will never panic.</p>
2275 <h5 id="examples-113"><a class="doc-anchor" href="#examples-113">§</a>Examples</h5>
2276 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">fn </span>add_5_to_all(slice: <span class="kw-2">&amp;mut </span>[i32]) {
2277 <span class="kw">for </span>i <span class="kw">in </span>slice {
2278 <span class="kw-2">*</span>i += <span class="number">5</span>;
2279 }
2280 }
2281
2282 <span class="kw">let </span><span class="kw-2">mut </span>array = [[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>], [<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>], [<span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>]];
2283 add_5_to_all(array.as_flattened_mut());
2284 <span class="macro">assert_eq!</span>(array, [[<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>], [<span class="number">9</span>, <span class="number">10</span>, <span class="number">11</span>], [<span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>]]);</code></pre></div>
2285 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_floats" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4860">Source</a><h4 class="code-header">pub fn <a href="#method.sort_floats" class="fn">sort_floats</a>(&amp;mut self)</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>sort_floats</code>)</span></div></span></summary><div class="docblock"><p>Sorts the slice of floats.</p>
2286 <p>This sort is in-place (i.e. does not allocate), <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case, and uses
2287 the ordering defined by <a href="https://doc.rust-lang.org/nightly/std/primitive.f32.html#method.total_cmp" title="method f32::total_cmp"><code>f32::total_cmp</code></a>.</p>
2288 <h5 id="current-implementation-6"><a class="doc-anchor" href="#current-implementation-6">§</a>Current implementation</h5>
2289 <p>This uses the same sorting algorithm as <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable_by" title="method slice::sort_unstable_by"><code>sort_unstable_by</code></a>.</p>
2290 <h5 id="examples-114"><a class="doc-anchor" href="#examples-114">§</a>Examples</h5>
2291 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(sort_floats)]
2292 </span><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">2.6</span>, -<span class="number">5e-8</span>, f32::NAN, <span class="number">8.29</span>, f32::INFINITY, -<span class="number">1.0</span>, <span class="number">0.0</span>, -f32::INFINITY, -<span class="number">0.0</span>];
2293
2294 v.sort_floats();
2295 <span class="kw">let </span>sorted = [-f32::INFINITY, -<span class="number">1.0</span>, -<span class="number">5e-8</span>, -<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">2.6</span>, <span class="number">8.29</span>, f32::INFINITY, f32::NAN];
2296 <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>v[..<span class="number">8</span>], <span class="kw-2">&amp;</span>sorted[..<span class="number">8</span>]);
2297 <span class="macro">assert!</span>(v[<span class="number">8</span>].is_nan());</code></pre></div>
2298 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_floats-1" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4889">Source</a><h4 class="code-header">pub fn <a href="#method.sort_floats-1" class="fn">sort_floats</a>(&amp;mut self)</h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>sort_floats</code>)</span></div></span></summary><div class="docblock"><p>Sorts the slice of floats.</p>
2299 <p>This sort is in-place (i.e. does not allocate), <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case, and uses
2300 the ordering defined by <a href="https://doc.rust-lang.org/nightly/std/primitive.f64.html#method.total_cmp" title="method f64::total_cmp"><code>f64::total_cmp</code></a>.</p>
2301 <h5 id="current-implementation-7"><a class="doc-anchor" href="#current-implementation-7">§</a>Current implementation</h5>
2302 <p>This uses the same sorting algorithm as <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable_by" title="method slice::sort_unstable_by"><code>sort_unstable_by</code></a>.</p>
2303 <h5 id="examples-115"><a class="doc-anchor" href="#examples-115">§</a>Examples</h5>
2304 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(sort_floats)]
2305 </span><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">2.6</span>, -<span class="number">5e-8</span>, f64::NAN, <span class="number">8.29</span>, f64::INFINITY, -<span class="number">1.0</span>, <span class="number">0.0</span>, -f64::INFINITY, -<span class="number">0.0</span>];
2306
2307 v.sort_floats();
2308 <span class="kw">let </span>sorted = [-f64::INFINITY, -<span class="number">1.0</span>, -<span class="number">5e-8</span>, -<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">2.6</span>, <span class="number">8.29</span>, f64::INFINITY, f64::NAN];
2309 <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>v[..<span class="number">8</span>], <span class="kw-2">&amp;</span>sorted[..<span class="number">8</span>]);
2310 <span class="macro">assert!</span>(v[<span class="number">8</span>].is_nan());</code></pre></div>
2311 </div></details><details class="toggle method-toggle" open><summary><section id="method.utf8_chunks" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.79.0">1.79.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/str/lossy.rs.html#44">Source</a></span><h4 class="code-header">pub fn <a href="#method.utf8_chunks" class="fn">utf8_chunks</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunks.html" title="struct core::str::lossy::Utf8Chunks">Utf8Chunks</a>&lt;'_&gt; <a href="#" class="tooltip" data-notable-ty="Utf8Chunks&lt;&#39;_&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Creates an iterator over the contiguous valid UTF-8 ranges of this
2312 slice, and the non-UTF-8 fragments in between.</p>
2313 <p>See the <a href="https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunk.html" title="struct core::str::lossy::Utf8Chunk"><code>Utf8Chunk</code></a> type for documenation of the items yielded by this iterator.</p>
2314 <h5 id="examples-116"><a class="doc-anchor" href="#examples-116">§</a>Examples</h5>
2315 <p>This function formats arbitrary but mostly-UTF-8 bytes into Rust source
2316 code in the form of a C-string literal (<code>c"..."</code>).</p>
2317
2318 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::fmt::Write <span class="kw">as _</span>;
2319
2320 <span class="kw">pub fn </span>cstr_literal(bytes: <span class="kw-2">&amp;</span>[u8]) -&gt; String {
2321 <span class="kw">let </span><span class="kw-2">mut </span>repr = String::new();
2322 repr.push_str(<span class="string">"c\""</span>);
2323 <span class="kw">for </span>chunk <span class="kw">in </span>bytes.utf8_chunks() {
2324 <span class="kw">for </span>ch <span class="kw">in </span>chunk.valid().chars() {
2325 <span class="comment">// Escapes \0, \t, \r, \n, \\, \', \", and uses \u{...} for non-printable characters.
2326 </span><span class="macro">write!</span>(repr, <span class="string">"{}"</span>, ch.escape_debug()).unwrap();
2327 }
2328 <span class="kw">for </span>byte <span class="kw">in </span>chunk.invalid() {
2329 <span class="macro">write!</span>(repr, <span class="string">"\\x{:02X}"</span>, byte).unwrap();
2330 }
2331 }
2332 repr.push(<span class="string">'"'</span>);
2333 repr
2334 }
2335
2336 <span class="kw">fn </span>main() {
2337 <span class="kw">let </span>lit = cstr_literal(<span class="string">b"\xferris the \xf0\x9f\xa6\x80\x07"</span>);
2338 <span class="kw">let </span>expected = <span class="macro">stringify!</span>(<span class="string">c"\xFErris the 🦀\u{7}"</span>);
2339 <span class="macro">assert_eq!</span>(lit, expected);
2340 }</code></pre></div>
2341 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#237-239">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort" class="fn">sort</a>(&amp;mut self)<div class="where">where
2342 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice, preserving initial order of equal elements.</p>
2343 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>n</em> * log(<em>n</em>))
2344 worst-case.</p>
2345 <p>If the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, the function
2346 may panic; even if the function exits normally, the resulting order of elements in the slice
2347 is unspecified. See also the note on panicking below.</p>
2348 <p>When applicable, unstable sorting is preferred because it is generally faster than stable
2349 sorting and it doesn’t allocate auxiliary memory. See
2350 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_unstable" title="method slice::sort_unstable"><code>sort_unstable</code></a>. The exception are partially sorted slices, which
2351 may be better served with <code>slice::sort</code>.</p>
2352 <p>Sorting types that only implement <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd"><code>PartialOrd</code></a> such as <a href="https://doc.rust-lang.org/nightly/std/primitive.f32.html" title="primitive f32"><code>f32</code></a> and <a href="https://doc.rust-lang.org/nightly/std/primitive.f64.html" title="primitive f64"><code>f64</code></a> require
2353 additional precautions. For example, <code>f32::NAN != f32::NAN</code>, which doesn’t fulfill the
2354 reflexivity requirement of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a>. By using an alternative comparison function with
2355 <code>slice::sort_by</code> such as <a href="https://doc.rust-lang.org/nightly/std/primitive.f32.html#method.total_cmp" title="method f32::total_cmp"><code>f32::total_cmp</code></a> or <a href="https://doc.rust-lang.org/nightly/std/primitive.f64.html#method.total_cmp" title="method f64::total_cmp"><code>f64::total_cmp</code></a> that defines a <a href="https://en.wikipedia.org/wiki/Total_order">total
2356 order</a> users can sort slices containing floating-point values. Alternatively, if all values
2357 in the slice are guaranteed to be in a subset for which <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" title="method core::cmp::PartialOrd::partial_cmp"><code>PartialOrd::partial_cmp</code></a> forms a
2358 <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, it’s possible to sort the slice with <code>sort_by(|a, b| a.partial_cmp(b).unwrap())</code>.</p>
2359 <h5 id="current-implementation-8"><a class="doc-anchor" href="#current-implementation-8">§</a>Current implementation</h5>
2360 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2361 combines the fast average case of quicksort with the fast worst case and partial run
2362 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2363 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2364 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2365 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2366 clamps at <code>self.len() / 2</code>.</p>
2367 <h5 id="panics-37"><a class="doc-anchor" href="#panics-37">§</a>Panics</h5>
2368 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>T</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, or if
2369 the <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> implementation itself panics.</p>
2370 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2371 original elements will remain in the slice and any possible modifications via interior
2372 mutability are observed in the input. This ensures that recovery code (for instance inside
2373 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2374 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2375 to dispose of all contained elements.</p>
2376 <h5 id="examples-117"><a class="doc-anchor" href="#examples-117">§</a>Examples</h5>
2377 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
2378
2379 v.sort();
2380 <span class="macro">assert_eq!</span>(v, [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>]);</code></pre></div>
2381 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_by" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#297-299">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_by" class="fn">sort_by</a>&lt;F&gt;(&amp;mut self, compare: F)<div class="where">where
2382 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice with a comparison function, preserving initial order of equal elements.</p>
2383 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>n</em> * log(<em>n</em>))
2384 worst-case.</p>
2385 <p>If the comparison function <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, the function may
2386 panic; even if the function exits normally, the resulting order of elements in the slice is
2387 unspecified. See also the note on panicking below.</p>
2388 <p>For example <code>|a, b| (a - b).cmp(a)</code> is a comparison function that is neither transitive nor
2389 reflexive nor total, <code>a &lt; b &lt; c &lt; a</code> with <code>a = 1, b = 2, c = 3</code>. For more information and
2390 examples see the <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> documentation.</p>
2391 <h5 id="current-implementation-9"><a class="doc-anchor" href="#current-implementation-9">§</a>Current implementation</h5>
2392 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2393 combines the fast average case of quicksort with the fast worst case and partial run
2394 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2395 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2396 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2397 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2398 clamps at <code>self.len() / 2</code>.</p>
2399 <h5 id="panics-38"><a class="doc-anchor" href="#panics-38">§</a>Panics</h5>
2400 <p>May panic if <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, or if <code>compare</code> itself panics.</p>
2401 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2402 original elements will remain in the slice and any possible modifications via interior
2403 mutability are observed in the input. This ensures that recovery code (for instance inside
2404 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2405 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2406 to dispose of all contained elements.</p>
2407 <h5 id="examples-118"><a class="doc-anchor" href="#examples-118">§</a>Examples</h5>
2408 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
2409 v.sort_by(|a, b| a.cmp(b));
2410 <span class="macro">assert_eq!</span>(v, [-<span class="number">5</span>, -<span class="number">3</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>]);
2411
2412 <span class="comment">// reverse sorting
2413 </span>v.sort_by(|a, b| b.cmp(a));
2414 <span class="macro">assert_eq!</span>(v, [<span class="number">4</span>, <span class="number">2</span>, <span class="number">1</span>, -<span class="number">3</span>, -<span class="number">5</span>]);</code></pre></div>
2415 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_by_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.7.0">1.7.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#351-354">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_by_key" class="fn">sort_by_key</a>&lt;K, F&gt;(&amp;mut self, f: F)<div class="where">where
2416 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; K,
2417 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice with a key extraction function, preserving initial order of equal elements.</p>
2418 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>m</em> * <em>n</em> * log(<em>n</em>))
2419 worst-case, where the key function is <em>O</em>(<em>m</em>).</p>
2420 <p>If the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, the function
2421 may panic; even if the function exits normally, the resulting order of elements in the slice
2422 is unspecified. See also the note on panicking below.</p>
2423 <h5 id="current-implementation-10"><a class="doc-anchor" href="#current-implementation-10">§</a>Current implementation</h5>
2424 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2425 combines the fast average case of quicksort with the fast worst case and partial run
2426 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2427 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2428 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2429 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2430 clamps at <code>self.len() / 2</code>.</p>
2431 <h5 id="panics-39"><a class="doc-anchor" href="#panics-39">§</a>Panics</h5>
2432 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, or if
2433 the <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> implementation or the key-function <code>f</code> panics.</p>
2434 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2435 original elements will remain in the slice and any possible modifications via interior
2436 mutability are observed in the input. This ensures that recovery code (for instance inside
2437 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2438 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2439 to dispose of all contained elements.</p>
2440 <h5 id="examples-119"><a class="doc-anchor" href="#examples-119">§</a>Examples</h5>
2441 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4i32</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>];
2442
2443 v.sort_by_key(|k| k.abs());
2444 <span class="macro">assert_eq!</span>(v, [<span class="number">1</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">4</span>, -<span class="number">5</span>]);</code></pre></div>
2445 </div></details><details class="toggle method-toggle" open><summary><section id="method.sort_by_cached_key" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.34.0">1.34.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#415-418">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_by_cached_key" class="fn">sort_by_cached_key</a>&lt;K, F&gt;(&amp;mut self, f: F)<div class="where">where
2446 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>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a>) -&gt; K,
2447 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Sorts the slice with a key extraction function, preserving initial order of equal elements.</p>
2448 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>m</em> * <em>n</em> + <em>n</em> *
2449 log(<em>n</em>)) worst-case, where the key function is <em>O</em>(<em>m</em>).</p>
2450 <p>During sorting, the key function is called at most once per element, by using temporary
2451 storage to remember the results of key evaluation. The order of calls to the key function is
2452 unspecified and may change in future versions of the standard library.</p>
2453 <p>If the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, the function
2454 may panic; even if the function exits normally, the resulting order of elements in the slice
2455 is unspecified. See also the note on panicking below.</p>
2456 <p>For simple key functions (e.g., functions that are property accesses or basic operations),
2457 <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_by_key" title="method slice::sort_by_key"><code>sort_by_key</code></a> is likely to be faster.</p>
2458 <h5 id="current-implementation-11"><a class="doc-anchor" href="#current-implementation-11">§</a>Current implementation</h5>
2459 <p>The current implementation is based on <a href="https://github.com/Voultapher/sort-research-rs/tree/main/ipnsort">instruction-parallel-network sort</a> by Lukas
2460 Bergdoll, which combines the fast average case of randomized quicksort with the fast worst
2461 case of heapsort, while achieving linear time on fully sorted and reversed inputs. And
2462 <em>O</em>(<em>k</em> * log(<em>n</em>)) where <em>k</em> is the number of distinct elements in the input. It leverages
2463 superscalar out-of-order execution capabilities commonly found in CPUs, to efficiently
2464 perform the operation.</p>
2465 <p>In the worst case, the algorithm allocates temporary storage in a <code>Vec&lt;(K, usize)&gt;</code> the
2466 length of the slice.</p>
2467 <h5 id="panics-40"><a class="doc-anchor" href="#panics-40">§</a>Panics</h5>
2468 <p>May panic if the implementation of <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> for <code>K</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>, or if
2469 the <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord"><code>Ord</code></a> implementation panics.</p>
2470 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2471 original elements will remain in the slice and any possible modifications via interior
2472 mutability are observed in the input. This ensures that recovery code (for instance inside
2473 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2474 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2475 to dispose of all contained elements.</p>
2476 <h5 id="examples-120"><a class="doc-anchor" href="#examples-120">§</a>Examples</h5>
2477 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>v = [<span class="number">4i32</span>, -<span class="number">5</span>, <span class="number">1</span>, -<span class="number">3</span>, <span class="number">2</span>, <span class="number">10</span>];
2478
2479 <span class="comment">// Strings are sorted by lexicographical order.
2480 </span>v.sort_by_cached_key(|k| k.to_string());
2481 <span class="macro">assert_eq!</span>(v, [-<span class="number">3</span>, -<span class="number">5</span>, <span class="number">1</span>, <span class="number">10</span>, <span class="number">2</span>, <span class="number">4</span>]);</code></pre></div>
2482 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_vec" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#475-477">Source</a></span><h4 class="code-header">pub fn <a href="#method.to_vec" class="fn">to_vec</a>(&amp;self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;T&gt;<div class="where">where
2483 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Copies <code>self</code> into a new <code>Vec</code>.</p>
2484 <h5 id="examples-121"><a class="doc-anchor" href="#examples-121">§</a>Examples</h5>
2485 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>s = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
2486 <span class="kw">let </span>x = s.to_vec();
2487 <span class="comment">// Here, `s` and `x` can be modified independently.</span></code></pre></div>
2488 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_vec_in" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#499-501">Source</a><h4 class="code-header">pub fn <a href="#method.to_vec_in" class="fn">to_vec_in</a>&lt;A&gt;(&amp;self, alloc: A) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;T, A&gt;<div class="where">where
2489 A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/trait.Allocator.html" title="trait core::alloc::Allocator">Allocator</a>,
2490 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>allocator_api</code>)</span></div></span></summary><div class="docblock"><p>Copies <code>self</code> into a new <code>Vec</code> with an allocator.</p>
2491 <h5 id="examples-122"><a class="doc-anchor" href="#examples-122">§</a>Examples</h5>
2492 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(allocator_api)]
2493
2494 </span><span class="kw">use </span>std::alloc::System;
2495
2496 <span class="kw">let </span>s = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
2497 <span class="kw">let </span>x = s.to_vec_in(System);
2498 <span class="comment">// Here, `s` and `x` can be modified independently.</span></code></pre></div>
2499 </div></details><details class="toggle method-toggle" open><summary><section id="method.repeat" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.40.0">1.40.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#553-555">Source</a></span><h4 class="code-header">pub fn <a href="#method.repeat" class="fn">repeat</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;T&gt;<div class="where">where
2500 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a>,</div></h4></section></summary><div class="docblock"><p>Creates a vector by copying a slice <code>n</code> times.</p>
2501 <h5 id="panics-41"><a class="doc-anchor" href="#panics-41">§</a>Panics</h5>
2502 <p>This function will panic if the capacity would overflow.</p>
2503 <h5 id="examples-123"><a class="doc-anchor" href="#examples-123">§</a>Examples</h5>
2504 <p>Basic usage:</p>
2505
2506 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="number">1</span>, <span class="number">2</span>].repeat(<span class="number">3</span>), <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">2</span>]);</code></pre></div>
2507 <p>A panic upon overflow:</p>
2508
2509 <div class="example-wrap should_panic"><a href="#" class="tooltip" title="This example panics">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="comment">// this will panic at runtime
2510 </span><span class="string">b"0123456789abcdef"</span>.repeat(usize::MAX);</code></pre></div>
2511 </div></details><details class="toggle method-toggle" open><summary><section id="method.concat" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#621-623">Source</a></span><h4 class="code-header">pub fn <a href="#method.concat" class="fn">concat</a>&lt;Item&gt;(&amp;self) -&gt; &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Concat.html" title="trait alloc::slice::Concat">Concat</a>&lt;Item&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Concat.html#associatedtype.Output" title="type alloc::slice::Concat::Output">Output</a> <a href="#" class="tooltip" data-notable-ty="&lt;[T] as Concat&lt;Item&gt;&gt;::Output">ⓘ</a><div class="where">where
2512 <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Concat.html" title="trait alloc::slice::Concat">Concat</a>&lt;Item&gt;,
2513 Item: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class="docblock"><p>Flattens a slice of <code>T</code> into a single value <code>Self::Output</code>.</p>
2514 <h5 id="examples-124"><a class="doc-anchor" href="#examples-124">§</a>Examples</h5>
2515 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">"hello"</span>, <span class="string">"world"</span>].concat(), <span class="string">"helloworld"</span>);
2516 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].concat(), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
2517 </div></details><details class="toggle method-toggle" open><summary><section id="method.join" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#640-642">Source</a></span><h4 class="code-header">pub fn <a href="#method.join" class="fn">join</a>&lt;Separator&gt;(
2518 &amp;self,
2519 sep: Separator,
2520 ) -&gt; &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html" title="trait alloc::slice::Join">Join</a>&lt;Separator&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html#associatedtype.Output" title="type alloc::slice::Join::Output">Output</a> <a href="#" class="tooltip" data-notable-ty="&lt;[T] as Join&lt;Separator&gt;&gt;::Output">ⓘ</a><div class="where">where
2521 <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html" title="trait alloc::slice::Join">Join</a>&lt;Separator&gt;,</div></h4></section></summary><div class="docblock"><p>Flattens a slice of <code>T</code> into a single value <code>Self::Output</code>, placing a
2522 given separator between each.</p>
2523 <h5 id="examples-125"><a class="doc-anchor" href="#examples-125">§</a>Examples</h5>
2524 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">"hello"</span>, <span class="string">"world"</span>].join(<span class="string">" "</span>), <span class="string">"hello world"</span>);
2525 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].join(<span class="kw-2">&amp;</span><span class="number">0</span>), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);
2526 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].join(<span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">0</span>][..]), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
2527 </div></details><details class="toggle method-toggle" open><summary><section id="method.connect" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#660-662">Source</a></span><h4 class="code-header">pub fn <a href="#method.connect" class="fn">connect</a>&lt;Separator&gt;(
2528 &amp;self,
2529 sep: Separator,
2530 ) -&gt; &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html" title="trait alloc::slice::Join">Join</a>&lt;Separator&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html#associatedtype.Output" title="type alloc::slice::Join::Output">Output</a> <a href="#" class="tooltip" data-notable-ty="&lt;[T] as Join&lt;Separator&gt;&gt;::Output">ⓘ</a><div class="where">where
2531 <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/slice/trait.Join.html" title="trait alloc::slice::Join">Join</a>&lt;Separator&gt;,</div></h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.3.0: renamed to join</span></div></span></summary><div class="docblock"><p>Flattens a slice of <code>T</code> into a single value <code>Self::Output</code>, placing a
2532 given separator between each.</p>
2533 <h5 id="examples-126"><a class="doc-anchor" href="#examples-126">§</a>Examples</h5>
2534 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">"hello"</span>, <span class="string">"world"</span>].connect(<span class="string">" "</span>), <span class="string">"hello world"</span>);
2535 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].connect(<span class="kw-2">&amp;</span><span class="number">0</span>), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
2536 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_ascii_uppercase" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#685">Source</a></span><h4 class="code-header">pub fn <a href="#method.to_ascii_uppercase" class="fn">to_ascii_uppercase</a>(&amp;self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt; <a href="#" class="tooltip" data-notable-ty="Vec&lt;u8&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a vector containing a copy of this slice where each byte
2537 is mapped to its ASCII upper case equivalent.</p>
2538 <p>ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’,
2539 but non-ASCII letters are unchanged.</p>
2540 <p>To uppercase the value in-place, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.make_ascii_uppercase" title="method slice::make_ascii_uppercase"><code>make_ascii_uppercase</code></a>.</p>
2541 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_ascii_lowercase" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.23.0">1.23.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/alloc/slice.rs.html#706">Source</a></span><h4 class="code-header">pub fn <a href="#method.to_ascii_lowercase" class="fn">to_ascii_lowercase</a>(&amp;self) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt; <a href="#" class="tooltip" data-notable-ty="Vec&lt;u8&gt;">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a vector containing a copy of this slice where each byte
2542 is mapped to its ASCII lower case equivalent.</p>
2543 <p>ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’,
2544 but non-ASCII letters are unchanged.</p>
2545 <p>To lowercase the value in-place, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.make_ascii_lowercase" title="method slice::make_ascii_lowercase"><code>make_ascii_lowercase</code></a>.</p>
2546 </div></details></div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-AsMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_mut" class="method trait-impl"><a href="#method.as_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html#tymethod.as_mut" class="fn">as_mut</a>(&amp;mut self) -&gt; &amp;mut [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsRef%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-AsRef%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl"><a href="#method.as_ref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fn">as_ref</a>(&amp;self) -&gt; &amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Borrow%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-Borrow%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; &amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BorrowMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-BorrowMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TaprootMerkleBranch" class="impl"><a href="#impl-Clone-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <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="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#174">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-TaprootMerkleBranch" class="impl"><a href="#impl-Debug-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <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="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-TaprootMerkleBranch" class="impl"><a href="#impl-Default-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deref-for-TaprootMerkleBranch" class="impl"><a href="#impl-Deref-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl"><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl"><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&amp;self) -&gt; &amp;&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-DerefMut-for-TaprootMerkleBranch" class="impl"><a href="#impl-DerefMut-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl"><a href="#method.deref_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html#tymethod.deref_mut" class="fn">deref_mut</a>(&amp;mut self) -&gt; &amp;mut &lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Mutably dereferences the value.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C'de%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-Deserialize%3C'de%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl&lt;'de&gt; <a class="trait" href="../hashes/serde/trait.Deserialize.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserialize">Deserialize</a>&lt;'de&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="../hashes/serde/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a>&lt;__D&gt;(
2547 __deserializer: __D,
2548 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, &lt;__D as <a class="trait" href="../hashes/serde/trait.Deserializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserializer">Deserializer</a>&lt;'de&gt;&gt;::<a class="associatedtype" href="../hashes/serde/trait.Deserializer.html#associatedtype.Error" title="type bdk_chain::bitcoin::hashes::serde::Deserializer::Error">Error</a>&gt;<div class="where">where
2549 __D: <a class="trait" href="../hashes/serde/trait.Deserializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="../hashes/serde/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+0%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+0%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">0</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">0</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+1%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+1%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">1</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">1</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+10%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+10%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">10</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-10" class="method trait-impl"><a href="#method.from-10" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">10</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+100%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+100%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">100</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-100" class="method trait-impl"><a href="#method.from-100" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">100</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+101%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+101%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">101</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-101" class="method trait-impl"><a href="#method.from-101" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">101</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+102%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+102%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">102</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-102" class="method trait-impl"><a href="#method.from-102" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">102</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+103%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+103%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">103</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-103" class="method trait-impl"><a href="#method.from-103" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">103</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+104%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+104%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">104</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-104" class="method trait-impl"><a href="#method.from-104" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">104</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+105%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+105%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">105</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-105" class="method trait-impl"><a href="#method.from-105" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">105</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+106%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+106%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">106</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-106" class="method trait-impl"><a href="#method.from-106" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">106</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+107%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+107%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">107</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-107" class="method trait-impl"><a href="#method.from-107" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">107</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+108%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+108%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">108</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-108" class="method trait-impl"><a href="#method.from-108" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">108</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+109%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+109%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">109</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-109" class="method trait-impl"><a href="#method.from-109" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">109</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+11%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+11%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">11</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-11" class="method trait-impl"><a href="#method.from-11" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">11</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+110%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+110%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">110</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-110" class="method trait-impl"><a href="#method.from-110" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">110</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+111%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+111%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">111</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-111" class="method trait-impl"><a href="#method.from-111" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">111</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+112%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+112%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">112</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-112" class="method trait-impl"><a href="#method.from-112" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">112</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+113%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+113%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">113</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-113" class="method trait-impl"><a href="#method.from-113" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">113</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+114%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+114%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">114</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-114" class="method trait-impl"><a href="#method.from-114" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">114</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+115%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+115%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">115</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-115" class="method trait-impl"><a href="#method.from-115" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">115</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+116%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+116%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">116</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-116" class="method trait-impl"><a href="#method.from-116" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">116</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+117%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+117%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">117</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-117" class="method trait-impl"><a href="#method.from-117" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">117</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+118%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+118%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">118</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-118" class="method trait-impl"><a href="#method.from-118" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">118</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+119%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+119%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">119</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-119" class="method trait-impl"><a href="#method.from-119" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">119</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+12%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+12%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">12</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a href="#method.from-12" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">12</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+120%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+120%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">120</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-120" class="method trait-impl"><a href="#method.from-120" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">120</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+121%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+121%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">121</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-121" class="method trait-impl"><a href="#method.from-121" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">121</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+122%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+122%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">122</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-122" class="method trait-impl"><a href="#method.from-122" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">122</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+123%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+123%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">123</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-123" class="method trait-impl"><a href="#method.from-123" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">123</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+124%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+124%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">124</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-124" class="method trait-impl"><a href="#method.from-124" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">124</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+125%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+125%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">125</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-125" class="method trait-impl"><a href="#method.from-125" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">125</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+126%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+126%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">126</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-126" class="method trait-impl"><a href="#method.from-126" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">126</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+127%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+127%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">127</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-127" class="method trait-impl"><a href="#method.from-127" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">127</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+128%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+128%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">128</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-128" class="method trait-impl"><a href="#method.from-128" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">128</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+13%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+13%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">13</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-13" class="method trait-impl"><a href="#method.from-13" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">13</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+14%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+14%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">14</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-14" class="method trait-impl"><a href="#method.from-14" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">14</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+15%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+15%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">15</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-15" class="method trait-impl"><a href="#method.from-15" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">15</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+16%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+16%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">16</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-16" class="method trait-impl"><a href="#method.from-16" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">16</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+17%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+17%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">17</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-17" class="method trait-impl"><a href="#method.from-17" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">17</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+18%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+18%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">18</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-18" class="method trait-impl"><a href="#method.from-18" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">18</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+19%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+19%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">19</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-19" class="method trait-impl"><a href="#method.from-19" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">19</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+2%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+2%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">2</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl"><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">2</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+20%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+20%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">20</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-20" class="method trait-impl"><a href="#method.from-20" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">20</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+21%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+21%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">21</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-21" class="method trait-impl"><a href="#method.from-21" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">21</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+22%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+22%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">22</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-22" class="method trait-impl"><a href="#method.from-22" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">22</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+23%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+23%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">23</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-23" class="method trait-impl"><a href="#method.from-23" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">23</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+24%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+24%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">24</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-24" class="method trait-impl"><a href="#method.from-24" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">24</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+25%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+25%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">25</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-25" class="method trait-impl"><a href="#method.from-25" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">25</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+26%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+26%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">26</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-26" class="method trait-impl"><a href="#method.from-26" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">26</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+27%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+27%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">27</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-27" class="method trait-impl"><a href="#method.from-27" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">27</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+28%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+28%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">28</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-28" class="method trait-impl"><a href="#method.from-28" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">28</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+29%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+29%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">29</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-29" class="method trait-impl"><a href="#method.from-29" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">29</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+3%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+3%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">3</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl"><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">3</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+30%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+30%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">30</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-30" class="method trait-impl"><a href="#method.from-30" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">30</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+31%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+31%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">31</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-31" class="method trait-impl"><a href="#method.from-31" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">31</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+32%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+32%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-32" class="method trait-impl"><a href="#method.from-32" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">32</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+33%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+33%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">33</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-33" class="method trait-impl"><a href="#method.from-33" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">33</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+34%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+34%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">34</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-34" class="method trait-impl"><a href="#method.from-34" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">34</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+35%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+35%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">35</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-35" class="method trait-impl"><a href="#method.from-35" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">35</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+36%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+36%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">36</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-36" class="method trait-impl"><a href="#method.from-36" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">36</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+37%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+37%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">37</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-37" class="method trait-impl"><a href="#method.from-37" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">37</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+38%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+38%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">38</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-38" class="method trait-impl"><a href="#method.from-38" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">38</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+39%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+39%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">39</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-39" class="method trait-impl"><a href="#method.from-39" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">39</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+4%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+4%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">4</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl"><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">4</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+40%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+40%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">40</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-40" class="method trait-impl"><a href="#method.from-40" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">40</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+41%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+41%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">41</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-41" class="method trait-impl"><a href="#method.from-41" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">41</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+42%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+42%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">42</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-42" class="method trait-impl"><a href="#method.from-42" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">42</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+43%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+43%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">43</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-43" class="method trait-impl"><a href="#method.from-43" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">43</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+44%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+44%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">44</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-44" class="method trait-impl"><a href="#method.from-44" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">44</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+45%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+45%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">45</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-45" class="method trait-impl"><a href="#method.from-45" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">45</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+46%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+46%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">46</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-46" class="method trait-impl"><a href="#method.from-46" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">46</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+47%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+47%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">47</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-47" class="method trait-impl"><a href="#method.from-47" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">47</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+48%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+48%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">48</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-48" class="method trait-impl"><a href="#method.from-48" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">48</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+49%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+49%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">49</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-49" class="method trait-impl"><a href="#method.from-49" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">49</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+5%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+5%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">5</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl"><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">5</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+50%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+50%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">50</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-50" class="method trait-impl"><a href="#method.from-50" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">50</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+51%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+51%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">51</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-51" class="method trait-impl"><a href="#method.from-51" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">51</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+52%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+52%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">52</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-52" class="method trait-impl"><a href="#method.from-52" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">52</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+53%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+53%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">53</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-53" class="method trait-impl"><a href="#method.from-53" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">53</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+54%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+54%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">54</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-54" class="method trait-impl"><a href="#method.from-54" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">54</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+55%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+55%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">55</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-55" class="method trait-impl"><a href="#method.from-55" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">55</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+56%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+56%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">56</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-56" class="method trait-impl"><a href="#method.from-56" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">56</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+57%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+57%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">57</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-57" class="method trait-impl"><a href="#method.from-57" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">57</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+58%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+58%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">58</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-58" class="method trait-impl"><a href="#method.from-58" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">58</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+59%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+59%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">59</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-59" class="method trait-impl"><a href="#method.from-59" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">59</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+6%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+6%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">6</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl"><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">6</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+60%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+60%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">60</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-60" class="method trait-impl"><a href="#method.from-60" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">60</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+61%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+61%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">61</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-61" class="method trait-impl"><a href="#method.from-61" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">61</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+62%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+62%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">62</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-62" class="method trait-impl"><a href="#method.from-62" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">62</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+63%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+63%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">63</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-63" class="method trait-impl"><a href="#method.from-63" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">63</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+64%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+64%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">64</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-64" class="method trait-impl"><a href="#method.from-64" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">64</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+65%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+65%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">65</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-65" class="method trait-impl"><a href="#method.from-65" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">65</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+66%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+66%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">66</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-66" class="method trait-impl"><a href="#method.from-66" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">66</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+67%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+67%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">67</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-67" class="method trait-impl"><a href="#method.from-67" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">67</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+68%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+68%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">68</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-68" class="method trait-impl"><a href="#method.from-68" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">68</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+69%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+69%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">69</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-69" class="method trait-impl"><a href="#method.from-69" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">69</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+7%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+7%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">7</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl"><a href="#method.from-7" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">7</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+70%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+70%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">70</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-70" class="method trait-impl"><a href="#method.from-70" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">70</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+71%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+71%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">71</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-71" class="method trait-impl"><a href="#method.from-71" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">71</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+72%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+72%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">72</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-72" class="method trait-impl"><a href="#method.from-72" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">72</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+73%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+73%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">73</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-73" class="method trait-impl"><a href="#method.from-73" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">73</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+74%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+74%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">74</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-74" class="method trait-impl"><a href="#method.from-74" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">74</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+75%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+75%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">75</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-75" class="method trait-impl"><a href="#method.from-75" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">75</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+76%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+76%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">76</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-76" class="method trait-impl"><a href="#method.from-76" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">76</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+77%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+77%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">77</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-77" class="method trait-impl"><a href="#method.from-77" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">77</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+78%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+78%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">78</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-78" class="method trait-impl"><a href="#method.from-78" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">78</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+79%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+79%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">79</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-79" class="method trait-impl"><a href="#method.from-79" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">79</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+8%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+8%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">8</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl"><a href="#method.from-8" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">8</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+80%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+80%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">80</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-80" class="method trait-impl"><a href="#method.from-80" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">80</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+81%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+81%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">81</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-81" class="method trait-impl"><a href="#method.from-81" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">81</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+82%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+82%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">82</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-82" class="method trait-impl"><a href="#method.from-82" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">82</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+83%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+83%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">83</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-83" class="method trait-impl"><a href="#method.from-83" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">83</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+84%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+84%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">84</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-84" class="method trait-impl"><a href="#method.from-84" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">84</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+85%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+85%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">85</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-85" class="method trait-impl"><a href="#method.from-85" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">85</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+86%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+86%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">86</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-86" class="method trait-impl"><a href="#method.from-86" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">86</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+87%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+87%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">87</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-87" class="method trait-impl"><a href="#method.from-87" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">87</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+88%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+88%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">88</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-88" class="method trait-impl"><a href="#method.from-88" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">88</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+89%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+89%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">89</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-89" class="method trait-impl"><a href="#method.from-89" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">89</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+9%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+9%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">9</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-9" class="method trait-impl"><a href="#method.from-9" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">9</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+90%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+90%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">90</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-90" class="method trait-impl"><a href="#method.from-90" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">90</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+91%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+91%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">91</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-91" class="method trait-impl"><a href="#method.from-91" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">91</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+92%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+92%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">92</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-92" class="method trait-impl"><a href="#method.from-92" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">92</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+93%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+93%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">93</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-93" class="method trait-impl"><a href="#method.from-93" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">93</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+94%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+94%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">94</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-94" class="method trait-impl"><a href="#method.from-94" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">94</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+95%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+95%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">95</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-95" class="method trait-impl"><a href="#method.from-95" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">95</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+96%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+96%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">96</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-96" class="method trait-impl"><a href="#method.from-96" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">96</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+97%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+97%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">97</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-97" class="method trait-impl"><a href="#method.from-97" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">97</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+98%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+98%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">98</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-98" class="method trait-impl"><a href="#method.from-98" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">98</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5BTapNodeHash;+99%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-From%3C%5BTapNodeHash;+99%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">99</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-99" class="method trait-impl"><a href="#method.from-99" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(a: [<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">99</a>]) -&gt; <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CTaprootMerkleBranch%3E-for-Vec%3CTapNodeHash%3E" class="impl"><a href="#impl-From%3CTaprootMerkleBranch%3E-for-Vec%3CTapNodeHash%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>&gt; for <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-129" class="method trait-impl"><a href="#method.from-129" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(branch: <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -&gt; <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Hash-for-TaprootMerkleBranch" class="impl"><a href="#impl-Hash-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a>&lt;__H&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut __H</a>)<div class="where">where
2550 __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</div></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#235-237">Source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a>&lt;H&gt;(data: &amp;[Self], state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut H</a>)<div class="where">where
2551 H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
2552 Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-IntoIterator-for-%26TaprootMerkleBranch" class="impl"><a href="#impl-IntoIterator-for-%26TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <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> for &amp;'a <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.IntoIter-1" class="associatedtype trait-impl"><a href="#associatedtype.IntoIter-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" class="associatedtype">IntoIter</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Iter.html" title="struct core::slice::iter::Iter">Iter</a>&lt;'a, <a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details><details class="toggle" open><summary><section id="associatedtype.Item-1" class="associatedtype trait-impl"><a href="#associatedtype.Item-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = &amp;'a <a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a></h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_iter-1" class="method trait-impl"><a href="#method.into_iter-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter" class="fn">into_iter</a>(self) -&gt; &lt;&amp;'a <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> 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>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" title="type core::iter::traits::collect::IntoIterator::IntoIter">IntoIter</a></h4></section></summary><div class='docblock'>Creates an iterator from a value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-IntoIterator-for-%26mut+TaprootMerkleBranch" class="impl"><a href="#impl-IntoIterator-for-%26mut+TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <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> for &amp;'a mut <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.IntoIter-2" class="associatedtype trait-impl"><a href="#associatedtype.IntoIter-2" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" class="associatedtype">IntoIter</a> = <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.IterMut.html" title="struct core::slice::iter::IterMut">IterMut</a>&lt;'a, <a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;</h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details><details class="toggle" open><summary><section id="associatedtype.Item-2" class="associatedtype trait-impl"><a href="#associatedtype.Item-2" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = &amp;'a mut <a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a></h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_iter-2" class="method trait-impl"><a href="#method.into_iter-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter" class="fn">into_iter</a>(self) -&gt; &lt;&amp;'a mut <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> 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>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" title="type core::iter::traits::collect::IntoIterator::IntoIter">IntoIter</a></h4></section></summary><div class='docblock'>Creates an iterator from a value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-IntoIterator-for-TaprootMerkleBranch" class="impl"><a href="#impl-IntoIterator-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <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> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.IntoIter" class="associatedtype trait-impl"><a href="#associatedtype.IntoIter" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" class="associatedtype">IntoIter</a> = <a class="struct" href="merkle_branch/struct.IntoIter.html" title="struct bdk_chain::bitcoin::taproot::merkle_branch::IntoIter">IntoIter</a></h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a></h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_iter" class="method trait-impl"><a href="#method.into_iter" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter" class="fn">into_iter</a>(self) -&gt; &lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> 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>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" title="type core::iter::traits::collect::IntoIterator::IntoIter">IntoIter</a></h4></section></summary><div class='docblock'>Creates an iterator from a value. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Ord-for-TaprootMerkleBranch" class="impl"><a href="#impl-Ord-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl"><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&amp;self, other: &amp;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#980-982">Source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -&gt; Self<div class="where">where
2553 Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1001-1003">Source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -&gt; Self<div class="where">where
2554 Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1027-1029">Source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -&gt; Self<div class="where">where
2555 Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-TaprootMerkleBranch" class="impl"><a href="#impl-PartialEq-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#261">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
2556 and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-TaprootMerkleBranch" class="impl"><a href="#impl-PartialOrd-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl"><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&amp;self, other: &amp;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>&gt;</h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1335">Source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than (for <code>self</code> and <code>other</code>) and is used by the <code>&lt;</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1353">Source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the
2557 <code>&lt;=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1371">Source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>&gt;</code>
2558 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1389">Source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by
2559 the <code>&gt;=</code> operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-TaprootMerkleBranch" class="impl"><a href="#impl-Serialize-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../hashes/serde/trait.Serialize.html" title="trait bdk_chain::bitcoin::hashes::serde::Serialize">Serialize</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.serialize-1" class="method trait-impl"><a href="#method.serialize-1" class="anchor">§</a><h4 class="code-header">fn <a href="../hashes/serde/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a>&lt;__S&gt;(
2560 &amp;self,
2561 __serializer: __S,
2562 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;__S as <a class="trait" href="../hashes/serde/trait.Serializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="../hashes/serde/trait.Serializer.html#associatedtype.Ok" title="type bdk_chain::bitcoin::hashes::serde::Serializer::Ok">Ok</a>, &lt;__S as <a class="trait" href="../hashes/serde/trait.Serializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="../hashes/serde/trait.Serializer.html#associatedtype.Error" title="type bdk_chain::bitcoin::hashes::serde::Serializer::Error">Error</a>&gt;<div class="where">where
2563 __S: <a class="trait" href="../hashes/serde/trait.Serializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="../hashes/serde/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3C%26%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-TryFrom%3C%26%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;&amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(
2564 v: &amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>],
2565 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, &lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;&amp;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Creates a merkle proof from list of hashes.</p>
2566 <h5 id="errors-1"><a class="doc-anchor" href="#errors-1">§</a>Errors</h5>
2567 <p>If inner proof length is more than <a href="constant.TAPROOT_CONTROL_MAX_NODE_COUNT.html" title="constant bdk_chain::bitcoin::taproot::TAPROOT_CONTROL_MAX_NODE_COUNT"><code>TAPROOT_CONTROL_MAX_NODE_COUNT</code></a> (128).</p>
2568 </div></details><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="enum.TaprootError.html" title="enum bdk_chain::bitcoin::taproot::TaprootError">TaprootError</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3CBox%3C%5BTapNodeHash%5D%3E%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-TryFrom%3CBox%3C%5BTapNodeHash%5D%3E%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt;&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_from-2" class="method trait-impl"><a href="#method.try_from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(
2569 v: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt;,
2570 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, &lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;[<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]&gt;&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Creates a merkle proof from list of hashes.</p>
2571 <h5 id="errors-3"><a class="doc-anchor" href="#errors-3">§</a>Errors</h5>
2572 <p>If inner proof length is more than <a href="constant.TAPROOT_CONTROL_MAX_NODE_COUNT.html" title="constant bdk_chain::bitcoin::taproot::TAPROOT_CONTROL_MAX_NODE_COUNT"><code>TAPROOT_CONTROL_MAX_NODE_COUNT</code></a> (128).</p>
2573 </div></details><details class="toggle" open><summary><section id="associatedtype.Error-2" class="associatedtype trait-impl"><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="enum.TaprootError.html" title="enum bdk_chain::bitcoin::taproot::TaprootError">TaprootError</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3CVec%3CTapNodeHash%3E%3E-for-TaprootMerkleBranch" class="impl"><a href="#impl-TryFrom%3CVec%3CTapNodeHash%3E%3E-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;<a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;&gt; for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_from-1" class="method trait-impl"><a href="#method.try_from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(
2574 v: <a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;,
2575 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, &lt;<a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a> as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;<a class="struct" href="../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a>&lt;<a class="struct" href="../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>&gt;&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Creates a merkle proof from list of hashes.</p>
2576 <h5 id="errors-2"><a class="doc-anchor" href="#errors-2">§</a>Errors</h5>
2577 <p>If inner proof length is more than <a href="constant.TAPROOT_CONTROL_MAX_NODE_COUNT.html" title="constant bdk_chain::bitcoin::taproot::TAPROOT_CONTROL_MAX_NODE_COUNT"><code>TAPROOT_CONTROL_MAX_NODE_COUNT</code></a> (128).</p>
2578 </div></details><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="enum.TaprootError.html" title="enum bdk_chain::bitcoin::taproot::TaprootError">TaprootError</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details></div></details><section id="impl-Eq-for-TaprootMerkleBranch" class="impl"><a href="#impl-Eq-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-StructuralPartialEq-for-TaprootMerkleBranch" class="impl"><a href="#impl-StructuralPartialEq-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-TaprootMerkleBranch" class="impl"><a href="#impl-Freeze-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-RefUnwindSafe-for-TaprootMerkleBranch" class="impl"><a href="#impl-RefUnwindSafe-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-Send-for-TaprootMerkleBranch" class="impl"><a href="#impl-Send-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-Sync-for-TaprootMerkleBranch" class="impl"><a href="#impl-Sync-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-Unpin-for-TaprootMerkleBranch" class="impl"><a href="#impl-Unpin-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section><section id="impl-UnwindSafe-for-TaprootMerkleBranch" class="impl"><a href="#impl-UnwindSafe-for-TaprootMerkleBranch" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
2579 T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
2580 T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">Source</a><a href="#method.borrow-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
2581 T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">Source</a><a href="#method.borrow_mut-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#273">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
2582 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#275">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dst: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dst</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Q" class="impl"><a href="#impl-Equivalent%3CK%3E-for-Q" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Equivalent&lt;K&gt; for Q<div class="where">where
2583 Q: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
2584 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent" class="method trait-impl"><a href="#method.equivalent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Checks if this value is equivalent to the given key. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#767">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-130" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#770">Source</a><a href="#method.from-130" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
2585 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#750-752">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
2586 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
2587 <p>That is, this conversion is whatever the implementation of
2588 <code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
2589 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Receiver-for-P" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ops/deref.rs.html#418-420">Source</a><a href="#impl-Receiver-for-P" class="anchor">§</a><h3 class="code-header">impl&lt;P, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Receiver.html" title="trait core::ops::deref::Receiver">Receiver</a> for P<div class="where">where
2590 P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
2591 T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Target-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ops/deref.rs.html#422">Source</a><a href="#associatedtype.Target-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Receiver.html#associatedtype.Target" class="associatedtype">Target</a> = T</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>arbitrary_self_types</code>)</span></div></span><div class='docblock'>The target type on which the method may be called.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82-84">Source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
2592 T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#86">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#807-809">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
2593 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-4" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#811">Source</a><a href="#associatedtype.Error-4" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from-3" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#814">Source</a><a href="#method.try_from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#792-794">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
2594 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-3" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#796">Source</a><a href="#associatedtype.Error-3" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#799">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-T" class="impl"><a href="#impl-VZip%3CV%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;V, T&gt; VZip&lt;V&gt; for T<div class="where">where
2595 V: MultiLane&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><section id="impl-DeserializeOwned-for-T" class="impl"><a class="src rightside" href="https://docs.rs/serde/1.0.216/src/serde/de/mod.rs.html#614">Source</a><a href="#impl-DeserializeOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../hashes/serde/de/trait.DeserializeOwned.html" title="trait bdk_chain::bitcoin::hashes::serde::de::DeserializeOwned">DeserializeOwned</a> for T<div class="where">where
2596 T: for&lt;'de&gt; <a class="trait" href="../hashes/serde/trait.Deserialize.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</code></h3><pre><code><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for &amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</div>","<[T] as Concat<Item>>::Output":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</code></h3><pre><code><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for &amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</div><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for &amp;mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</div>","<[T] as Join<Separator>>::Output":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</code></h3><pre><code><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for &amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</div><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for &amp;mut [<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>]</div>","ArrayChunks<'_, T, N>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunks.html\" title=\"struct core::slice::iter::ArrayChunks\">ArrayChunks</a>&lt;'a, T, N&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunks.html\" title=\"struct core::slice::iter::ArrayChunks\">ArrayChunks</a>&lt;'a, T, N&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">[T; N]</a>;</div>","ArrayChunksMut<'_, T, N>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunksMut.html\" title=\"struct core::slice::iter::ArrayChunksMut\">ArrayChunksMut</a>&lt;'a, T, N&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunksMut.html\" title=\"struct core::slice::iter::ArrayChunksMut\">ArrayChunksMut</a>&lt;'a, T, N&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">[T; N]</a>;</div>","ArrayWindows<'_, T, N>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayWindows.html\" title=\"struct core::slice::iter::ArrayWindows\">ArrayWindows</a>&lt;'a, T, N&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayWindows.html\" title=\"struct core::slice::iter::ArrayWindows\">ArrayWindows</a>&lt;'a, T, N&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.array.html\">[T; N]</a>;</div>","ChunkBy<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkBy.html\" title=\"struct core::slice::iter::ChunkBy\">ChunkBy</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkBy.html\" title=\"struct core::slice::iter::ChunkBy\">ChunkBy</a>&lt;'a, T, P&gt;<div class=\"where\">where\n T: 'a,\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","ChunkByMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkByMut.html\" title=\"struct core::slice::iter::ChunkByMut\">ChunkByMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkByMut.html\" title=\"struct core::slice::iter::ChunkByMut\">ChunkByMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n T: 'a,\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","Chunks<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Chunks.html\" title=\"struct core::slice::iter::Chunks\">Chunks</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Chunks.html\" title=\"struct core::slice::iter::Chunks\">Chunks</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","ChunksExact<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExact.html\" title=\"struct core::slice::iter::ChunksExact\">ChunksExact</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExact.html\" title=\"struct core::slice::iter::ChunksExact\">ChunksExact</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","ChunksExactMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExactMut.html\" title=\"struct core::slice::iter::ChunksExactMut\">ChunksExactMut</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExactMut.html\" title=\"struct core::slice::iter::ChunksExactMut\">ChunksExactMut</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","ChunksMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksMut.html\" title=\"struct core::slice::iter::ChunksMut\">ChunksMut</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksMut.html\" title=\"struct core::slice::iter::ChunksMut\">ChunksMut</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","EscapeAscii<'_>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/ascii/struct.EscapeAscii.html\" title=\"struct core::slice::ascii::EscapeAscii\">EscapeAscii</a>&lt;'a&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/ascii/struct.EscapeAscii.html\" title=\"struct core::slice::ascii::EscapeAscii\">EscapeAscii</a>&lt;'a&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>;</div>","Iter<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Iter.html\" title=\"struct core::slice::iter::Iter\">Iter</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Iter.html\" title=\"struct core::slice::iter::Iter\">Iter</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;'a T</a>;</div>","IterMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.IterMut.html\" title=\"struct core::slice::iter::IterMut\">IterMut</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.IterMut.html\" title=\"struct core::slice::iter::IterMut\">IterMut</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;'a mut T</a>;</div>","RChunks<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunks.html\" title=\"struct core::slice::iter::RChunks\">RChunks</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunks.html\" title=\"struct core::slice::iter::RChunks\">RChunks</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RChunksExact<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExact.html\" title=\"struct core::slice::iter::RChunksExact\">RChunksExact</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExact.html\" title=\"struct core::slice::iter::RChunksExact\">RChunksExact</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RChunksExactMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExactMut.html\" title=\"struct core::slice::iter::RChunksExactMut\">RChunksExactMut</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExactMut.html\" title=\"struct core::slice::iter::RChunksExactMut\">RChunksExactMut</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RChunksMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksMut.html\" title=\"struct core::slice::iter::RChunksMut\">RChunksMut</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksMut.html\" title=\"struct core::slice::iter::RChunksMut\">RChunksMut</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RSplit<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplit.html\" title=\"struct core::slice::iter::RSplit\">RSplit</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplit.html\" title=\"struct core::slice::iter::RSplit\">RSplit</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RSplitMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitMut.html\" title=\"struct core::slice::iter::RSplitMut\">RSplitMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitMut.html\" title=\"struct core::slice::iter::RSplitMut\">RSplitMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RSplitN<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitN.html\" title=\"struct core::slice::iter::RSplitN\">RSplitN</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitN.html\" title=\"struct core::slice::iter::RSplitN\">RSplitN</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","RSplitNMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitNMut.html\" title=\"struct core::slice::iter::RSplitNMut\">RSplitNMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitNMut.html\" title=\"struct core::slice::iter::RSplitNMut\">RSplitNMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","Range<*const T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html\" title=\"struct core::ops::range::Range\">Range</a>&lt;A&gt;</code></h3><pre><code><div class=\"where\">impl&lt;A&gt; <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=\"https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html\" title=\"struct core::ops::range::Range\">Range</a>&lt;A&gt;<div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/range/trait.Step.html\" title=\"trait core::iter::range::Step\">Step</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = A;</div>","Range<*mut T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html\" title=\"struct core::ops::range::Range\">Range</a>&lt;A&gt;</code></h3><pre><code><div class=\"where\">impl&lt;A&gt; <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=\"https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html\" title=\"struct core::ops::range::Range\">Range</a>&lt;A&gt;<div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/range/trait.Step.html\" title=\"trait core::iter::range::Step\">Step</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = A;</div>","Split<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Split.html\" title=\"struct core::slice::iter::Split\">Split</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Split.html\" title=\"struct core::slice::iter::Split\">Split</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","SplitInclusive<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusive.html\" title=\"struct core::slice::iter::SplitInclusive\">SplitInclusive</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusive.html\" title=\"struct core::slice::iter::SplitInclusive\">SplitInclusive</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","SplitInclusiveMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusiveMut.html\" title=\"struct core::slice::iter::SplitInclusiveMut\">SplitInclusiveMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusiveMut.html\" title=\"struct core::slice::iter::SplitInclusiveMut\">SplitInclusiveMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","SplitMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitMut.html\" title=\"struct core::slice::iter::SplitMut\">SplitMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitMut.html\" title=\"struct core::slice::iter::SplitMut\">SplitMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","SplitN<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitN.html\" title=\"struct core::slice::iter::SplitN\">SplitN</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitN.html\" title=\"struct core::slice::iter::SplitN\">SplitN</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","SplitNMut<'_, T, F>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitNMut.html\" title=\"struct core::slice::iter::SplitNMut\">SplitNMut</a>&lt;'a, T, P&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T, P&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitNMut.html\" title=\"struct core::slice::iter::SplitNMut\">SplitNMut</a>&lt;'a, T, P&gt;<div class=\"where\">where\n 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>(<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&amp;T</a>) -&gt; <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>,</div></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a mut <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>","Utf8Chunks<'_>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunks.html\" title=\"struct core::str::lossy::Utf8Chunks\">Utf8Chunks</a>&lt;'a&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a&gt; <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=\"https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunks.html\" title=\"struct core::str::lossy::Utf8Chunks\">Utf8Chunks</a>&lt;'a&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunk.html\" title=\"struct core::str::lossy::Utf8Chunk\">Utf8Chunk</a>&lt;'a&gt;;</div>","Vec<u8>":"<h3>Notable traits for <code><a class=\"struct\" href=\"../base58/struct.Vec.html\" title=\"struct bdk_chain::bitcoin::base58::Vec\">Vec</a>&lt;<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>, A&gt;</code></h3><pre><code><div class=\"where\">impl&lt;A&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for <a class=\"struct\" href=\"../base58/struct.Vec.html\" title=\"struct bdk_chain::bitcoin::base58::Vec\">Vec</a>&lt;<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>, A&gt;<div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/alloc/trait.Allocator.html\" title=\"trait core::alloc::Allocator\">Allocator</a>,</div></div>","Windows<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Windows.html\" title=\"struct core::slice::iter::Windows\">Windows</a>&lt;'a, T&gt;</code></h3><pre><code><div class=\"where\">impl&lt;'a, T&gt; <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=\"https://doc.rust-lang.org/nightly/core/slice/iter/struct.Windows.html\" title=\"struct core::slice::iter::Windows\">Windows</a>&lt;'a, T&gt;</div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = &amp;'a <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>"}</script></section></div></main></body></html>