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::merkle_branch - 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-c579a84d.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.86.0-nightly (419b3e2d3 2025-01-15)" data-channel="nightly" data-search-js="search-1429c0ba.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.1</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<<wbr>Target=[<wbr>TapNode<wbr>Hash]></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_bytes-1" title="as_bytes">as_bytes</a></li><li><a href="#method.as_bytes_mut" title="as_bytes_mut">as_bytes_mut</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.assume_init_drop" title="assume_init_drop">assume_init_drop</a></li><li><a href="#method.assume_init_mut" title="assume_init_mut">assume_init_mut</a></li><li><a href="#method.assume_init_ref" title="assume_init_ref">assume_init_ref</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.element_offset" title="element_offset">element_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><li><a href="#method.write_clone_of_slice" title="write_clone_of_slice">write_clone_of_slice</a></li><li><a href="#method.write_copy_of_slice" title="write_copy_of_slice">write_copy_of_slice</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<[TapNodeHash]>">AsMut<[TapNodeHash]></a></li><li><a href="#impl-AsRef%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="AsRef<[TapNodeHash]>">AsRef<[TapNodeHash]></a></li><li><a href="#impl-Borrow%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="Borrow<[TapNodeHash]>">Borrow<[TapNodeHash]></a></li><li><a href="#impl-BorrowMut%3C%5BTapNodeHash%5D%3E-for-TaprootMerkleBranch" title="BorrowMut<[TapNodeHash]>">BorrowMut<[TapNodeHash]></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<'de>">Deserialize<'de></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<TaprootMerkleBranch>">From<TaprootMerkleBranch></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+0%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 0]>">From<[TapNodeHash; 0]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+100%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 100]>">From<[TapNodeHash; 100]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+101%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 101]>">From<[TapNodeHash; 101]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+102%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 102]>">From<[TapNodeHash; 102]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+103%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 103]>">From<[TapNodeHash; 103]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+104%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 104]>">From<[TapNodeHash; 104]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+105%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 105]>">From<[TapNodeHash; 105]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+106%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 106]>">From<[TapNodeHash; 106]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+107%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 107]>">From<[TapNodeHash; 107]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+108%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 108]>">From<[TapNodeHash; 108]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+109%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 109]>">From<[TapNodeHash; 109]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+10%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 10]>">From<[TapNodeHash; 10]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+110%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 110]>">From<[TapNodeHash; 110]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+111%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 111]>">From<[TapNodeHash; 111]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+112%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 112]>">From<[TapNodeHash; 112]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+113%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 113]>">From<[TapNodeHash; 113]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+114%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 114]>">From<[TapNodeHash; 114]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+115%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 115]>">From<[TapNodeHash; 115]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+116%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 116]>">From<[TapNodeHash; 116]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+117%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 117]>">From<[TapNodeHash; 117]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+118%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 118]>">From<[TapNodeHash; 118]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+119%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 119]>">From<[TapNodeHash; 119]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+11%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 11]>">From<[TapNodeHash; 11]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+120%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 120]>">From<[TapNodeHash; 120]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+121%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 121]>">From<[TapNodeHash; 121]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+122%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 122]>">From<[TapNodeHash; 122]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+123%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 123]>">From<[TapNodeHash; 123]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+124%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 124]>">From<[TapNodeHash; 124]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+125%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 125]>">From<[TapNodeHash; 125]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+126%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 126]>">From<[TapNodeHash; 126]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+127%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 127]>">From<[TapNodeHash; 127]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+128%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 128]>">From<[TapNodeHash; 128]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+12%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 12]>">From<[TapNodeHash; 12]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+13%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 13]>">From<[TapNodeHash; 13]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+14%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 14]>">From<[TapNodeHash; 14]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+15%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 15]>">From<[TapNodeHash; 15]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+16%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 16]>">From<[TapNodeHash; 16]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+17%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 17]>">From<[TapNodeHash; 17]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+18%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 18]>">From<[TapNodeHash; 18]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+19%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 19]>">From<[TapNodeHash; 19]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+1%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 1]>">From<[TapNodeHash; 1]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+20%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 20]>">From<[TapNodeHash; 20]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+21%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 21]>">From<[TapNodeHash; 21]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+22%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 22]>">From<[TapNodeHash; 22]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+23%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 23]>">From<[TapNodeHash; 23]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+24%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 24]>">From<[TapNodeHash; 24]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+25%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 25]>">From<[TapNodeHash; 25]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+26%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 26]>">From<[TapNodeHash; 26]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+27%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 27]>">From<[TapNodeHash; 27]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+28%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 28]>">From<[TapNodeHash; 28]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+29%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 29]>">From<[TapNodeHash; 29]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+2%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 2]>">From<[TapNodeHash; 2]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+30%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 30]>">From<[TapNodeHash; 30]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+31%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 31]>">From<[TapNodeHash; 31]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+32%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 32]>">From<[TapNodeHash; 32]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+33%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 33]>">From<[TapNodeHash; 33]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+34%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 34]>">From<[TapNodeHash; 34]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+35%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 35]>">From<[TapNodeHash; 35]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+36%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 36]>">From<[TapNodeHash; 36]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+37%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 37]>">From<[TapNodeHash; 37]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+38%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 38]>">From<[TapNodeHash; 38]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+39%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 39]>">From<[TapNodeHash; 39]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+3%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 3]>">From<[TapNodeHash; 3]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+40%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 40]>">From<[TapNodeHash; 40]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+41%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 41]>">From<[TapNodeHash; 41]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+42%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 42]>">From<[TapNodeHash; 42]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+43%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 43]>">From<[TapNodeHash; 43]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+44%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 44]>">From<[TapNodeHash; 44]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+45%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 45]>">From<[TapNodeHash; 45]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+46%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 46]>">From<[TapNodeHash; 46]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+47%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 47]>">From<[TapNodeHash; 47]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+48%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 48]>">From<[TapNodeHash; 48]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+49%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 49]>">From<[TapNodeHash; 49]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+4%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 4]>">From<[TapNodeHash; 4]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+50%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 50]>">From<[TapNodeHash; 50]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+51%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 51]>">From<[TapNodeHash; 51]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+52%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 52]>">From<[TapNodeHash; 52]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+53%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 53]>">From<[TapNodeHash; 53]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+54%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 54]>">From<[TapNodeHash; 54]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+55%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 55]>">From<[TapNodeHash; 55]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+56%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 56]>">From<[TapNodeHash; 56]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+57%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 57]>">From<[TapNodeHash; 57]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+58%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 58]>">From<[TapNodeHash; 58]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+59%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 59]>">From<[TapNodeHash; 59]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+5%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 5]>">From<[TapNodeHash; 5]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+60%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 60]>">From<[TapNodeHash; 60]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+61%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 61]>">From<[TapNodeHash; 61]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+62%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 62]>">From<[TapNodeHash; 62]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+63%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 63]>">From<[TapNodeHash; 63]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+64%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 64]>">From<[TapNodeHash; 64]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+65%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 65]>">From<[TapNodeHash; 65]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+66%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 66]>">From<[TapNodeHash; 66]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+67%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 67]>">From<[TapNodeHash; 67]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+68%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 68]>">From<[TapNodeHash; 68]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+69%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 69]>">From<[TapNodeHash; 69]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+6%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 6]>">From<[TapNodeHash; 6]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+70%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 70]>">From<[TapNodeHash; 70]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+71%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 71]>">From<[TapNodeHash; 71]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+72%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 72]>">From<[TapNodeHash; 72]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+73%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 73]>">From<[TapNodeHash; 73]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+74%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 74]>">From<[TapNodeHash; 74]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+75%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 75]>">From<[TapNodeHash; 75]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+76%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 76]>">From<[TapNodeHash; 76]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+77%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 77]>">From<[TapNodeHash; 77]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+78%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 78]>">From<[TapNodeHash; 78]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+79%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 79]>">From<[TapNodeHash; 79]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+7%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 7]>">From<[TapNodeHash; 7]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+80%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 80]>">From<[TapNodeHash; 80]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+81%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 81]>">From<[TapNodeHash; 81]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+82%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 82]>">From<[TapNodeHash; 82]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+83%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 83]>">From<[TapNodeHash; 83]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+84%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 84]>">From<[TapNodeHash; 84]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+85%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 85]>">From<[TapNodeHash; 85]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+86%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 86]>">From<[TapNodeHash; 86]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+87%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 87]>">From<[TapNodeHash; 87]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+88%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 88]>">From<[TapNodeHash; 88]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+89%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 89]>">From<[TapNodeHash; 89]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+8%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 8]>">From<[TapNodeHash; 8]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+90%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 90]>">From<[TapNodeHash; 90]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+91%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 91]>">From<[TapNodeHash; 91]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+92%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 92]>">From<[TapNodeHash; 92]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+93%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 93]>">From<[TapNodeHash; 93]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+94%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 94]>">From<[TapNodeHash; 94]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+95%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 95]>">From<[TapNodeHash; 95]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+96%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 96]>">From<[TapNodeHash; 96]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+97%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 97]>">From<[TapNodeHash; 97]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+98%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 98]>">From<[TapNodeHash; 98]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+99%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 99]>">From<[TapNodeHash; 99]></a></li><li><a href="#impl-From%3C%5BTapNodeHash;+9%5D%3E-for-TaprootMerkleBranch" title="From<[TapNodeHash; 9]>">From<[TapNodeHash; 9]></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<&[TapNodeHash]>">TryFrom<&[TapNodeHash]></a></li><li><a href="#impl-TryFrom%3CBox%3C%5BTapNodeHash%5D%3E%3E-for-TaprootMerkleBranch" title="TryFrom<Box<[TapNodeHash]>>">TryFrom<Box<[TapNodeHash]>></a></li><li><a href="#impl-TryFrom%3CVec%3CTapNodeHash%3E%3E-for-TaprootMerkleBranch" title="TryFrom<Vec<TapNodeHash>>">TryFrom<Vec<TapNodeHash>></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<T>">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut<T>">BorrowMut<T></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<K>">Equivalent<K></a></li><li><a href="#impl-From%3CT%3E-for-T" title="From<T>">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into<U>">Into<U></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<U>">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto<U>">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T" title="VZip<V>">VZip<V></a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In bdk_<wbr>chain::<wbr>bitcoin::<wbr>taproot::<wbr>merkle_<wbr>branch</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>::<wbr><a href="index.html">merkle_branch</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>(&self) -> &[<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>(&self) -> &[<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>(&self) -> <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>(&self) -> <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: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>></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 -
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><Write>(&self, writer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut Write</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>><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>(&self) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>> <a href="#" class="tooltip" data-notable-ty="Vec<u8>">ⓘ</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) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<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>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) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>></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><Target = [<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]></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.write_copy_of_slice" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1331-1333">Source</a><h4 class="code-header">pub fn <a href="#method.write_copy_of_slice" class="fn">write_copy_of_slice</a>(&mut self, src: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a><div class="where">where
20 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><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>maybe_uninit_write_slice</code>)</span></div></span></summary><div class="docblock"><p>Copies the elements from <code>src</code> to <code>self</code>,
21 returning a mutable reference to the now initialized contents of <code>self</code>.</p>
22 <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.write_clone_of_slice" title="method slice::write_clone_of_slice"><code>write_clone_of_slice</code></a> instead.</p>
23 <p>This is similar to <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.copy_from_slice" title="method slice::copy_from_slice"><code>slice::copy_from_slice</code></a>.</p>
24 <h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
25 <p>This function will panic if the two slices have different lengths.</p>
26 <h5 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h5>
27 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_write_slice)]
28 </span><span class="kw">use </span>std::mem::MaybeUninit;
30 <span class="kw">let </span><span class="kw-2">mut </span>dst = [MaybeUninit::uninit(); <span class="number">32</span>];
31 <span class="kw">let </span>src = [<span class="number">0</span>; <span class="number">32</span>];
33 <span class="kw">let </span>init = dst.write_copy_of_slice(<span class="kw-2">&</span>src);
35 <span class="macro">assert_eq!</span>(init, src);</code></pre></div>
37 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_write_slice)]
39 </span><span class="kw">let </span><span class="kw-2">mut </span>vec = Vec::with_capacity(<span class="number">32</span>);
40 <span class="kw">let </span>src = [<span class="number">0</span>; <span class="number">16</span>];
42 vec.spare_capacity_mut()[..src.len()].write_copy_of_slice(<span class="kw-2">&</span>src);
44 <span class="comment">// SAFETY: we have just copied all the elements of len into the spare capacity
45 // the first src.len() elements of the vec are valid now.
46 </span><span class="kw">unsafe </span>{
47 vec.set_len(src.len());
50 <span class="macro">assert_eq!</span>(vec, src);</code></pre></div>
51 </div></details><details class="toggle method-toggle" open><summary><section id="method.write_clone_of_slice" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1394-1396">Source</a><h4 class="code-header">pub fn <a href="#method.write_clone_of_slice" class="fn">write_clone_of_slice</a>(&mut self, src: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a><div class="where">where
52 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>maybe_uninit_write_slice</code>)</span></div></span></summary><div class="docblock"><p>Clones the elements from <code>src</code> to <code>self</code>,
53 returning a mutable reference to the now initialized contents of <code>self</code>.
54 Any already initialized elements will not be dropped.</p>
55 <p>If <code>T</code> implements <code>Copy</code>, use <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.write_copy_of_slice" title="method slice::write_copy_of_slice"><code>write_copy_of_slice</code></a> instead.</p>
56 <p>This is similar to <a href="https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.clone_from_slice" title="method slice::clone_from_slice"><code>slice::clone_from_slice</code></a> but does not drop existing elements.</p>
57 <h5 id="panics-1"><a class="doc-anchor" href="#panics-1">§</a>Panics</h5>
58 <p>This function will panic if the two slices have different lengths, or if the implementation of <code>Clone</code> panics.</p>
59 <p>If there is a panic, the already cloned elements will be dropped.</p>
60 <h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
61 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_write_slice)]
62 </span><span class="kw">use </span>std::mem::MaybeUninit;
64 <span class="kw">let </span><span class="kw-2">mut </span>dst = [<span class="kw">const </span>{ MaybeUninit::uninit() }; <span class="number">5</span>];
65 <span class="kw">let </span>src = [<span class="string">"wibbly"</span>, <span class="string">"wobbly"</span>, <span class="string">"timey"</span>, <span class="string">"wimey"</span>, <span class="string">"stuff"</span>].map(|s| s.to_string());
67 <span class="kw">let </span>init = dst.write_clone_of_slice(<span class="kw-2">&</span>src);
69 <span class="macro">assert_eq!</span>(init, src);
72 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_write_slice)]
74 </span><span class="kw">let </span><span class="kw-2">mut </span>vec = Vec::with_capacity(<span class="number">32</span>);
75 <span class="kw">let </span>src = [<span class="string">"rust"</span>, <span class="string">"is"</span>, <span class="string">"a"</span>, <span class="string">"pretty"</span>, <span class="string">"cool"</span>, <span class="string">"language"</span>].map(|s| s.to_string());
77 vec.spare_capacity_mut()[..src.len()].write_clone_of_slice(<span class="kw-2">&</span>src);
79 <span class="comment">// SAFETY: we have just cloned all the elements of len into the spare capacity
80 // the first src.len() elements of the vec are valid now.
81 </span><span class="kw">unsafe </span>{
82 vec.set_len(src.len());
85 <span class="macro">assert_eq!</span>(vec, src);</code></pre></div>
86 </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/mem/maybe_uninit.rs.html#1442">Source</a><h4 class="code-header">pub fn <a href="#method.as_bytes" class="fn">as_bytes</a>(&self) -> &[<a class="union" href="https://doc.rust-lang.org/nightly/core/mem/maybe_uninit/union.MaybeUninit.html" title="union core::mem::maybe_uninit::MaybeUninit">MaybeUninit</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">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>maybe_uninit_as_bytes</code>)</span></div></span></summary><div class="docblock"><p>Returns the contents of this <code>MaybeUninit</code> as a slice of potentially uninitialized bytes.</p>
87 <p>Note that even if the contents of a <code>MaybeUninit</code> have been initialized, the value may still
88 contain padding bytes which are left uninitialized.</p>
89 <h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
90 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_as_bytes, maybe_uninit_write_slice, maybe_uninit_slice)]
91 </span><span class="kw">use </span>std::mem::MaybeUninit;
93 <span class="kw">let </span>uninit = [MaybeUninit::new(<span class="number">0x1234u16</span>), MaybeUninit::new(<span class="number">0x5678u16</span>)];
94 <span class="kw">let </span>uninit_bytes = uninit.as_bytes();
95 <span class="kw">let </span>bytes = <span class="kw">unsafe </span>{ uninit_bytes.assume_init_ref() };
96 <span class="kw">let </span>val1 = u16::from_ne_bytes(bytes[<span class="number">0</span>..<span class="number">2</span>].try_into().unwrap());
97 <span class="kw">let </span>val2 = u16::from_ne_bytes(bytes[<span class="number">2</span>..<span class="number">4</span>].try_into().unwrap());
98 <span class="macro">assert_eq!</span>(<span class="kw-2">&</span>[val1, val2], <span class="kw-2">&</span>[<span class="number">0x1234u16</span>, <span class="number">0x5678u16</span>]);</code></pre></div>
99 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1472">Source</a><h4 class="code-header">pub fn <a href="#method.as_bytes_mut" class="fn">as_bytes_mut</a>(&mut self) -> &mut [<a class="union" href="https://doc.rust-lang.org/nightly/core/mem/maybe_uninit/union.MaybeUninit.html" title="union core::mem::maybe_uninit::MaybeUninit">MaybeUninit</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">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>maybe_uninit_as_bytes</code>)</span></div></span></summary><div class="docblock"><p>Returns the contents of this <code>MaybeUninit</code> slice as a mutable slice of potentially
100 uninitialized bytes.</p>
101 <p>Note that even if the contents of a <code>MaybeUninit</code> have been initialized, the value may still
102 contain padding bytes which are left uninitialized.</p>
103 <h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
104 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(maybe_uninit_as_bytes, maybe_uninit_write_slice, maybe_uninit_slice)]
105 </span><span class="kw">use </span>std::mem::MaybeUninit;
107 <span class="kw">let </span><span class="kw-2">mut </span>uninit = [MaybeUninit::<u16>::uninit(), MaybeUninit::<u16>::uninit()];
108 <span class="kw">let </span>uninit_bytes = MaybeUninit::slice_as_bytes_mut(<span class="kw-2">&mut </span>uninit);
109 uninit_bytes.write_copy_of_slice(<span class="kw-2">&</span>[<span class="number">0x12</span>, <span class="number">0x34</span>, <span class="number">0x56</span>, <span class="number">0x78</span>]);
110 <span class="kw">let </span>vals = <span class="kw">unsafe </span>{ uninit.assume_init_ref() };
111 <span class="kw">if </span><span class="macro">cfg!</span>(target_endian = <span class="string">"little"</span>) {
112 <span class="macro">assert_eq!</span>(vals, <span class="kw-2">&</span>[<span class="number">0x3412u16</span>, <span class="number">0x7856u16</span>]);
113 } <span class="kw">else </span>{
114 <span class="macro">assert_eq!</span>(vals, <span class="kw-2">&</span>[<span class="number">0x1234u16</span>, <span class="number">0x5678u16</span>]);
116 </div></details><details class="toggle method-toggle" open><summary><section id="method.assume_init_drop" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1500">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.assume_init_drop" class="fn">assume_init_drop</a>(&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>maybe_uninit_slice</code>)</span></div></span></summary><div class="docblock"><p>Drops the contained values in place.</p>
117 <h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
118 <p>It is up to the caller to guarantee that every <code>MaybeUninit<T></code> in the slice
119 really is in an initialized state. Calling this when the content is not yet
120 fully initialized causes undefined behavior.</p>
121 <p>On top of that, all additional invariants of the type <code>T</code> must be
122 satisfied, as the <code>Drop</code> implementation of <code>T</code> (or its members) may
123 rely on this. For example, setting a <code>Vec<T></code> to an invalid but
124 non-null address makes it initialized (under the current implementation;
125 this does not constitute a stable guarantee), because the only
126 requirement the compiler knows about it is that the data pointer must be
127 non-null. Dropping such a <code>Vec<T></code> however will cause undefined
129 </div></details><details class="toggle method-toggle" open><summary><section id="method.assume_init_ref" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1518">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.assume_init_ref" class="fn">assume_init_ref</a>(&self) -> &<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>maybe_uninit_slice</code>)</span></div></span></summary><div class="docblock"><p>Gets a shared reference to the contained value.</p>
130 <h5 id="safety-1"><a class="doc-anchor" href="#safety-1">§</a>Safety</h5>
131 <p>Calling this when the content is not yet fully initialized causes undefined
132 behavior: it is up to the caller to guarantee that every <code>MaybeUninit<T></code> in
133 the slice really is in an initialized state.</p>
134 </div></details><details class="toggle method-toggle" open><summary><section id="method.assume_init_mut" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/mem/maybe_uninit.rs.html#1536">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.assume_init_mut" class="fn">assume_init_mut</a>(&mut self) -> &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>maybe_uninit_slice</code>)</span></div></span></summary><div class="docblock"><p>Gets a mutable (unique) reference to the contained value.</p>
135 <h5 id="safety-2"><a class="doc-anchor" href="#safety-2">§</a>Safety</h5>
136 <p>Calling this when the content is not yet fully initialized causes undefined
137 behavior: it is up to the caller to guarantee that every <code>MaybeUninit<T></code> in the
138 slice really is in an initialized state. For instance, <code>.assume_init_mut()</code> cannot
139 be used to initialize a <code>MaybeUninit</code> slice.</p>
140 </div></details><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>(&self) -> &<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>
141 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes-1" 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-1" class="fn">as_bytes</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&[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>
142 </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#17">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_ascii" class="fn">is_ascii</a>(&self) -> <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>
143 </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#26">Source</a><h4 class="code-header">pub fn <a href="#method.as_ascii" class="fn">as_ascii</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&[<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>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
144 <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>
145 </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#44">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_ascii_unchecked" class="fn">as_ascii_unchecked</a>(&self) -> &[<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,
146 without checking whether they’re valid.</p>
147 <h5 id="safety-3"><a class="doc-anchor" href="#safety-3">§</a>Safety</h5>
148 <p>Every byte in the slice must be in <code>0..=127</code>, or else this is UB.</p>
149 </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#59">Source</a></span><h4 class="code-header">pub fn <a href="#method.eq_ignore_ascii_case" class="fn">eq_ignore_ascii_case</a>(&self, other: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -> <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>
150 <p>Same as <code>to_ascii_lowercase(a) == to_ascii_lowercase(b)</code>,
151 but without allocating and copying temporaries.</p>
152 </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#94">Source</a></span><h4 class="code-header">pub fn <a href="#method.make_ascii_uppercase" class="fn">make_ascii_uppercase</a>(&mut self)</h4></section></summary><div class="docblock"><p>Converts this slice to its ASCII upper case equivalent in-place.</p>
153 <p>ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’,
154 but non-ASCII letters are unchanged.</p>
155 <p>To return a new uppercased value without modifying the existing one, use
156 <a href="#method.to_ascii_uppercase"><code>to_ascii_uppercase</code></a>.</p>
157 </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#116">Source</a></span><h4 class="code-header">pub fn <a href="#method.make_ascii_lowercase" class="fn">make_ascii_lowercase</a>(&mut self)</h4></section></summary><div class="docblock"><p>Converts this slice to its ASCII lower case equivalent in-place.</p>
158 <p>ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’,
159 but non-ASCII letters are unchanged.</p>
160 <p>To return a new lowercased value without modifying the existing one, use
161 <a href="#method.to_ascii_lowercase"><code>to_ascii_lowercase</code></a>.</p>
162 </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#140">Source</a></span><h4 class="code-header">pub fn <a href="#method.escape_ascii" class="fn">escape_ascii</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/ascii/struct.EscapeAscii.html" title="struct core::slice::ascii::EscapeAscii">EscapeAscii</a><'_> <a href="#" class="tooltip" data-notable-ty="EscapeAscii<'_>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator that produces an escaped version of this slice,
163 treating it as an ASCII string.</p>
164 <h5 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h5>
165 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>
166 <span class="kw">let </span>s = <span class="string">b"0\t\r\n'\"\\\x9d"</span>;
167 <span class="kw">let </span>escaped = s.escape_ascii().to_string();
168 <span class="macro">assert_eq!</span>(escaped, <span class="string">"0\\t\\r\\n\\'\\\"\\\\\\x9d"</span>);</code></pre></div>
169 </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#159">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii_start" class="fn">trim_ascii_start</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with leading ASCII whitespace bytes removed.</p>
170 <p>‘Whitespace’ refers to the definition used by
171 <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>
172 <h5 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h5>
173 <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>);
174 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii_start(), <span class="string">b""</span>);
175 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii_start(), <span class="string">b""</span>);</code></pre></div>
176 </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#188">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii_end" class="fn">trim_ascii_end</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with trailing ASCII whitespace bytes removed.</p>
177 <p>‘Whitespace’ refers to the definition used by
178 <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>
179 <h5 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h5>
180 <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>);
181 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii_end(), <span class="string">b""</span>);
182 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii_end(), <span class="string">b""</span>);</code></pre></div>
183 </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#218">Source</a></span><h4 class="code-header">pub fn <a href="#method.trim_ascii" class="fn">trim_ascii</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&[u8]">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a byte slice with leading and trailing ASCII whitespace bytes
185 <p>‘Whitespace’ refers to the definition used by
186 <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>
187 <h5 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples</h5>
188 <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>);
189 <span class="macro">assert_eq!</span>(<span class="string">b" "</span>.trim_ascii(), <span class="string">b""</span>);
190 <span class="macro">assert_eq!</span>(<span class="string">b""</span>.trim_ascii(), <span class="string">b""</span>);</code></pre></div>
191 </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>(&self) -> <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>
192 <h5 id="examples-8"><a class="doc-anchor" href="#examples-8">§</a>Examples</h5>
193 <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>];
194 <span class="macro">assert_eq!</span>(a.len(), <span class="number">3</span>);</code></pre></div>
195 </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>(&self) -> <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>
196 <h5 id="examples-9"><a class="doc-anchor" href="#examples-9">§</a>Examples</h5>
197 <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>];
198 <span class="macro">assert!</span>(!a.is_empty());
200 <span class="kw">let </span>b: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[];
201 <span class="macro">assert!</span>(b.is_empty());</code></pre></div>
202 </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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>></h4></section></summary><div class="docblock"><p>Returns the first element of the slice, or <code>None</code> if it is empty.</p>
203 <h5 id="examples-10"><a class="doc-anchor" href="#examples-10">§</a>Examples</h5>
204 <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>];
205 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">10</span>), v.first());
207 <span class="kw">let </span>w: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[];
208 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, w.first());</code></pre></div>
209 </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>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>></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>
210 <h5 id="examples-11"><a class="doc-anchor" href="#examples-11">§</a>Examples</h5>
211 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
213 <span class="kw">if let </span><span class="prelude-val">Some</span>(first) = x.first_mut() {
214 <span class="kw-2">*</span>first = <span class="number">5</span>;
216 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">5</span>, <span class="number">1</span>, <span class="number">2</span>]);
218 <span class="kw">let </span>y: <span class="kw-2">&mut </span>[i32] = <span class="kw-2">&mut </span>[];
219 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, y.first_mut());</code></pre></div>
220 </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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>, &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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>
221 <h5 id="examples-12"><a class="doc-anchor" href="#examples-12">§</a>Examples</h5>
222 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
224 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first() {
225 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&</span><span class="number">0</span>);
226 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>]);
228 </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>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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>
229 <h5 id="examples-13"><a class="doc-anchor" href="#examples-13">§</a>Examples</h5>
230 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
232 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_mut() {
233 <span class="kw-2">*</span>first = <span class="number">3</span>;
234 elements[<span class="number">0</span>] = <span class="number">4</span>;
235 elements[<span class="number">1</span>] = <span class="number">5</span>;
237 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);</code></pre></div>
238 </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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>, &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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>
239 <h5 id="examples-14"><a class="doc-anchor" href="#examples-14">§</a>Examples</h5>
240 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
242 <span class="kw">if let </span><span class="prelude-val">Some</span>((last, elements)) = x.split_last() {
243 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&</span><span class="number">2</span>);
244 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>]);
246 </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>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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>
247 <h5 id="examples-15"><a class="doc-anchor" href="#examples-15">§</a>Examples</h5>
248 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
250 <span class="kw">if let </span><span class="prelude-val">Some</span>((last, elements)) = x.split_last_mut() {
251 <span class="kw-2">*</span>last = <span class="number">3</span>;
252 elements[<span class="number">0</span>] = <span class="number">4</span>;
253 elements[<span class="number">1</span>] = <span class="number">5</span>;
255 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">4</span>, <span class="number">5</span>, <span class="number">3</span>]);</code></pre></div>
256 </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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>></h4></section></summary><div class="docblock"><p>Returns the last element of the slice, or <code>None</code> if it is empty.</p>
257 <h5 id="examples-16"><a class="doc-anchor" href="#examples-16">§</a>Examples</h5>
258 <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>];
259 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">30</span>), v.last());
261 <span class="kw">let </span>w: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[];
262 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, w.last());</code></pre></div>
263 </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>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>></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>
264 <h5 id="examples-17"><a class="doc-anchor" href="#examples-17">§</a>Examples</h5>
265 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
267 <span class="kw">if let </span><span class="prelude-val">Some</span>(last) = x.last_mut() {
268 <span class="kw-2">*</span>last = <span class="number">10</span>;
270 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">10</span>]);
272 <span class="kw">let </span>y: <span class="kw-2">&mut </span>[i32] = <span class="kw-2">&mut </span>[];
273 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, y.last_mut());</code></pre></div>
274 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>></h4></section></summary><div class="docblock"><p>Returns an array reference to the first <code>N</code> items in the slice.</p>
275 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
276 <h5 id="examples-18"><a class="doc-anchor" href="#examples-18">§</a>Examples</h5>
277 <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>];
278 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>]), u.first_chunk::<<span class="number">2</span>>());
280 <span class="kw">let </span>v: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[<span class="number">10</span>];
281 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.first_chunk::<<span class="number">2</span>>());
283 <span class="kw">let </span>w: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[];
284 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span>[]), w.first_chunk::<<span class="number">0</span>>());</code></pre></div>
285 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>></h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the first <code>N</code> items in the slice.</p>
286 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
287 <h5 id="examples-19"><a class="doc-anchor" href="#examples-19">§</a>Examples</h5>
288 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
290 <span class="kw">if let </span><span class="prelude-val">Some</span>(first) = x.first_chunk_mut::<<span class="number">2</span>>() {
291 first[<span class="number">0</span>] = <span class="number">5</span>;
292 first[<span class="number">1</span>] = <span class="number">4</span>;
294 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">5</span>, <span class="number">4</span>, <span class="number">2</span>]);
296 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.first_chunk_mut::<<span class="number">4</span>>());</code></pre></div>
297 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>, &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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>
298 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
299 <h5 id="examples-20"><a class="doc-anchor" href="#examples-20">§</a>Examples</h5>
300 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
302 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_chunk::<<span class="number">2</span>>() {
303 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>]);
304 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&</span>[<span class="number">2</span>]);
307 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_first_chunk::<<span class="number">4</span>>());</code></pre></div>
308 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
310 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)></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
312 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
313 <h5 id="examples-21"><a class="doc-anchor" href="#examples-21">§</a>Examples</h5>
314 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
316 <span class="kw">if let </span><span class="prelude-val">Some</span>((first, elements)) = x.split_first_chunk_mut::<<span class="number">2</span>>() {
317 first[<span class="number">0</span>] = <span class="number">3</span>;
318 first[<span class="number">1</span>] = <span class="number">4</span>;
319 elements[<span class="number">0</span>] = <span class="number">5</span>;
321 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]);
323 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_first_chunk_mut::<<span class="number">4</span>>());</code></pre></div>
324 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&<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.array.html">[T; N]</a>)></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>
325 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
326 <h5 id="examples-22"><a class="doc-anchor" href="#examples-22">§</a>Examples</h5>
327 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
329 <span class="kw">if let </span><span class="prelude-val">Some</span>((elements, last)) = x.split_last_chunk::<<span class="number">2</span>>() {
330 <span class="macro">assert_eq!</span>(elements, <span class="kw-2">&</span>[<span class="number">0</span>]);
331 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>]);
334 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_last_chunk::<<span class="number">4</span>>());</code></pre></div>
335 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
337 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>)></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
339 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
340 <h5 id="examples-23"><a class="doc-anchor" href="#examples-23">§</a>Examples</h5>
341 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
343 <span class="kw">if let </span><span class="prelude-val">Some</span>((elements, last)) = x.split_last_chunk_mut::<<span class="number">2</span>>() {
344 last[<span class="number">0</span>] = <span class="number">3</span>;
345 last[<span class="number">1</span>] = <span class="number">4</span>;
346 elements[<span class="number">0</span>] = <span class="number">5</span>;
348 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">5</span>, <span class="number">3</span>, <span class="number">4</span>]);
350 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.split_last_chunk_mut::<<span class="number">4</span>>());</code></pre></div>
351 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>></h4></section></summary><div class="docblock"><p>Returns an array reference to the last <code>N</code> items in the slice.</p>
352 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
353 <h5 id="examples-24"><a class="doc-anchor" href="#examples-24">§</a>Examples</h5>
354 <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>];
355 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">40</span>, <span class="number">30</span>]), u.last_chunk::<<span class="number">2</span>>());
357 <span class="kw">let </span>v: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[<span class="number">10</span>];
358 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.last_chunk::<<span class="number">2</span>>());
360 <span class="kw">let </span>w: <span class="kw-2">&</span>[i32] = <span class="kw-2">&</span>[];
361 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span>[]), w.last_chunk::<<span class="number">0</span>>());</code></pre></div>
362 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>></h4></section></summary><div class="docblock"><p>Returns a mutable array reference to the last <code>N</code> items in the slice.</p>
363 <p>If the slice is not at least <code>N</code> in length, this will return <code>None</code>.</p>
364 <h5 id="examples-25"><a class="doc-anchor" href="#examples-25">§</a>Examples</h5>
365 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
367 <span class="kw">if let </span><span class="prelude-val">Some</span>(last) = x.last_chunk_mut::<<span class="number">2</span>>() {
368 last[<span class="number">0</span>] = <span class="number">10</span>;
369 last[<span class="number">1</span>] = <span class="number">20</span>;
371 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">10</span>, <span class="number">20</span>]);
373 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, x.last_chunk_mut::<<span class="number">4</span>>());</code></pre></div>
374 </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><I>(&self, index: I) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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
375 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>,</div></h4></section></summary><div class="docblock"><p>Returns a reference to an element or subslice depending on the type of
378 <li>If given a position, returns a reference to the element at that
379 position or <code>None</code> if out of bounds.</li>
380 <li>If given a range, returns the subslice corresponding to that range,
381 or <code>None</code> if out of bounds.</li>
383 <h5 id="examples-26"><a class="doc-anchor" href="#examples-26">§</a>Examples</h5>
384 <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>];
385 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">40</span>), v.get(<span class="number">1</span>));
386 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>][..]), v.get(<span class="number">0</span>..<span class="number">2</span>));
387 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.get(<span class="number">3</span>));
388 <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>
389 </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><I>(
392 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&mut <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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
393 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>,</div></h4></section></summary><div class="docblock"><p>Returns a mutable reference to an element or subslice depending on the
394 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>
395 <h5 id="examples-27"><a class="doc-anchor" href="#examples-27">§</a>Examples</h5>
396 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
398 <span class="kw">if let </span><span class="prelude-val">Some</span>(elem) = x.get_mut(<span class="number">1</span>) {
399 <span class="kw-2">*</span>elem = <span class="number">42</span>;
401 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">42</span>, <span class="number">2</span>]);</code></pre></div>
402 </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><I>(
405 ) -> &<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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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
406 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>,</div></h4></section></summary><div class="docblock"><p>Returns a reference to an element or subslice, without doing bounds
408 <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>
409 <h5 id="safety-4"><a class="doc-anchor" href="#safety-4">§</a>Safety</h5>
410 <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>
411 even if the resulting reference is not used.</p>
412 <p>You can think of this like <code>.get(index).unwrap_unchecked()</code>. It’s UB
413 to call <code>.get_unchecked(len)</code>, even if you immediately convert to a
414 pointer. And it’s UB to call <code>.get_unchecked(..len + 1)</code>,
415 <code>.get_unchecked(..=len)</code>, or similar.</p>
416 <h5 id="examples-28"><a class="doc-anchor" href="#examples-28">§</a>Examples</h5>
417 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
419 <span class="kw">unsafe </span>{
420 <span class="macro">assert_eq!</span>(x.get_unchecked(<span class="number">1</span>), <span class="kw-2">&</span><span class="number">2</span>);
422 </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><I>(
425 ) -> &mut <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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
426 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>,</div></h4></section></summary><div class="docblock"><p>Returns a mutable reference to an element or subslice, without doing
428 <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>
429 <h5 id="safety-5"><a class="doc-anchor" href="#safety-5">§</a>Safety</h5>
430 <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>
431 even if the resulting reference is not used.</p>
432 <p>You can think of this like <code>.get_mut(index).unwrap_unchecked()</code>. It’s
433 UB to call <code>.get_unchecked_mut(len)</code>, even if you immediately convert
434 to a pointer. And it’s UB to call <code>.get_unchecked_mut(..len + 1)</code>,
435 <code>.get_unchecked_mut(..=len)</code>, or similar.</p>
436 <h5 id="examples-29"><a class="doc-anchor" href="#examples-29">§</a>Examples</h5>
437 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
439 <span class="kw">unsafe </span>{
440 <span class="kw">let </span>elem = x.get_unchecked_mut(<span class="number">1</span>);
441 <span class="kw-2">*</span>elem = <span class="number">13</span>;
443 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">13</span>, <span class="number">4</span>]);</code></pre></div>
444 </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>(&self) -> <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>
445 <p>The caller must ensure that the slice outlives the pointer this
446 function returns, or else it will end up dangling.</p>
447 <p>The caller must also ensure that the memory the pointer (non-transitively) points to
448 is never written to (except inside an <code>UnsafeCell</code>) using this pointer or any pointer
449 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>
450 <p>Modifying the container referenced by this slice may cause its buffer
451 to be reallocated, which would also make any pointers to it invalid.</p>
452 <h5 id="examples-30"><a class="doc-anchor" href="#examples-30">§</a>Examples</h5>
453 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
454 <span class="kw">let </span>x_ptr = x.as_ptr();
456 <span class="kw">unsafe </span>{
457 <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..x.len() {
458 <span class="macro">assert_eq!</span>(x.get_unchecked(i), <span class="kw-2">&*</span>x_ptr.add(i));
461 </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>(&mut self) -> <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>
462 <p>The caller must ensure that the slice outlives the pointer this
463 function returns, or else it will end up dangling.</p>
464 <p>Modifying the container referenced by this slice may cause its buffer
465 to be reallocated, which would also make any pointers to it invalid.</p>
466 <h5 id="examples-31"><a class="doc-anchor" href="#examples-31">§</a>Examples</h5>
467 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
468 <span class="kw">let </span>x_ptr = x.as_mut_ptr();
470 <span class="kw">unsafe </span>{
471 <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..x.len() {
472 <span class="kw-2">*</span>x_ptr.add(i) += <span class="number">2</span>;
475 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">6</span>]);</code></pre></div>
476 </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>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const T</a>> <a href="#" class="tooltip" data-notable-ty="Range<*const T>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns the two raw pointers spanning the slice.</p>
477 <p>The returned range is half-open, which means that the end pointer
478 points <em>one past</em> the last element of the slice. This way, an empty
479 slice is represented by two equal pointers, and the difference between
480 the two pointers represents the size of the slice.</p>
481 <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
482 requires extra caution, as it does not point to a valid element in the
484 <p>This function is useful for interacting with foreign interfaces which
485 use two pointers to refer to a range of elements in memory, as is
487 <p>It can also be useful to check if a pointer to an element refers to an
488 element of this slice:</p>
490 <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>];
491 <span class="kw">let </span>x = <span class="kw-2">&</span>a[<span class="number">1</span>] <span class="kw">as </span><span class="kw-2">*const </span><span class="kw">_</span>;
492 <span class="kw">let </span>y = <span class="kw-2">&</span><span class="number">5 </span><span class="kw">as </span><span class="kw-2">*const </span><span class="kw">_</span>;
494 <span class="macro">assert!</span>(a.as_ptr_range().contains(<span class="kw-2">&</span>x));
495 <span class="macro">assert!</span>(!a.as_ptr_range().contains(<span class="kw-2">&</span>y));</code></pre></div>
496 </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>(&mut self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut T</a>> <a href="#" class="tooltip" data-notable-ty="Range<*mut T>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns the two unsafe mutable pointers spanning the slice.</p>
497 <p>The returned range is half-open, which means that the end pointer
498 points <em>one past</em> the last element of the slice. This way, an empty
499 slice is represented by two equal pointers, and the difference between
500 the two pointers represents the size of the slice.</p>
501 <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
502 pointer requires extra caution, as it does not point to a valid element
504 <p>This function is useful for interacting with foreign interfaces which
505 use two pointers to refer to a range of elements in memory, as is
507 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<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_array</code>)</span></div></span></summary><div class="docblock"><p>Gets a reference to the underlying array.</p>
508 <p>If <code>N</code> is not exactly equal to the length of <code>self</code>, then this method returns <code>None</code>.</p>
509 </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><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&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_array</code>)</span></div></span></summary><div class="docblock"><p>Gets a mutable reference to the slice’s underlying array.</p>
510 <p>If <code>N</code> is not exactly equal to the length of <code>self</code>, then this method returns <code>None</code>.</p>
511 </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>(&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>
512 <p>If <code>a</code> equals to <code>b</code>, it’s guaranteed that elements won’t change value.</p>
513 <h5 id="arguments"><a class="doc-anchor" href="#arguments">§</a>Arguments</h5>
515 <li>a - The index of the first element</li>
516 <li>b - The index of the second element</li>
518 <h5 id="panics-2"><a class="doc-anchor" href="#panics-2">§</a>Panics</h5>
519 <p>Panics if <code>a</code> or <code>b</code> are out of bounds.</p>
520 <h5 id="examples-32"><a class="doc-anchor" href="#examples-32">§</a>Examples</h5>
521 <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>];
522 v.swap(<span class="number">2</span>, <span class="number">4</span>);
523 <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>
524 </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>(&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>
525 <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>
526 <h5 id="arguments-1"><a class="doc-anchor" href="#arguments-1">§</a>Arguments</h5>
528 <li>a - The index of the first element</li>
529 <li>b - The index of the second element</li>
531 <h5 id="safety-6"><a class="doc-anchor" href="#safety-6">§</a>Safety</h5>
532 <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>.
533 The caller has to ensure that <code>a < self.len()</code> and <code>b < self.len()</code>.</p>
534 <h5 id="examples-33"><a class="doc-anchor" href="#examples-33">§</a>Examples</h5>
535 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_swap_unchecked)]
537 </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>];
538 <span class="comment">// SAFETY: we know that 1 and 3 are both indices of the slice
539 </span><span class="kw">unsafe </span>{ v.swap_unchecked(<span class="number">1</span>, <span class="number">3</span>) };
540 <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>
541 </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#992">Source</a></span><h4 class="code-header">pub fn <a href="#method.reverse" class="fn">reverse</a>(&mut self)</h4></section></summary><div class="docblock"><p>Reverses the order of elements in the slice, in place.</p>
542 <h5 id="examples-34"><a class="doc-anchor" href="#examples-34">§</a>Examples</h5>
543 <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>];
545 <span class="macro">assert!</span>(v == [<span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>]);</code></pre></div>
546 </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#1052">Source</a></span><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Iter.html" title="struct core::slice::iter::Iter">Iter</a><'_, T> <a href="#" class="tooltip" data-notable-ty="Iter<'_, T>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over the slice.</p>
547 <p>The iterator yields all items from start to end.</p>
548 <h5 id="examples-35"><a class="doc-anchor" href="#examples-35">§</a>Examples</h5>
549 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
550 <span class="kw">let </span><span class="kw-2">mut </span>iterator = x.iter();
552 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">1</span>));
553 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">2</span>));
554 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">4</span>));
555 <span class="macro">assert_eq!</span>(iterator.next(), <span class="prelude-val">None</span>);</code></pre></div>
556 </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#1071">Source</a></span><h4 class="code-header">pub fn <a href="#method.iter_mut" class="fn">iter_mut</a>(&mut self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.IterMut.html" title="struct core::slice::iter::IterMut">IterMut</a><'_, T> <a href="#" class="tooltip" data-notable-ty="IterMut<'_, T>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator that allows modifying each value.</p>
557 <p>The iterator yields all items from start to end.</p>
558 <h5 id="examples-36"><a class="doc-anchor" href="#examples-36">§</a>Examples</h5>
559 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
560 <span class="kw">for </span>elem <span class="kw">in </span>x.iter_mut() {
561 <span class="kw-2">*</span>elem += <span class="number">2</span>;
563 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">4</span>, <span class="number">6</span>]);</code></pre></div>
564 </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#1120">Source</a></span><h4 class="code-header">pub fn <a href="#method.windows" class="fn">windows</a>(&self, size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Windows.html" title="struct core::slice::iter::Windows">Windows</a><'_, T> <a href="#" class="tooltip" data-notable-ty="Windows<'_, T>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns an iterator over all contiguous windows of length
565 <code>size</code>. The windows overlap. If the slice is shorter than
566 <code>size</code>, the iterator returns no values.</p>
567 <h5 id="panics-3"><a class="doc-anchor" href="#panics-3">§</a>Panics</h5>
568 <p>Panics if <code>size</code> is zero.</p>
569 <h5 id="examples-37"><a class="doc-anchor" href="#examples-37">§</a>Examples</h5>
570 <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>];
571 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.windows(<span class="number">3</span>);
572 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'l'</span>, <span class="string">'o'</span>, <span class="string">'r'</span>]);
573 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'o'</span>, <span class="string">'r'</span>, <span class="string">'e'</span>]);
574 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'r'</span>, <span class="string">'e'</span>, <span class="string">'m'</span>]);
575 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
576 <p>If the slice is shorter than <code>size</code>:</p>
578 <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>];
579 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.windows(<span class="number">4</span>);
580 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
581 <p>There’s no <code>windows_mut</code>, as that existing would let safe code violate the
582 “only one <code>&mut</code> at a time to the same thing” rule. However, you can sometimes
583 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
584 conjunction with <code>windows</code> to accomplish something similar:</p>
586 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::cell::Cell;
588 <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>];
589 <span class="kw">let </span>slice = <span class="kw-2">&mut </span>array[..];
590 <span class="kw">let </span>slice_of_cells: <span class="kw-2">&</span>[Cell<char>] = Cell::from_mut(slice).as_slice_of_cells();
591 <span class="kw">for </span>w <span class="kw">in </span>slice_of_cells.windows(<span class="number">3</span>) {
592 Cell::swap(<span class="kw-2">&</span>w[<span class="number">0</span>], <span class="kw-2">&</span>w[<span class="number">2</span>]);
594 <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>
595 </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#1155">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks" class="fn">chunks</a>(&self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Chunks.html" title="struct core::slice::iter::Chunks">Chunks</a><'_, T> <a href="#" class="tooltip" data-notable-ty="Chunks<'_, T>">ⓘ</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
596 beginning of the slice.</p>
597 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
598 slice, then the last chunk will not have length <code>chunk_size</code>.</p>
599 <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
600 <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
602 <h5 id="panics-4"><a class="doc-anchor" href="#panics-4">§</a>Panics</h5>
603 <p>Panics if <code>chunk_size</code> is zero.</p>
604 <h5 id="examples-38"><a class="doc-anchor" href="#examples-38">§</a>Examples</h5>
605 <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>];
606 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunks(<span class="number">2</span>);
607 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
608 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
609 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'m'</span>]);
610 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
611 </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#1194">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_mut" class="fn">chunks_mut</a>(&mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksMut.html" title="struct core::slice::iter::ChunksMut">ChunksMut</a><'_, T> <a href="#" class="tooltip" data-notable-ty="ChunksMut<'_, T>">ⓘ</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
612 beginning of the slice.</p>
613 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
614 length of the slice, then the last chunk will not have length <code>chunk_size</code>.</p>
615 <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
616 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
617 the end of the slice.</p>
618 <h5 id="panics-5"><a class="doc-anchor" href="#panics-5">§</a>Panics</h5>
619 <p>Panics if <code>chunk_size</code> is zero.</p>
620 <h5 id="examples-39"><a class="doc-anchor" href="#examples-39">§</a>Examples</h5>
621 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&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>];
622 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
624 <span class="kw">for </span>chunk <span class="kw">in </span>v.chunks_mut(<span class="number">2</span>) {
625 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
626 <span class="kw-2">*</span>elem += count;
628 count += <span class="number">1</span>;
630 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
631 </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#1232">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_exact" class="fn">chunks_exact</a>(&self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExact.html" title="struct core::slice::iter::ChunksExact">ChunksExact</a><'_, T> <a href="#" class="tooltip" data-notable-ty="ChunksExact<'_, T>">ⓘ</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
632 beginning of the slice.</p>
633 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
634 slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be retrieved
635 from the <code>remainder</code> function of the iterator.</p>
636 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
637 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>
638 <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
639 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>
640 <h5 id="panics-6"><a class="doc-anchor" href="#panics-6">§</a>Panics</h5>
641 <p>Panics if <code>chunk_size</code> is zero.</p>
642 <h5 id="examples-40"><a class="doc-anchor" href="#examples-40">§</a>Examples</h5>
643 <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>];
644 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunks_exact(<span class="number">2</span>);
645 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
646 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
647 <span class="macro">assert!</span>(iter.next().is_none());
648 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&</span>[<span class="string">'m'</span>]);</code></pre></div>
649 </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#1275">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunks_exact_mut" class="fn">chunks_exact_mut</a>(&mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunksExactMut.html" title="struct core::slice::iter::ChunksExactMut">ChunksExactMut</a><'_, T> <a href="#" class="tooltip" data-notable-ty="ChunksExactMut<'_, T>">ⓘ</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
650 beginning of the slice.</p>
651 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
652 length of the slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be
653 retrieved from the <code>into_remainder</code> function of the iterator.</p>
654 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
655 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>
656 <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
657 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
659 <h5 id="panics-7"><a class="doc-anchor" href="#panics-7">§</a>Panics</h5>
660 <p>Panics if <code>chunk_size</code> is zero.</p>
661 <h5 id="examples-41"><a class="doc-anchor" href="#examples-41">§</a>Examples</h5>
662 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&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>];
663 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
665 <span class="kw">for </span>chunk <span class="kw">in </span>v.chunks_exact_mut(<span class="number">2</span>) {
666 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
667 <span class="kw-2">*</span>elem += count;
669 count += <span class="number">1</span>;
671 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
672 </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#1311">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_chunks_unchecked" class="fn">as_chunks_unchecked</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> &[<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,
673 assuming that there’s no remainder.</p>
674 <h5 id="safety-7"><a class="doc-anchor" href="#safety-7">§</a>Safety</h5>
675 <p>This may only be called when</p>
677 <li>The slice splits exactly into <code>N</code>-element chunks (aka <code>self.len() % N == 0</code>).</li>
678 <li><code>N != 0</code>.</li>
680 <h5 id="examples-42"><a class="doc-anchor" href="#examples-42">§</a>Examples</h5>
681 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
682 </span><span class="kw">let </span>slice: <span class="kw-2">&</span>[char] = <span class="kw-2">&</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>];
683 <span class="kw">let </span>chunks: <span class="kw-2">&</span>[[char; <span class="number">1</span>]] =
684 <span class="comment">// SAFETY: 1-element chunks never have remainder
685 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked() };
686 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</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>]]);
687 <span class="kw">let </span>chunks: <span class="kw-2">&</span>[[char; <span class="number">3</span>]] =
688 <span class="comment">// SAFETY: The slice length (6) is a multiple of 3
689 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked() };
690 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</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>]]);
692 <span class="comment">// These would be unsound:
693 // let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
694 // let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed</span></code></pre></div>
695 </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#1358">Source</a><h4 class="code-header">pub fn <a href="#method.as_chunks" class="fn">as_chunks</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> (&[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>], &<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,
696 starting at the beginning of the slice,
697 and a remainder slice with length strictly less than <code>N</code>.</p>
698 <h5 id="panics-8"><a class="doc-anchor" href="#panics-8">§</a>Panics</h5>
699 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
700 error before this method gets stabilized.</p>
701 <h5 id="examples-43"><a class="doc-anchor" href="#examples-43">§</a>Examples</h5>
702 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
703 </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>];
704 <span class="kw">let </span>(chunks, remainder) = slice.as_chunks();
705 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</span>[[<span class="string">'l'</span>, <span class="string">'o'</span>], [<span class="string">'r'</span>, <span class="string">'e'</span>]]);
706 <span class="macro">assert_eq!</span>(remainder, <span class="kw-2">&</span>[<span class="string">'m'</span>]);</code></pre></div>
707 <p>If you expect the slice to be an exact multiple, you can combine
708 <code>let</code>-<code>else</code> with an empty slice pattern:</p>
710 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
711 </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>];
712 <span class="kw">let </span>(chunks, []) = slice.as_chunks::<<span class="number">2</span>>() <span class="kw">else </span>{
713 <span class="macro">panic!</span>(<span class="string">"slice didn't have even length"</span>)
715 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</span>[[<span class="string">'R'</span>, <span class="string">'u'</span>], [<span class="string">'s'</span>, <span class="string">'t'</span>]]);</code></pre></div>
716 </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#1393">Source</a><h4 class="code-header">pub fn <a href="#method.as_rchunks" class="fn">as_rchunks</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> (&<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.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,
717 starting at the end of the slice,
718 and a remainder slice with length strictly less than <code>N</code>.</p>
719 <h5 id="panics-9"><a class="doc-anchor" href="#panics-9">§</a>Panics</h5>
720 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
721 error before this method gets stabilized.</p>
722 <h5 id="examples-44"><a class="doc-anchor" href="#examples-44">§</a>Examples</h5>
723 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
724 </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>];
725 <span class="kw">let </span>(remainder, chunks) = slice.as_rchunks();
726 <span class="macro">assert_eq!</span>(remainder, <span class="kw-2">&</span>[<span class="string">'l'</span>]);
727 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</span>[[<span class="string">'o'</span>, <span class="string">'r'</span>], [<span class="string">'e'</span>, <span class="string">'m'</span>]]);</code></pre></div>
728 </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#1433">Source</a><h4 class="code-header">pub fn <a href="#method.array_chunks" class="fn">array_chunks</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunks.html" title="struct core::slice::iter::ArrayChunks">ArrayChunks</a><'_, T, N> <a href="#" class="tooltip" data-notable-ty="ArrayChunks<'_, 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>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
729 beginning of the slice.</p>
730 <p>The chunks are array references and do not overlap. If <code>N</code> does not divide the
731 length of the slice, then the last up to <code>N-1</code> elements will be omitted and can be
732 retrieved from the <code>remainder</code> function of the iterator.</p>
733 <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>
734 <h5 id="panics-10"><a class="doc-anchor" href="#panics-10">§</a>Panics</h5>
735 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
736 error before this method gets stabilized.</p>
737 <h5 id="examples-45"><a class="doc-anchor" href="#examples-45">§</a>Examples</h5>
738 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_chunks)]
739 </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>];
740 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.array_chunks();
741 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'l'</span>, <span class="string">'o'</span>]);
742 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'r'</span>, <span class="string">'e'</span>]);
743 <span class="macro">assert!</span>(iter.next().is_none());
744 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&</span>[<span class="string">'m'</span>]);</code></pre></div>
745 </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#1471">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.as_chunks_unchecked_mut" class="fn">as_chunks_unchecked_mut</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
747 ) -> &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,
748 assuming that there’s no remainder.</p>
749 <h5 id="safety-8"><a class="doc-anchor" href="#safety-8">§</a>Safety</h5>
750 <p>This may only be called when</p>
752 <li>The slice splits exactly into <code>N</code>-element chunks (aka <code>self.len() % N == 0</code>).</li>
753 <li><code>N != 0</code>.</li>
755 <h5 id="examples-46"><a class="doc-anchor" href="#examples-46">§</a>Examples</h5>
756 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
757 </span><span class="kw">let </span>slice: <span class="kw-2">&mut </span>[char] = <span class="kw-2">&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>];
758 <span class="kw">let </span>chunks: <span class="kw-2">&mut </span>[[char; <span class="number">1</span>]] =
759 <span class="comment">// SAFETY: 1-element chunks never have remainder
760 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked_mut() };
761 chunks[<span class="number">0</span>] = [<span class="string">'L'</span>];
762 <span class="macro">assert_eq!</span>(chunks, <span class="kw-2">&</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>]]);
763 <span class="kw">let </span>chunks: <span class="kw-2">&mut </span>[[char; <span class="number">3</span>]] =
764 <span class="comment">// SAFETY: The slice length (6) is a multiple of 3
765 </span><span class="kw">unsafe </span>{ slice.as_chunks_unchecked_mut() };
766 chunks[<span class="number">1</span>] = [<span class="string">'a'</span>, <span class="string">'x'</span>, <span class="string">'?'</span>];
767 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</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>]);
769 <span class="comment">// These would be unsound:
770 // let chunks: &[[_; 5]] = slice.as_chunks_unchecked_mut() // The slice length is not a multiple of 5
771 // let chunks: &[[_; 0]] = slice.as_chunks_unchecked_mut() // Zero-length chunks are never allowed</span></code></pre></div>
772 </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#1513">Source</a><h4 class="code-header">pub fn <a href="#method.as_chunks_mut" class="fn">as_chunks_mut</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> (&mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; N]</a>], &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,
773 starting at the beginning of the slice,
774 and a remainder slice with length strictly less than <code>N</code>.</p>
775 <h5 id="panics-11"><a class="doc-anchor" href="#panics-11">§</a>Panics</h5>
776 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
777 error before this method gets stabilized.</p>
778 <h5 id="examples-47"><a class="doc-anchor" href="#examples-47">§</a>Examples</h5>
779 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
780 </span><span class="kw">let </span>v = <span class="kw-2">&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>];
781 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
783 <span class="kw">let </span>(chunks, remainder) = v.as_chunks_mut();
784 remainder[<span class="number">0</span>] = <span class="number">9</span>;
785 <span class="kw">for </span>chunk <span class="kw">in </span>chunks {
786 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
787 count += <span class="number">1</span>;
789 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
790 </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#1554">Source</a><h4 class="code-header">pub fn <a href="#method.as_rchunks_mut" class="fn">as_rchunks_mut</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &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,
791 starting at the end of the slice,
792 and a remainder slice with length strictly less than <code>N</code>.</p>
793 <h5 id="panics-12"><a class="doc-anchor" href="#panics-12">§</a>Panics</h5>
794 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
795 error before this method gets stabilized.</p>
796 <h5 id="examples-48"><a class="doc-anchor" href="#examples-48">§</a>Examples</h5>
797 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_as_chunks)]
798 </span><span class="kw">let </span>v = <span class="kw-2">&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>];
799 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
801 <span class="kw">let </span>(remainder, chunks) = v.as_rchunks_mut();
802 remainder[<span class="number">0</span>] = <span class="number">9</span>;
803 <span class="kw">for </span>chunk <span class="kw">in </span>chunks {
804 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
805 count += <span class="number">1</span>;
807 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
808 </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#1596">Source</a><h4 class="code-header">pub fn <a href="#method.array_chunks_mut" class="fn">array_chunks_mut</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&mut self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayChunksMut.html" title="struct core::slice::iter::ArrayChunksMut">ArrayChunksMut</a><'_, T, N> <a href="#" class="tooltip" data-notable-ty="ArrayChunksMut<'_, 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>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
809 beginning of the slice.</p>
810 <p>The chunks are mutable array references and do not overlap. If <code>N</code> does not divide
811 the length of the slice, then the last up to <code>N-1</code> elements will be omitted and
812 can be retrieved from the <code>into_remainder</code> function of the iterator.</p>
813 <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>
814 <h5 id="panics-13"><a class="doc-anchor" href="#panics-13">§</a>Panics</h5>
815 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
816 error before this method gets stabilized.</p>
817 <h5 id="examples-49"><a class="doc-anchor" href="#examples-49">§</a>Examples</h5>
818 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_chunks)]
819 </span><span class="kw">let </span>v = <span class="kw-2">&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>];
820 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
822 <span class="kw">for </span>chunk <span class="kw">in </span>v.array_chunks_mut() {
823 <span class="kw-2">*</span>chunk = [count; <span class="number">2</span>];
824 count += <span class="number">1</span>;
826 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
827 </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#1629">Source</a><h4 class="code-header">pub fn <a href="#method.array_windows" class="fn">array_windows</a><const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ArrayWindows.html" title="struct core::slice::iter::ArrayWindows">ArrayWindows</a><'_, T, N> <a href="#" class="tooltip" data-notable-ty="ArrayWindows<'_, 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>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,
828 starting at the beginning of the slice.</p>
829 <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>
830 <p>If <code>N</code> is greater than the size of the slice, it will return no windows.</p>
831 <h5 id="panics-14"><a class="doc-anchor" href="#panics-14">§</a>Panics</h5>
832 <p>Panics if <code>N</code> is zero. This check will most probably get changed to a compile time
833 error before this method gets stabilized.</p>
834 <h5 id="examples-50"><a class="doc-anchor" href="#examples-50">§</a>Examples</h5>
835 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(array_windows)]
836 </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>];
837 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.array_windows();
838 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>]);
839 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>]);
840 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">2</span>, <span class="number">3</span>]);
841 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
842 </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#1664">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks" class="fn">rchunks</a>(&self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunks.html" title="struct core::slice::iter::RChunks">RChunks</a><'_, T> <a href="#" class="tooltip" data-notable-ty="RChunks<'_, T>">ⓘ</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
844 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
845 slice, then the last chunk will not have length <code>chunk_size</code>.</p>
846 <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
847 <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
849 <h5 id="panics-15"><a class="doc-anchor" href="#panics-15">§</a>Panics</h5>
850 <p>Panics if <code>chunk_size</code> is zero.</p>
851 <h5 id="examples-51"><a class="doc-anchor" href="#examples-51">§</a>Examples</h5>
852 <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>];
853 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.rchunks(<span class="number">2</span>);
854 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'e'</span>, <span class="string">'m'</span>]);
855 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'o'</span>, <span class="string">'r'</span>]);
856 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'l'</span>]);
857 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
858 </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#1703">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_mut" class="fn">rchunks_mut</a>(&mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksMut.html" title="struct core::slice::iter::RChunksMut">RChunksMut</a><'_, T> <a href="#" class="tooltip" data-notable-ty="RChunksMut<'_, T>">ⓘ</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
860 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
861 length of the slice, then the last chunk will not have length <code>chunk_size</code>.</p>
862 <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
863 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
864 beginning of the slice.</p>
865 <h5 id="panics-16"><a class="doc-anchor" href="#panics-16">§</a>Panics</h5>
866 <p>Panics if <code>chunk_size</code> is zero.</p>
867 <h5 id="examples-52"><a class="doc-anchor" href="#examples-52">§</a>Examples</h5>
868 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&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>];
869 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
871 <span class="kw">for </span>chunk <span class="kw">in </span>v.rchunks_mut(<span class="number">2</span>) {
872 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
873 <span class="kw-2">*</span>elem += count;
875 count += <span class="number">1</span>;
877 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
878 </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#1743">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_exact" class="fn">rchunks_exact</a>(&self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExact.html" title="struct core::slice::iter::RChunksExact">RChunksExact</a><'_, T> <a href="#" class="tooltip" data-notable-ty="RChunksExact<'_, T>">ⓘ</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
879 end of the slice.</p>
880 <p>The chunks are slices and do not overlap. If <code>chunk_size</code> does not divide the length of the
881 slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be retrieved
882 from the <code>remainder</code> function of the iterator.</p>
883 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
884 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>
885 <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
886 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
888 <h5 id="panics-17"><a class="doc-anchor" href="#panics-17">§</a>Panics</h5>
889 <p>Panics if <code>chunk_size</code> is zero.</p>
890 <h5 id="examples-53"><a class="doc-anchor" href="#examples-53">§</a>Examples</h5>
891 <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>];
892 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.rchunks_exact(<span class="number">2</span>);
893 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'e'</span>, <span class="string">'m'</span>]);
894 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="string">'o'</span>, <span class="string">'r'</span>]);
895 <span class="macro">assert!</span>(iter.next().is_none());
896 <span class="macro">assert_eq!</span>(iter.remainder(), <span class="kw-2">&</span>[<span class="string">'l'</span>]);</code></pre></div>
897 </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#1787">Source</a></span><h4 class="code-header">pub fn <a href="#method.rchunks_exact_mut" class="fn">rchunks_exact_mut</a>(&mut self, chunk_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RChunksExactMut.html" title="struct core::slice::iter::RChunksExactMut">RChunksExactMut</a><'_, T> <a href="#" class="tooltip" data-notable-ty="RChunksExactMut<'_, T>">ⓘ</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
899 <p>The chunks are mutable slices, and do not overlap. If <code>chunk_size</code> does not divide the
900 length of the slice, then the last up to <code>chunk_size-1</code> elements will be omitted and can be
901 retrieved from the <code>into_remainder</code> function of the iterator.</p>
902 <p>Due to each chunk having exactly <code>chunk_size</code> elements, the compiler can often optimize the
903 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>
904 <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
905 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
907 <h5 id="panics-18"><a class="doc-anchor" href="#panics-18">§</a>Panics</h5>
908 <p>Panics if <code>chunk_size</code> is zero.</p>
909 <h5 id="examples-54"><a class="doc-anchor" href="#examples-54">§</a>Examples</h5>
910 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&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>];
911 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">1</span>;
913 <span class="kw">for </span>chunk <span class="kw">in </span>v.rchunks_exact_mut(<span class="number">2</span>) {
914 <span class="kw">for </span>elem <span class="kw">in </span>chunk.iter_mut() {
915 <span class="kw-2">*</span>elem += count;
917 count += <span class="number">1</span>;
919 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</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>
920 </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#1826-1828">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunk_by" class="fn">chunk_by</a><F>(&self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkBy.html" title="struct core::slice::iter::ChunkBy">ChunkBy</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="ChunkBy<'_, T, F>">ⓘ</a><div class="where">where
921 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">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <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
922 of elements using the predicate to separate them.</p>
923 <p>The predicate is called for every pair of consecutive elements,
924 meaning that it is called on <code>slice[0]</code> and <code>slice[1]</code>,
925 followed by <code>slice[1]</code> and <code>slice[2]</code>, and so on.</p>
926 <h5 id="examples-55"><a class="doc-anchor" href="#examples-55">§</a>Examples</h5>
927 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&</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>];
929 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by(|a, b| a == b);
931 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>][..]));
932 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">3</span>][..]));
933 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>][..]));
934 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
935 <p>This method can be used to extract the sorted subslices:</p>
937 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&</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>];
939 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by(|a, b| a <= b);
941 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..]));
942 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">2</span>, <span class="number">3</span>][..]));
943 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>][..]));
944 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
945 </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#1867-1869">Source</a></span><h4 class="code-header">pub fn <a href="#method.chunk_by_mut" class="fn">chunk_by_mut</a><F>(&mut self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.ChunkByMut.html" title="struct core::slice::iter::ChunkByMut">ChunkByMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="ChunkByMut<'_, T, F>">ⓘ</a><div class="where">where
946 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">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <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
947 runs of elements using the predicate to separate them.</p>
948 <p>The predicate is called for every pair of consecutive elements,
949 meaning that it is called on <code>slice[0]</code> and <code>slice[1]</code>,
950 followed by <code>slice[1]</code> and <code>slice[2]</code>, and so on.</p>
951 <h5 id="examples-56"><a class="doc-anchor" href="#examples-56">§</a>Examples</h5>
952 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&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>];
954 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by_mut(|a, b| a == b);
956 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">1</span>][..]));
957 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">3</span>, <span class="number">3</span>][..]));
958 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">2</span>, <span class="number">2</span>, <span class="number">2</span>][..]));
959 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
960 <p>This method can be used to extract the sorted subslices:</p>
962 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>slice = <span class="kw-2">&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>];
964 <span class="kw">let </span><span class="kw-2">mut </span>iter = slice.chunk_by_mut(|a, b| a <= b);
966 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..]));
967 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">2</span>, <span class="number">3</span>][..]));
968 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="kw-2">&mut </span>[<span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>][..]));
969 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
970 </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#1913">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at" class="fn">split_at</a>(&self, mid: <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.slice.html">[T]</a>, &<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>
971 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
972 the index <code>mid</code> itself) and the second will contain all
973 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
974 <h5 id="panics-19"><a class="doc-anchor" href="#panics-19">§</a>Panics</h5>
975 <p>Panics if <code>mid > len</code>. For a non-panicking alternative see
976 <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>
977 <h5 id="examples-57"><a class="doc-anchor" href="#examples-57">§</a>Examples</h5>
978 <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>];
981 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">0</span>);
982 <span class="macro">assert_eq!</span>(left, []);
983 <span class="macro">assert_eq!</span>(right, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
987 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">2</span>);
988 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>]);
989 <span class="macro">assert_eq!</span>(right, [<span class="string">'c'</span>]);
993 <span class="kw">let </span>(left, right) = v.split_at(<span class="number">3</span>);
994 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
995 <span class="macro">assert_eq!</span>(right, []);
997 </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#1947">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_mut" class="fn">split_at_mut</a>(&mut self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &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>
998 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
999 the index <code>mid</code> itself) and the second will contain all
1000 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
1001 <h5 id="panics-20"><a class="doc-anchor" href="#panics-20">§</a>Panics</h5>
1002 <p>Panics if <code>mid > len</code>. For a non-panicking alternative see
1003 <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>
1004 <h5 id="examples-58"><a class="doc-anchor" href="#examples-58">§</a>Examples</h5>
1005 <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>];
1006 <span class="kw">let </span>(left, right) = v.split_at_mut(<span class="number">2</span>);
1007 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
1008 <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>]);
1009 left[<span class="number">1</span>] = <span class="number">2</span>;
1010 right[<span class="number">1</span>] = <span class="number">4</span>;
1011 <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>
1012 </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#1998">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.split_at_unchecked" class="fn">split_at_unchecked</a>(&self, mid: <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.slice.html">[T]</a>, &<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>
1013 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
1014 the index <code>mid</code> itself) and the second will contain all
1015 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
1016 <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>
1017 <h5 id="safety-9"><a class="doc-anchor" href="#safety-9">§</a>Safety</h5>
1018 <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>
1019 even if the resulting reference is not used. The caller has to ensure that
1020 <code>0 <= mid <= self.len()</code>.</p>
1021 <h5 id="examples-59"><a class="doc-anchor" href="#examples-59">§</a>Examples</h5>
1022 <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>];
1024 <span class="kw">unsafe </span>{
1025 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">0</span>);
1026 <span class="macro">assert_eq!</span>(left, []);
1027 <span class="macro">assert_eq!</span>(right, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
1030 <span class="kw">unsafe </span>{
1031 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">2</span>);
1032 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>]);
1033 <span class="macro">assert_eq!</span>(right, [<span class="string">'c'</span>]);
1036 <span class="kw">unsafe </span>{
1037 <span class="kw">let </span>(left, right) = v.split_at_unchecked(<span class="number">3</span>);
1038 <span class="macro">assert_eq!</span>(left, [<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);
1039 <span class="macro">assert_eq!</span>(right, []);
1040 }</code></pre></div>
1041 </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#2051">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.split_at_mut_unchecked" class="fn">split_at_mut_unchecked</a>(
1043 mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1044 ) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &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>
1045 <p>The first will contain all indices from <code>[0, mid)</code> (excluding
1046 the index <code>mid</code> itself) and the second will contain all
1047 indices from <code>[mid, len)</code> (excluding the index <code>len</code> itself).</p>
1048 <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>
1049 <h5 id="safety-10"><a class="doc-anchor" href="#safety-10">§</a>Safety</h5>
1050 <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>
1051 even if the resulting reference is not used. The caller has to ensure that
1052 <code>0 <= mid <= self.len()</code>.</p>
1053 <h5 id="examples-60"><a class="doc-anchor" href="#examples-60">§</a>Examples</h5>
1054 <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>];
1055 <span class="comment">// scoped to restrict the lifetime of the borrows
1056 </span><span class="kw">unsafe </span>{
1057 <span class="kw">let </span>(left, right) = v.split_at_mut_unchecked(<span class="number">2</span>);
1058 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
1059 <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>]);
1060 left[<span class="number">1</span>] = <span class="number">2</span>;
1061 right[<span class="number">1</span>] = <span class="number">4</span>;
1063 <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>
1064 </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#2112">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_checked" class="fn">split_at_checked</a>(&self, mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&<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.slice.html">[T]</a>)></h4></section></summary><div class="docblock"><p>Divides one slice into two at an index, returning <code>None</code> if the slice is
1066 <p>If <code>mid ≤ len</code> returns a pair of slices where the first will contain all
1067 indices from <code>[0, mid)</code> (excluding the index <code>mid</code> itself) and the
1068 second will contain all indices from <code>[mid, len)</code> (excluding the index
1069 <code>len</code> itself).</p>
1070 <p>Otherwise, if <code>mid > len</code>, returns <code>None</code>.</p>
1071 <h5 id="examples-61"><a class="doc-anchor" href="#examples-61">§</a>Examples</h5>
1072 <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>];
1075 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">0</span>).unwrap();
1076 <span class="macro">assert_eq!</span>(left, []);
1077 <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>]);
1081 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">2</span>).unwrap();
1082 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, -<span class="number">2</span>]);
1083 <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>]);
1087 <span class="kw">let </span>(left, right) = v.split_at_checked(<span class="number">6</span>).unwrap();
1088 <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>]);
1089 <span class="macro">assert_eq!</span>(right, []);
1092 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, v.split_at_checked(<span class="number">7</span>));</code></pre></div>
1093 </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#2151">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_at_mut_checked" class="fn">split_at_mut_checked</a>(
1095 mid: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1096 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &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, returning <code>None</code> if the
1097 slice is too short.</p>
1098 <p>If <code>mid ≤ len</code> returns a pair of slices where the first will contain all
1099 indices from <code>[0, mid)</code> (excluding the index <code>mid</code> itself) and the
1100 second will contain all indices from <code>[mid, len)</code> (excluding the index
1101 <code>len</code> itself).</p>
1102 <p>Otherwise, if <code>mid > len</code>, returns <code>None</code>.</p>
1103 <h5 id="examples-62"><a class="doc-anchor" href="#examples-62">§</a>Examples</h5>
1104 <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>];
1106 <span class="kw">if let </span><span class="prelude-val">Some</span>((left, right)) = v.split_at_mut_checked(<span class="number">2</span>) {
1107 <span class="macro">assert_eq!</span>(left, [<span class="number">1</span>, <span class="number">0</span>]);
1108 <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>]);
1109 left[<span class="number">1</span>] = <span class="number">2</span>;
1110 right[<span class="number">1</span>] = <span class="number">4</span>;
1112 <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>]);
1114 <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>
1115 </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#2203-2205">Source</a></span><h4 class="code-header">pub fn <a href="#method.split" class="fn">split</a><F>(&self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.Split.html" title="struct core::slice::iter::Split">Split</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="Split<'_, T, F>">ⓘ</a><div class="where">where
1116 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">&T</a>) -> <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
1117 <code>pred</code>. The matched element is not contained in the subslices.</p>
1118 <h5 id="examples-63"><a class="doc-anchor" href="#examples-63">§</a>Examples</h5>
1119 <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>];
1120 <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>);
1122 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>]);
1123 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">20</span>]);
1124 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1125 <p>If the first element is matched, an empty slice will be the first item
1126 returned by the iterator. Similarly, if the last element in the slice
1127 is matched, an empty slice will be the last item returned by the
1130 <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>];
1131 <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>);
1133 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>]);
1134 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[]);
1135 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1136 <p>If two matched elements are directly adjacent, an empty slice will be
1137 present between them:</p>
1139 <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>];
1140 <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>);
1142 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">10</span>]);
1143 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[]);
1144 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">20</span>]);
1145 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1146 </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#2225-2227">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_mut" class="fn">split_mut</a><F>(&mut self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitMut.html" title="struct core::slice::iter::SplitMut">SplitMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="SplitMut<'_, T, F>">ⓘ</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">&T</a>) -> <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
1148 match <code>pred</code>. The matched element is not contained in the subslices.</p>
1149 <h5 id="examples-64"><a class="doc-anchor" href="#examples-64">§</a>Examples</h5>
1150 <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>];
1152 <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>) {
1153 group[<span class="number">0</span>] = <span class="number">1</span>;
1155 <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>
1156 </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#2261-2263">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_inclusive" class="fn">split_inclusive</a><F>(&self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusive.html" title="struct core::slice::iter::SplitInclusive">SplitInclusive</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="SplitInclusive<'_, T, F>">ⓘ</a><div class="where">where
1157 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">&T</a>) -> <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
1158 <code>pred</code>. The matched element is contained in the end of the previous
1159 subslice as a terminator.</p>
1160 <h5 id="examples-65"><a class="doc-anchor" href="#examples-65">§</a>Examples</h5>
1161 <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>];
1162 <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>);
1164 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>]);
1165 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">20</span>]);
1166 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1167 <p>If the last element of the slice is matched,
1168 that element will be considered the terminator of the preceding slice.
1169 That slice will be the last item returned by the iterator.</p>
1171 <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>];
1172 <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>);
1174 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">3</span>]);
1175 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">33</span>]);
1176 <span class="macro">assert!</span>(iter.next().is_none());</code></pre></div>
1177 </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#2285-2287">Source</a></span><h4 class="code-header">pub fn <a href="#method.split_inclusive_mut" class="fn">split_inclusive_mut</a><F>(&mut self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitInclusiveMut.html" title="struct core::slice::iter::SplitInclusiveMut">SplitInclusiveMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="SplitInclusiveMut<'_, T, F>">ⓘ</a><div class="where">where
1178 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">&T</a>) -> <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
1179 match <code>pred</code>. The matched element is contained in the previous
1180 subslice as a terminator.</p>
1181 <h5 id="examples-66"><a class="doc-anchor" href="#examples-66">§</a>Examples</h5>
1182 <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>];
1184 <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>) {
1185 <span class="kw">let </span>terminator_idx = group.len()-<span class="number">1</span>;
1186 group[terminator_idx] = <span class="number">1</span>;
1188 <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>
1189 </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#2321-2323">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplit" class="fn">rsplit</a><F>(&self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplit.html" title="struct core::slice::iter::RSplit">RSplit</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="RSplit<'_, T, F>">ⓘ</a><div class="where">where
1190 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">&T</a>) -> <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
1191 <code>pred</code>, starting at the end of the slice and working backwards.
1192 The matched element is not contained in the subslices.</p>
1193 <h5 id="examples-67"><a class="doc-anchor" href="#examples-67">§</a>Examples</h5>
1194 <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>];
1195 <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>);
1197 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">44</span>, <span class="number">55</span>]);
1198 <span class="macro">assert_eq!</span>(iter.next().unwrap(), <span class="kw-2">&</span>[<span class="number">11</span>, <span class="number">22</span>, <span class="number">33</span>]);
1199 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">None</span>);</code></pre></div>
1200 <p>As with <code>split()</code>, if the first or last element is matched, an empty
1201 slice will be the first (or last) item returned by the iterator.</p>
1203 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&</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>];
1204 <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>);
1205 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&</span>[]);
1206 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">5</span>]);
1207 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">1</span>]);
1208 <span class="macro">assert_eq!</span>(it.next().unwrap(), <span class="kw-2">&</span>[]);
1209 <span class="macro">assert_eq!</span>(it.next(), <span class="prelude-val">None</span>);</code></pre></div>
1210 </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#2347-2349">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplit_mut" class="fn">rsplit_mut</a><F>(&mut self, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitMut.html" title="struct core::slice::iter::RSplitMut">RSplitMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="RSplitMut<'_, T, F>">ⓘ</a><div class="where">where
1211 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">&T</a>) -> <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
1212 match <code>pred</code>, starting at the end of the slice and working
1213 backwards. The matched element is not contained in the subslices.</p>
1214 <h5 id="examples-68"><a class="doc-anchor" href="#examples-68">§</a>Examples</h5>
1215 <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>];
1217 <span class="kw">let </span><span class="kw-2">mut </span>count = <span class="number">0</span>;
1218 <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>) {
1219 count += <span class="number">1</span>;
1220 group[<span class="number">0</span>] = count;
1222 <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>
1223 </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#2375-2377">Source</a></span><h4 class="code-header">pub fn <a href="#method.splitn" class="fn">splitn</a><F>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitN.html" title="struct core::slice::iter::SplitN">SplitN</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="SplitN<'_, T, F>">ⓘ</a><div class="where">where
1224 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">&T</a>) -> <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
1225 <code>pred</code>, limited to returning at most <code>n</code> items. The matched element is
1226 not contained in the subslices.</p>
1227 <p>The last element returned, if any, will contain the remainder of the
1229 <h5 id="examples-69"><a class="doc-anchor" href="#examples-69">§</a>Examples</h5>
1230 <p>Print the slice split once by numbers divisible by 3 (i.e., <code>[10, 40]</code>,
1231 <code>[20, 60, 50]</code>):</p>
1233 <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>];
1235 <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>) {
1236 <span class="macro">println!</span>(<span class="string">"{group:?}"</span>);
1237 }</code></pre></div>
1238 </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#2401-2403">Source</a></span><h4 class="code-header">pub fn <a href="#method.splitn_mut" class="fn">splitn_mut</a><F>(&mut self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.SplitNMut.html" title="struct core::slice::iter::SplitNMut">SplitNMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="SplitNMut<'_, T, F>">ⓘ</a><div class="where">where
1239 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">&T</a>) -> <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
1240 <code>pred</code>, limited to returning at most <code>n</code> items. The matched element is
1241 not contained in the subslices.</p>
1242 <p>The last element returned, if any, will contain the remainder of the
1244 <h5 id="examples-70"><a class="doc-anchor" href="#examples-70">§</a>Examples</h5>
1245 <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>];
1247 <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>) {
1248 group[<span class="number">0</span>] = <span class="number">1</span>;
1250 <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>
1251 </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#2430-2432">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplitn" class="fn">rsplitn</a><F>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitN.html" title="struct core::slice::iter::RSplitN">RSplitN</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="RSplitN<'_, T, F>">ⓘ</a><div class="where">where
1252 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">&T</a>) -> <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
1253 <code>pred</code> limited to returning at most <code>n</code> items. This starts at the end of
1254 the slice and works backwards. The matched element is not contained in
1256 <p>The last element returned, if any, will contain the remainder of the
1258 <h5 id="examples-71"><a class="doc-anchor" href="#examples-71">§</a>Examples</h5>
1259 <p>Print the slice split once, starting from the end, by numbers divisible
1260 by 3 (i.e., <code>[50]</code>, <code>[10, 40, 30, 20]</code>):</p>
1262 <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>];
1264 <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>) {
1265 <span class="macro">println!</span>(<span class="string">"{group:?}"</span>);
1266 }</code></pre></div>
1267 </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#2457-2459">Source</a></span><h4 class="code-header">pub fn <a href="#method.rsplitn_mut" class="fn">rsplitn_mut</a><F>(&mut self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, pred: F) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/slice/iter/struct.RSplitNMut.html" title="struct core::slice::iter::RSplitNMut">RSplitNMut</a><'_, T, F> <a href="#" class="tooltip" data-notable-ty="RSplitNMut<'_, T, F>">ⓘ</a><div class="where">where
1268 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">&T</a>) -> <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
1269 <code>pred</code> limited to returning at most <code>n</code> items. This starts at the end of
1270 the slice and works backwards. The matched element is not contained in
1272 <p>The last element returned, if any, will contain the remainder of the
1274 <h5 id="examples-72"><a class="doc-anchor" href="#examples-72">§</a>Examples</h5>
1275 <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>];
1277 <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>) {
1278 group[<span class="number">0</span>] = <span class="number">1</span>;
1280 <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>
1281 </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#2484-2486">Source</a><h4 class="code-header">pub fn <a href="#method.split_once" class="fn">split_once</a><F>(&self, pred: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&<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.slice.html">[T]</a>)><div class="where">where
1282 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">&T</a>) -> <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
1284 <p>If any matching elements are present in the slice, returns the prefix
1285 before the match and suffix after. The matching element itself is not
1286 included. If no elements match, returns <code>None</code>.</p>
1287 <h5 id="examples-73"><a class="doc-anchor" href="#examples-73">§</a>Examples</h5>
1288 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_split_once)]
1289 </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>];
1290 <span class="macro">assert_eq!</span>(s.split_once(|<span class="kw-2">&</span>x| x == <span class="number">2</span>), <span class="prelude-val">Some</span>((
1291 <span class="kw-2">&</span>[<span class="number">1</span>][..],
1292 <span class="kw-2">&</span>[<span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>][..]
1294 <span class="macro">assert_eq!</span>(s.split_once(|<span class="kw-2">&</span>x| x == <span class="number">0</span>), <span class="prelude-val">None</span>);</code></pre></div>
1295 </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#2512-2514">Source</a><h4 class="code-header">pub fn <a href="#method.rsplit_once" class="fn">rsplit_once</a><F>(&self, pred: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&<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.slice.html">[T]</a>)><div class="where">where
1296 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">&T</a>) -> <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
1298 <p>If any matching elements are present in the slice, returns the prefix
1299 before the match and suffix after. The matching element itself is not
1300 included. If no elements match, returns <code>None</code>.</p>
1301 <h5 id="examples-74"><a class="doc-anchor" href="#examples-74">§</a>Examples</h5>
1302 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_split_once)]
1303 </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>];
1304 <span class="macro">assert_eq!</span>(s.rsplit_once(|<span class="kw-2">&</span>x| x == <span class="number">2</span>), <span class="prelude-val">Some</span>((
1305 <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>][..],
1306 <span class="kw-2">&</span>[<span class="number">4</span>][..]
1308 <span class="macro">assert_eq!</span>(s.rsplit_once(|<span class="kw-2">&</span>x| x == <span class="number">0</span>), <span class="prelude-val">None</span>);</code></pre></div>
1309 </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#2548-2550">Source</a></span><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
1310 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>
1311 <p>This operation is <em>O</em>(<em>n</em>).</p>
1312 <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>
1313 <h5 id="examples-75"><a class="doc-anchor" href="#examples-75">§</a>Examples</h5>
1314 <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>];
1315 <span class="macro">assert!</span>(v.contains(<span class="kw-2">&</span><span class="number">30</span>));
1316 <span class="macro">assert!</span>(!v.contains(<span class="kw-2">&</span><span class="number">50</span>));</code></pre></div>
1317 <p>If you do not have a <code>&T</code>, but some other value that you can compare
1318 with one (for example, <code>String</code> implements <code>PartialEq<str></code>), you can
1319 use <code>iter().any</code>:</p>
1321 <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`
1322 </span><span class="macro">assert!</span>(v.iter().any(|e| e == <span class="string">"hello"</span>)); <span class="comment">// search with `&str`
1323 </span><span class="macro">assert!</span>(!v.iter().any(|e| e == <span class="string">"hi"</span>));</code></pre></div>
1324 </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#2578-2580">Source</a></span><h4 class="code-header">pub fn <a href="#method.starts_with" class="fn">starts_with</a>(&self, needle: &<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.bool.html">bool</a><div class="where">where
1325 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>
1326 <h5 id="examples-76"><a class="doc-anchor" href="#examples-76">§</a>Examples</h5>
1327 <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>];
1328 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&</span>[<span class="number">10</span>]));
1329 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>]));
1330 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&</span>v));
1331 <span class="macro">assert!</span>(!v.starts_with(<span class="kw-2">&</span>[<span class="number">50</span>]));
1332 <span class="macro">assert!</span>(!v.starts_with(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">50</span>]));</code></pre></div>
1333 <p>Always returns <code>true</code> if <code>needle</code> is an empty slice:</p>
1335 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1336 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&</span>[]));
1337 <span class="kw">let </span>v: <span class="kw-2">&</span>[u8] = <span class="kw-2">&</span>[];
1338 <span class="macro">assert!</span>(v.starts_with(<span class="kw-2">&</span>[]));</code></pre></div>
1339 </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#2609-2611">Source</a></span><h4 class="code-header">pub fn <a href="#method.ends_with" class="fn">ends_with</a>(&self, needle: &<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.bool.html">bool</a><div class="where">where
1340 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>
1341 <h5 id="examples-77"><a class="doc-anchor" href="#examples-77">§</a>Examples</h5>
1342 <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>];
1343 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&</span>[<span class="number">30</span>]));
1344 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&</span>[<span class="number">40</span>, <span class="number">30</span>]));
1345 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&</span>v));
1346 <span class="macro">assert!</span>(!v.ends_with(<span class="kw-2">&</span>[<span class="number">50</span>]));
1347 <span class="macro">assert!</span>(!v.ends_with(<span class="kw-2">&</span>[<span class="number">50</span>, <span class="number">30</span>]));</code></pre></div>
1348 <p>Always returns <code>true</code> if <code>needle</code> is an empty slice:</p>
1350 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1351 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&</span>[]));
1352 <span class="kw">let </span>v: <span class="kw-2">&</span>[u8] = <span class="kw-2">&</span>[];
1353 <span class="macro">assert!</span>(v.ends_with(<span class="kw-2">&</span>[]));</code></pre></div>
1354 </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#2641-2643">Source</a></span><h4 class="code-header">pub fn <a href="#method.strip_prefix" class="fn">strip_prefix</a><P>(&self, prefix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&P</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>><div class="where">where
1355 P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.SlicePattern.html" title="trait core::slice::SlicePattern">SlicePattern</a><Item = T> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
1356 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>
1357 <p>If the slice starts with <code>prefix</code>, returns the subslice after the prefix, wrapped in <code>Some</code>.
1358 If <code>prefix</code> is empty, simply returns the original slice. If <code>prefix</code> is equal to the
1359 original slice, returns an empty slice.</p>
1360 <p>If the slice does not start with <code>prefix</code>, returns <code>None</code>.</p>
1361 <h5 id="examples-78"><a class="doc-anchor" href="#examples-78">§</a>Examples</h5>
1362 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1363 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&</span>[<span class="number">10</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">40</span>, <span class="number">30</span>][..]));
1364 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">30</span>][..]));
1365 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&</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">&</span>[][..]));
1366 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&</span>[<span class="number">50</span>]), <span class="prelude-val">None</span>);
1367 <span class="macro">assert_eq!</span>(v.strip_prefix(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">50</span>]), <span class="prelude-val">None</span>);
1369 <span class="kw">let </span>prefix : <span class="kw-2">&</span>str = <span class="string">"he"</span>;
1370 <span class="macro">assert_eq!</span>(<span class="string">b"hello"</span>.strip_prefix(prefix.as_bytes()),
1371 <span class="prelude-val">Some</span>(<span class="string">b"llo"</span>.as_ref()));</code></pre></div>
1372 </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#2677-2679">Source</a></span><h4 class="code-header">pub fn <a href="#method.strip_suffix" class="fn">strip_suffix</a><P>(&self, suffix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&P</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>><div class="where">where
1373 P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/slice/trait.SlicePattern.html" title="trait core::slice::SlicePattern">SlicePattern</a><Item = T> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
1374 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>
1375 <p>If the slice ends with <code>suffix</code>, returns the subslice before the suffix, wrapped in <code>Some</code>.
1376 If <code>suffix</code> is empty, simply returns the original slice. If <code>suffix</code> is equal to the
1377 original slice, returns an empty slice.</p>
1378 <p>If the slice does not end with <code>suffix</code>, returns <code>None</code>.</p>
1379 <h5 id="examples-79"><a class="doc-anchor" href="#examples-79">§</a>Examples</h5>
1380 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>v = <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
1381 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&</span>[<span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">40</span>][..]));
1382 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&</span>[<span class="number">40</span>, <span class="number">30</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>[<span class="number">10</span>][..]));
1383 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&</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">&</span>[][..]));
1384 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&</span>[<span class="number">50</span>]), <span class="prelude-val">None</span>);
1385 <span class="macro">assert_eq!</span>(v.strip_suffix(<span class="kw-2">&</span>[<span class="number">50</span>, <span class="number">30</span>]), <span class="prelude-val">None</span>);</code></pre></div>
1386 </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#2763-2765">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search" class="fn">binary_search</a>(&self, x: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>><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>Binary searches this slice for a given element.
1388 If the slice is not sorted, the returned result is unspecified and
1390 <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
1391 index of the matching element. If there are multiple matches, then any
1392 one of the matches could be returned. The index is chosen
1393 deterministically, but is subject to change in future versions of Rust.
1394 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
1395 the index where a matching element could be inserted while maintaining
1397 <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>
1398 <h5 id="examples-80"><a class="doc-anchor" href="#examples-80">§</a>Examples</h5>
1399 <p>Looks up a series of four elements. The first is found, with a
1400 uniquely determined position; the second and third are not
1401 found; the fourth could match any position in <code>[1, 4]</code>.</p>
1403 <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>];
1405 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&</span><span class="number">13</span>), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1406 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&</span><span class="number">4</span>), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1407 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&</span><span class="number">100</span>), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1408 <span class="kw">let </span>r = s.binary_search(<span class="kw-2">&</span><span class="number">1</span>);
1409 <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>) => <span class="bool-val">true</span>, <span class="kw">_ </span>=> <span class="bool-val">false</span>, });</code></pre></div>
1410 <p>If you want to find that whole <em>range</em> of matching items, rather than
1411 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>
1413 <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>];
1415 <span class="kw">let </span>low = s.partition_point(|x| x < <span class="kw-2">&</span><span class="number">1</span>);
1416 <span class="macro">assert_eq!</span>(low, <span class="number">1</span>);
1417 <span class="kw">let </span>high = s.partition_point(|x| x <= <span class="kw-2">&</span><span class="number">1</span>);
1418 <span class="macro">assert_eq!</span>(high, <span class="number">5</span>);
1419 <span class="kw">let </span>r = s.binary_search(<span class="kw-2">&</span><span class="number">1</span>);
1420 <span class="macro">assert!</span>((low..high).contains(<span class="kw-2">&</span>r.unwrap()));
1422 <span class="macro">assert!</span>(s[..low].iter().all(|<span class="kw-2">&</span>x| x < <span class="number">1</span>));
1423 <span class="macro">assert!</span>(s[low..high].iter().all(|<span class="kw-2">&</span>x| x == <span class="number">1</span>));
1424 <span class="macro">assert!</span>(s[high..].iter().all(|<span class="kw-2">&</span>x| x > <span class="number">1</span>));
1426 <span class="comment">// For something not found, the "range" of equal items is empty
1427 </span><span class="macro">assert_eq!</span>(s.partition_point(|x| x < <span class="kw-2">&</span><span class="number">11</span>), <span class="number">9</span>);
1428 <span class="macro">assert_eq!</span>(s.partition_point(|x| x <= <span class="kw-2">&</span><span class="number">11</span>), <span class="number">9</span>);
1429 <span class="macro">assert_eq!</span>(s.binary_search(<span class="kw-2">&</span><span class="number">11</span>), <span class="prelude-val">Err</span>(<span class="number">9</span>));</code></pre></div>
1430 <p>If you want to insert an item to a sorted vector, while maintaining
1431 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>
1433 <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>];
1434 <span class="kw">let </span>num = <span class="number">42</span>;
1435 <span class="kw">let </span>idx = s.partition_point(|<span class="kw-2">&</span>x| x <= num);
1436 <span class="comment">// If `num` is unique, `s.partition_point(|&x| x < num)` (with `<`) is equivalent to
1437 // `s.binary_search(&num).unwrap_or_else(|x| x)`, but using `<=` will allow `insert`
1438 // to shift less elements.
1439 </span>s.insert(idx, num);
1440 <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>
1441 </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#2814-2816">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search_by" class="fn">binary_search_by</a><'a, F>(&'a self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>><div class="where">where
1442 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">&'a T</a>) -> <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>
1443 <p>The comparator function should return an order code that indicates
1444 whether its argument is <code>Less</code>, <code>Equal</code> or <code>Greater</code> the desired
1446 If the slice is not sorted or if the comparator function does not
1447 implement an order consistent with the sort order of the underlying
1448 slice, the returned result is unspecified and meaningless.</p>
1449 <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
1450 index of the matching element. If there are multiple matches, then any
1451 one of the matches could be returned. The index is chosen
1452 deterministically, but is subject to change in future versions of Rust.
1453 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
1454 the index where a matching element could be inserted while maintaining
1456 <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>
1457 <h5 id="examples-81"><a class="doc-anchor" href="#examples-81">§</a>Examples</h5>
1458 <p>Looks up a series of four elements. The first is found, with a
1459 uniquely determined position; the second and third are not
1460 found; the fourth could match any position in <code>[1, 4]</code>.</p>
1462 <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>];
1464 <span class="kw">let </span>seek = <span class="number">13</span>;
1465 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&</span>seek)), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1466 <span class="kw">let </span>seek = <span class="number">4</span>;
1467 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&</span>seek)), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1468 <span class="kw">let </span>seek = <span class="number">100</span>;
1469 <span class="macro">assert_eq!</span>(s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&</span>seek)), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1470 <span class="kw">let </span>seek = <span class="number">1</span>;
1471 <span class="kw">let </span>r = s.binary_search_by(|probe| probe.cmp(<span class="kw-2">&</span>seek));
1472 <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>) => <span class="bool-val">true</span>, <span class="kw">_ </span>=> <span class="bool-val">false</span>, });</code></pre></div>
1473 </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#2915-2918">Source</a></span><h4 class="code-header">pub fn <a href="#method.binary_search_by_key" class="fn">binary_search_by_key</a><'a, B, F>(
1475 b: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&B</a>,
1477 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>><div class="where">where
1478 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">&'a T</a>) -> B,
1479 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>
1480 <p>Assumes that the slice is sorted by the key, for instance with
1481 <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.
1482 If the slice is not sorted by the key, the returned result is
1483 unspecified and meaningless.</p>
1484 <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
1485 index of the matching element. If there are multiple matches, then any
1486 one of the matches could be returned. The index is chosen
1487 deterministically, but is subject to change in future versions of Rust.
1488 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
1489 the index where a matching element could be inserted while maintaining
1491 <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>
1492 <h5 id="examples-82"><a class="doc-anchor" href="#examples-82">§</a>Examples</h5>
1493 <p>Looks up a series of four elements in a slice of pairs sorted by
1494 their second elements. The first is found, with a uniquely
1495 determined position; the second and third are not found; the
1496 fourth could match any position in <code>[1, 4]</code>.</p>
1498 <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>),
1499 (<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>),
1500 (<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>)];
1502 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&</span><span class="number">13</span>, |<span class="kw-2">&</span>(a, b)| b), <span class="prelude-val">Ok</span>(<span class="number">9</span>));
1503 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&</span><span class="number">4</span>, |<span class="kw-2">&</span>(a, b)| b), <span class="prelude-val">Err</span>(<span class="number">7</span>));
1504 <span class="macro">assert_eq!</span>(s.binary_search_by_key(<span class="kw-2">&</span><span class="number">100</span>, |<span class="kw-2">&</span>(a, b)| b), <span class="prelude-val">Err</span>(<span class="number">13</span>));
1505 <span class="kw">let </span>r = s.binary_search_by_key(<span class="kw-2">&</span><span class="number">1</span>, |<span class="kw-2">&</span>(a, b)| b);
1506 <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>) => <span class="bool-val">true</span>, <span class="kw">_ </span>=> <span class="bool-val">false</span>, });</code></pre></div>
1507 </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#2969-2971">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable" class="fn">sort_unstable</a>(&mut self)<div class="where">where
1508 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>
1509 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1510 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1511 <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
1512 order of elements in the slice is unspecified. All original elements will remain in the
1513 slice and any possible modifications via interior mutability are observed in the input. Same
1514 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>
1515 <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
1516 additional precautions. For example, <code>f32::NAN != f32::NAN</code>, which doesn’t fulfill the
1517 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
1518 <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
1519 <a href="https://en.wikipedia.org/wiki/Total_order">total order</a> users can sort slices containing floating-point values. Alternatively, if all
1520 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>
1521 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>
1522 <h5 id="current-implementation"><a class="doc-anchor" href="#current-implementation">§</a>Current implementation</h5>
1523 <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
1524 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1525 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1526 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1527 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1528 slice is partially sorted.</p>
1529 <h5 id="panics-21"><a class="doc-anchor" href="#panics-21">§</a>Panics</h5>
1530 <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>
1531 <h5 id="examples-83"><a class="doc-anchor" href="#examples-83">§</a>Examples</h5>
1532 <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>];
1535 <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>
1536 </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#3021-3023">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable_by" class="fn">sort_unstable_by</a><F>(&mut self, compare: F)<div class="where">where
1537 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">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <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
1539 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1540 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1541 <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
1542 of elements in the slice is unspecified. All original elements will remain in the slice and
1543 any possible modifications via interior mutability are observed in the input. Same is true
1544 if <code>compare</code> panics.</p>
1545 <p>For example <code>|a, b| (a - b).cmp(a)</code> is a comparison function that is neither transitive nor
1546 reflexive nor total, <code>a < b < c < a</code> with <code>a = 1, b = 2, c = 3</code>. For more information and
1547 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>
1548 <h5 id="current-implementation-1"><a class="doc-anchor" href="#current-implementation-1">§</a>Current implementation</h5>
1549 <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
1550 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1551 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1552 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1553 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1554 slice is partially sorted.</p>
1555 <h5 id="panics-22"><a class="doc-anchor" href="#panics-22">§</a>Panics</h5>
1556 <p>May panic if <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1557 <h5 id="examples-84"><a class="doc-anchor" href="#examples-84">§</a>Examples</h5>
1558 <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>];
1559 v.sort_unstable_by(|a, b| a.cmp(b));
1560 <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>]);
1562 <span class="comment">// reverse sorting
1563 </span>v.sort_unstable_by(|a, b| b.cmp(a));
1564 <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>
1565 </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#3066-3069">Source</a></span><h4 class="code-header">pub fn <a href="#method.sort_unstable_by_key" class="fn">sort_unstable_by_key</a><K, F>(&mut self, f: F)<div class="where">where
1566 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">&T</a>) -> K,
1567 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
1569 <p>This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not
1570 allocate), and <em>O</em>(<em>n</em> * log(<em>n</em>)) worst-case.</p>
1571 <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
1572 order of elements in the slice is unspecified. All original elements will remain in the
1573 slice and any possible modifications via interior mutability are observed in the input. Same
1574 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>
1575 <h5 id="current-implementation-2"><a class="doc-anchor" href="#current-implementation-2">§</a>Current implementation</h5>
1576 <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
1577 combines the fast average case of quicksort with the fast worst case of heapsort, achieving
1578 linear time on fully sorted and reversed inputs. On inputs with k distinct elements, the
1579 expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
1580 <p>It is typically faster than stable sorting, except in a few special cases, e.g., when the
1581 slice is partially sorted.</p>
1582 <h5 id="panics-23"><a class="doc-anchor" href="#panics-23">§</a>Panics</h5>
1583 <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>
1584 <h5 id="examples-85"><a class="doc-anchor" href="#examples-85">§</a>Examples</h5>
1585 <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>];
1587 v.sort_unstable_by_key(|k| k.abs());
1588 <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>
1589 </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#3128-3130">Source</a></span><h4 class="code-header">pub fn <a href="#method.select_nth_unstable" class="fn">select_nth_unstable</a>(
1591 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1592 ) -> (&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">&mut T</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1593 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
1594 sorted position.</p>
1595 <p>This reordering has the additional property that any value at position <code>i < index</code> will be
1596 less than or equal to any value at a position <code>j > index</code>. Additionally, this reordering is
1597 unstable (i.e. any number of equal elements may end up at position <code>index</code>), in-place (i.e.
1598 does not allocate), and runs in <em>O</em>(<em>n</em>) time. This function is also known as “kth element”
1599 in other libraries.</p>
1600 <p>It returns a triplet of the following from the reordered slice: the subslice prior to
1601 <code>index</code>, the element at <code>index</code>, and the subslice after <code>index</code>; accordingly, the values in
1602 those two subslices will respectively all be less-than-or-equal-to and
1603 greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1604 <h5 id="current-implementation-3"><a class="doc-anchor" href="#current-implementation-3">§</a>Current implementation</h5>
1605 <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
1606 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
1607 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1609 <h5 id="panics-24"><a class="doc-anchor" href="#panics-24">§</a>Panics</h5>
1610 <p>Panics when <code>index >= len()</code>, meaning it always panics on empty slices.</p>
1611 <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>
1612 <h5 id="examples-86"><a class="doc-anchor" href="#examples-86">§</a>Examples</h5>
1613 <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>];
1615 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1617 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable(<span class="number">2</span>);
1619 <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>]);
1620 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&mut </span><span class="number">1</span>);
1621 <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>]);
1623 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1624 // about the specified index.
1625 </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>] ||
1626 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>] ||
1627 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>] ||
1628 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>
1629 </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#3189-3195">Source</a></span><h4 class="code-header">pub fn <a href="#method.select_nth_unstable_by" class="fn">select_nth_unstable_by</a><F>(
1631 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1633 ) -> (&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">&mut T</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1634 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">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <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
1635 reordering is at its final sorted position.</p>
1636 <p>This reordering has the additional property that any value at position <code>i < index</code> will be
1637 less than or equal to any value at a position <code>j > index</code> using the comparator function.
1638 Additionally, this reordering is unstable (i.e. any number of equal elements may end up at
1639 position <code>index</code>), in-place (i.e. does not allocate), and runs in <em>O</em>(<em>n</em>) time. This
1640 function is also known as “kth element” in other libraries.</p>
1641 <p>It returns a triplet of the following from the slice reordered according to the provided
1642 comparator function: the subslice prior to <code>index</code>, the element at <code>index</code>, and the subslice
1643 after <code>index</code>; accordingly, the values in those two subslices will respectively all be
1644 less-than-or-equal-to and greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1645 <h5 id="current-implementation-4"><a class="doc-anchor" href="#current-implementation-4">§</a>Current implementation</h5>
1646 <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
1647 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
1648 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1650 <h5 id="panics-25"><a class="doc-anchor" href="#panics-25">§</a>Panics</h5>
1651 <p>Panics when <code>index >= len()</code>, meaning it always panics on empty slices.</p>
1652 <p>May panic if <code>compare</code> does not implement a <a href="https://en.wikipedia.org/wiki/Total_order">total order</a>.</p>
1653 <h5 id="examples-87"><a class="doc-anchor" href="#examples-87">§</a>Examples</h5>
1654 <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>];
1656 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1657 // the median as if the slice were sorted in descending order.
1658 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable_by(<span class="number">2</span>, |a, b| b.cmp(a));
1660 <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>]);
1661 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&mut </span><span class="number">1</span>);
1662 <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>]);
1664 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1665 // about the specified index.
1666 </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>] ||
1667 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>] ||
1668 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>] ||
1669 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>
1670 </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#3254-3261">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><K, F>(
1672 index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
1674 ) -> (&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">&mut T</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1675 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">&T</a>) -> K,
1676 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
1677 reordering is at its final sorted position.</p>
1678 <p>This reordering has the additional property that any value at position <code>i < index</code> will be
1679 less than or equal to any value at a position <code>j > index</code> using the key extraction function.
1680 Additionally, this reordering is unstable (i.e. any number of equal elements may end up at
1681 position <code>index</code>), in-place (i.e. does not allocate), and runs in <em>O</em>(<em>n</em>) time. This
1682 function is also known as “kth element” in other libraries.</p>
1683 <p>It returns a triplet of the following from the slice reordered according to the provided key
1684 extraction function: the subslice prior to <code>index</code>, the element at <code>index</code>, and the subslice
1685 after <code>index</code>; accordingly, the values in those two subslices will respectively all be
1686 less-than-or-equal-to and greater-than-or-equal-to the value of the element at <code>index</code>.</p>
1687 <h5 id="current-implementation-5"><a class="doc-anchor" href="#current-implementation-5">§</a>Current implementation</h5>
1688 <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
1689 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
1690 Median of Medians using Tukey’s Ninther for pivot selection, which guarantees linear runtime
1692 <h5 id="panics-26"><a class="doc-anchor" href="#panics-26">§</a>Panics</h5>
1693 <p>Panics when <code>index >= len()</code>, meaning it always panics on empty slices.</p>
1694 <p>May panic if <code>K: Ord</code> does not implement a total order.</p>
1695 <h5 id="examples-88"><a class="doc-anchor" href="#examples-88">§</a>Examples</h5>
1696 <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>];
1698 <span class="comment">// Find the items less than or equal to the median, the median, and greater than or equal to
1699 // the median as if the slice were sorted according to absolute value.
1700 </span><span class="kw">let </span>(lesser, median, greater) = v.select_nth_unstable_by_key(<span class="number">2</span>, |a| a.abs());
1702 <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>]);
1703 <span class="macro">assert_eq!</span>(median, <span class="kw-2">&mut </span>-<span class="number">3</span>);
1704 <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>]);
1706 <span class="comment">// We are only guaranteed the slice will be one of the following, based on the way we sort
1707 // about the specified index.
1708 </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>] ||
1709 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>] ||
1710 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>] ||
1711 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>
1712 </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#3288-3290">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup" class="fn">partition_dedup</a>(&mut self) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1713 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
1714 <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>
1715 <p>Returns two slices. The first contains no consecutive repeated elements.
1716 The second contains all the duplicates in no specified order.</p>
1717 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1718 <h5 id="examples-89"><a class="doc-anchor" href="#examples-89">§</a>Examples</h5>
1719 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1721 </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>];
1723 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup();
1725 <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>]);
1726 <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>
1727 </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#3322-3324">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup_by" class="fn">partition_dedup_by</a><F>(&mut self, same_bucket: F) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1728 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">&mut T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>) -> <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
1729 a given equality relation.</p>
1730 <p>Returns two slices. The first contains no consecutive repeated elements.
1731 The second contains all the duplicates in no specified order.</p>
1732 <p>The <code>same_bucket</code> function is passed references to two elements from the slice and
1733 must determine if the elements compare equal. The elements are passed in opposite order
1734 from their order in the slice, so if <code>same_bucket(a, b)</code> returns <code>true</code>, <code>a</code> is moved
1735 at the end of the slice.</p>
1736 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1737 <h5 id="examples-90"><a class="doc-anchor" href="#examples-90">§</a>Examples</h5>
1738 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1740 </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>];
1742 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup_by(|a, b| a.eq_ignore_ascii_case(b));
1744 <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>]);
1745 <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>
1746 </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#3448-3451">Source</a><h4 class="code-header">pub fn <a href="#method.partition_dedup_by_key" class="fn">partition_dedup_by_key</a><K, F>(&mut self, key: F) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1747 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">&mut T</a>) -> K,
1748 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
1749 to the same key.</p>
1750 <p>Returns two slices. The first contains no consecutive repeated elements.
1751 The second contains all the duplicates in no specified order.</p>
1752 <p>If the slice is sorted, the first returned slice contains no duplicates.</p>
1753 <h5 id="examples-91"><a class="doc-anchor" href="#examples-91">§</a>Examples</h5>
1754 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_partition_dedup)]
1756 </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>];
1758 <span class="kw">let </span>(dedup, duplicates) = slice.partition_dedup_by_key(|i| <span class="kw-2">*</span>i / <span class="number">10</span>);
1760 <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>]);
1761 <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>
1762 </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#3489">Source</a></span><h4 class="code-header">pub fn <a href="#method.rotate_left" class="fn">rotate_left</a>(&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
1763 slice move to the end while the last <code>self.len() - mid</code> elements move to
1765 <p>After calling <code>rotate_left</code>, the element previously at index <code>mid</code> will
1766 become the first element in the slice.</p>
1767 <h5 id="panics-27"><a class="doc-anchor" href="#panics-27">§</a>Panics</h5>
1768 <p>This function will panic if <code>mid</code> is greater than the length of the
1769 slice. Note that <code>mid == self.len()</code> does <em>not</em> panic and is a no-op
1771 <h5 id="complexity"><a class="doc-anchor" href="#complexity">§</a>Complexity</h5>
1772 <p>Takes linear (in <code>self.len()</code>) time.</p>
1773 <h5 id="examples-92"><a class="doc-anchor" href="#examples-92">§</a>Examples</h5>
1774 <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>];
1775 a.rotate_left(<span class="number">2</span>);
1776 <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>
1777 <p>Rotating a subslice:</p>
1779 <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>];
1780 a[<span class="number">1</span>..<span class="number">5</span>].rotate_left(<span class="number">1</span>);
1781 <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>
1782 </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#3534">Source</a></span><h4 class="code-header">pub fn <a href="#method.rotate_right" class="fn">rotate_right</a>(&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>
1783 elements of the slice move to the end while the last <code>k</code> elements move
1785 <p>After calling <code>rotate_right</code>, the element previously at index
1786 <code>self.len() - k</code> will become the first element in the slice.</p>
1787 <h5 id="panics-28"><a class="doc-anchor" href="#panics-28">§</a>Panics</h5>
1788 <p>This function will panic if <code>k</code> is greater than the length of the
1789 slice. Note that <code>k == self.len()</code> does <em>not</em> panic and is a no-op
1791 <h5 id="complexity-1"><a class="doc-anchor" href="#complexity-1">§</a>Complexity</h5>
1792 <p>Takes linear (in <code>self.len()</code>) time.</p>
1793 <h5 id="examples-93"><a class="doc-anchor" href="#examples-93">§</a>Examples</h5>
1794 <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>];
1795 a.rotate_right(<span class="number">2</span>);
1796 <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>
1797 <p>Rotating a subslice:</p>
1799 <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>];
1800 a[<span class="number">1</span>..<span class="number">5</span>].rotate_right(<span class="number">1</span>);
1801 <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>
1802 </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#3557-3559">Source</a></span><h4 class="code-header">pub fn <a href="#method.fill" class="fn">fill</a>(&mut self, value: T)<div class="where">where
1803 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>
1804 <h5 id="examples-94"><a class="doc-anchor" href="#examples-94">§</a>Examples</h5>
1805 <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>];
1806 buf.fill(<span class="number">1</span>);
1807 <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>
1808 </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#3581-3583">Source</a></span><h4 class="code-header">pub fn <a href="#method.fill_with" class="fn">fill_with</a><F>(&mut self, f: F)<div class="where">where
1809 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>() -> T,</div></h4></section></summary><div class="docblock"><p>Fills <code>self</code> with elements returned by calling a closure repeatedly.</p>
1810 <p>This method uses a closure to create new values. If you’d rather
1811 <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>
1812 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
1814 <h5 id="examples-95"><a class="doc-anchor" href="#examples-95">§</a>Examples</h5>
1815 <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>];
1816 buf.fill_with(Default::default);
1817 <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>
1818 </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#3644-3646">Source</a></span><h4 class="code-header">pub fn <a href="#method.clone_from_slice" class="fn">clone_from_slice</a>(&mut self, src: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1819 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>
1820 <p>The length of <code>src</code> must be the same as <code>self</code>.</p>
1821 <h5 id="panics-29"><a class="doc-anchor" href="#panics-29">§</a>Panics</h5>
1822 <p>This function will panic if the two slices have different lengths.</p>
1823 <h5 id="examples-96"><a class="doc-anchor" href="#examples-96">§</a>Examples</h5>
1824 <p>Cloning two elements from a slice into another:</p>
1826 <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>];
1827 <span class="kw">let </span><span class="kw-2">mut </span>dst = [<span class="number">0</span>, <span class="number">0</span>];
1829 <span class="comment">// Because the slices have to be the same length,
1830 // we slice the source slice from four elements
1831 // to two. It will panic if we don't do this.
1832 </span>dst.clone_from_slice(<span class="kw-2">&</span>src[<span class="number">2</span>..]);
1834 <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>]);
1835 <span class="macro">assert_eq!</span>(dst, [<span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
1836 <p>Rust enforces that there can only be one mutable reference with no
1837 immutable references to a particular piece of data in a particular
1838 scope. Because of this, attempting to use <code>clone_from_slice</code> on a
1839 single slice will result in a compile failure:</p>
1841 <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>];
1843 slice[..<span class="number">2</span>].clone_from_slice(<span class="kw-2">&</span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1844 <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
1845 sub-slices from a slice:</p>
1847 <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>];
1850 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1851 left.clone_from_slice(<span class="kw-2">&</span>right[<span class="number">1</span>..]);
1854 <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>
1855 </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#3710-3712">Source</a></span><h4 class="code-header">pub fn <a href="#method.copy_from_slice" class="fn">copy_from_slice</a>(&mut self, src: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1856 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>
1857 <p>The length of <code>src</code> must be the same as <code>self</code>.</p>
1858 <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>
1859 <h5 id="panics-30"><a class="doc-anchor" href="#panics-30">§</a>Panics</h5>
1860 <p>This function will panic if the two slices have different lengths.</p>
1861 <h5 id="examples-97"><a class="doc-anchor" href="#examples-97">§</a>Examples</h5>
1862 <p>Copying two elements from a slice into another:</p>
1864 <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>];
1865 <span class="kw">let </span><span class="kw-2">mut </span>dst = [<span class="number">0</span>, <span class="number">0</span>];
1867 <span class="comment">// Because the slices have to be the same length,
1868 // we slice the source slice from four elements
1869 // to two. It will panic if we don't do this.
1870 </span>dst.copy_from_slice(<span class="kw-2">&</span>src[<span class="number">2</span>..]);
1872 <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>]);
1873 <span class="macro">assert_eq!</span>(dst, [<span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
1874 <p>Rust enforces that there can only be one mutable reference with no
1875 immutable references to a particular piece of data in a particular
1876 scope. Because of this, attempting to use <code>copy_from_slice</code> on a
1877 single slice will result in a compile failure:</p>
1879 <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>];
1881 slice[..<span class="number">2</span>].copy_from_slice(<span class="kw-2">&</span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1882 <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
1883 sub-slices from a slice:</p>
1885 <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>];
1888 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1889 left.copy_from_slice(<span class="kw-2">&</span>right[<span class="number">1</span>..]);
1892 <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>
1893 </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#3766-3768">Source</a></span><h4 class="code-header">pub fn <a href="#method.copy_within" class="fn">copy_within</a><R>(&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
1894 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>,
1895 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,
1896 using a memmove.</p>
1897 <p><code>src</code> is the range within <code>self</code> to copy from. <code>dest</code> is the starting
1898 index of the range within <code>self</code> to copy to, which will have the same
1899 length as <code>src</code>. The two ranges may overlap. The ends of the two ranges
1900 must be less than or equal to <code>self.len()</code>.</p>
1901 <h5 id="panics-31"><a class="doc-anchor" href="#panics-31">§</a>Panics</h5>
1902 <p>This function will panic if either range exceeds the end of the slice,
1903 or if the end of <code>src</code> is before the start.</p>
1904 <h5 id="examples-98"><a class="doc-anchor" href="#examples-98">§</a>Examples</h5>
1905 <p>Copying four bytes within a slice:</p>
1907 <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>;
1909 bytes.copy_within(<span class="number">1</span>..<span class="number">5</span>, <span class="number">8</span>);
1911 <span class="macro">assert_eq!</span>(<span class="kw-2">&</span>bytes, <span class="string">b"Hello, Wello!"</span>);</code></pre></div>
1912 </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#3833">Source</a></span><h4 class="code-header">pub fn <a href="#method.swap_with_slice" class="fn">swap_with_slice</a>(&mut self, other: &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>
1913 <p>The length of <code>other</code> must be the same as <code>self</code>.</p>
1914 <h5 id="panics-32"><a class="doc-anchor" href="#panics-32">§</a>Panics</h5>
1915 <p>This function will panic if the two slices have different lengths.</p>
1916 <h5 id="example"><a class="doc-anchor" href="#example">§</a>Example</h5>
1917 <p>Swapping two elements across slices:</p>
1919 <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>];
1920 <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>];
1922 slice1.swap_with_slice(<span class="kw-2">&mut </span>slice2[<span class="number">2</span>..]);
1924 <span class="macro">assert_eq!</span>(slice1, [<span class="number">3</span>, <span class="number">4</span>]);
1925 <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>
1926 <p>Rust enforces that there can only be one mutable reference to a
1927 particular piece of data in a particular scope. Because of this,
1928 attempting to use <code>swap_with_slice</code> on a single slice will result in
1929 a compile failure:</p>
1931 <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>];
1932 slice[..<span class="number">2</span>].swap_with_slice(<span class="kw-2">&mut </span>slice[<span class="number">3</span>..]); <span class="comment">// compile fail!</span></code></pre></div>
1933 <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
1934 mutable sub-slices from a slice:</p>
1936 <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>];
1939 <span class="kw">let </span>(left, right) = slice.split_at_mut(<span class="number">2</span>);
1940 left.swap_with_slice(<span class="kw-2">&mut </span>right[<span class="number">1</span>..]);
1943 <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>
1944 </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#3910">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.align_to" class="fn">align_to</a><U>(&self) -> (&<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.slice.html">[U]</a>, &<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
1946 <p>This method splits the slice into three distinct slices: prefix, correctly aligned middle
1947 slice of a new type, and the suffix slice. The middle part will be as big as possible under
1948 the given alignment constraint and element size.</p>
1949 <p>This method has no purpose when either input element <code>T</code> or output element <code>U</code> are
1950 zero-sized and will return the original slice without splitting anything.</p>
1951 <h5 id="safety-11"><a class="doc-anchor" href="#safety-11">§</a>Safety</h5>
1952 <p>This method is essentially a <code>transmute</code> with respect to the elements in the returned
1953 middle slice, so all the usual caveats pertaining to <code>transmute::<T, U></code> also apply here.</p>
1954 <h5 id="examples-99"><a class="doc-anchor" href="#examples-99">§</a>Examples</h5>
1957 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">unsafe </span>{
1958 <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>];
1959 <span class="kw">let </span>(prefix, shorts, suffix) = bytes.align_to::<u16>();
1960 <span class="comment">// less_efficient_algorithm_for_bytes(prefix);
1961 // more_efficient_algorithm_for_aligned_shorts(shorts);
1962 // less_efficient_algorithm_for_bytes(suffix);
1963 </span>}</code></pre></div>
1964 </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#3975">Source</a></span><h4 class="code-header">pub unsafe fn <a href="#method.align_to_mut" class="fn">align_to_mut</a><U>(&mut self) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[U]</a>, &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
1965 types is maintained.</p>
1966 <p>This method splits the slice into three distinct slices: prefix, correctly aligned middle
1967 slice of a new type, and the suffix slice. The middle part will be as big as possible under
1968 the given alignment constraint and element size.</p>
1969 <p>This method has no purpose when either input element <code>T</code> or output element <code>U</code> are
1970 zero-sized and will return the original slice without splitting anything.</p>
1971 <h5 id="safety-12"><a class="doc-anchor" href="#safety-12">§</a>Safety</h5>
1972 <p>This method is essentially a <code>transmute</code> with respect to the elements in the returned
1973 middle slice, so all the usual caveats pertaining to <code>transmute::<T, U></code> also apply here.</p>
1974 <h5 id="examples-100"><a class="doc-anchor" href="#examples-100">§</a>Examples</h5>
1977 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">unsafe </span>{
1978 <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>];
1979 <span class="kw">let </span>(prefix, shorts, suffix) = bytes.align_to_mut::<u16>();
1980 <span class="comment">// less_efficient_algorithm_for_bytes(prefix);
1981 // more_efficient_algorithm_for_aligned_shorts(shorts);
1982 // less_efficient_algorithm_for_bytes(suffix);
1983 </span>}</code></pre></div>
1984 </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#4066-4070">Source</a><h4 class="code-header">pub fn <a href="#method.as_simd" class="fn">as_simd</a><const LANES: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(&self) -> (&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &[<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><T, LANES>], &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
1985 <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><T, LANES>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; LANES]</a>>,
1986 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>,
1987 <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><LANES>: <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>
1988 <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
1989 guarantees as that method.</p>
1990 <h5 id="panics-33"><a class="doc-anchor" href="#panics-33">§</a>Panics</h5>
1991 <p>This will panic if the size of the SIMD type is different from
1992 <code>LANES</code> times that of the scalar.</p>
1993 <p>At the time of writing, the trait restrictions on <code>Simd<T, LANES></code> keeps
1994 that from ever happening, as only power-of-two numbers of lanes are
1995 supported. It’s possible that, in the future, those restrictions might
1996 be lifted in a way that would make it possible to see panics from this
1997 method for something like <code>LANES == 3</code>.</p>
1998 <h5 id="examples-101"><a class="doc-anchor" href="#examples-101">§</a>Examples</h5>
1999 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(portable_simd)]
2000 </span><span class="kw">use </span>core::simd::prelude::<span class="kw-2">*</span>;
2002 <span class="kw">let </span>short = <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
2003 <span class="kw">let </span>(prefix, middle, suffix) = short.as_simd::<<span class="number">4</span>>();
2004 <span class="macro">assert_eq!</span>(middle, []); <span class="comment">// Not enough elements for anything in the middle
2006 // They might be split in any possible way between prefix and suffix
2007 </span><span class="kw">let </span>it = prefix.iter().chain(suffix).copied();
2008 <span class="macro">assert_eq!</span>(it.collect::<Vec<<span class="kw">_</span>>>(), <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
2010 <span class="kw">fn </span>basic_simd_sum(x: <span class="kw-2">&</span>[f32]) -> f32 {
2011 <span class="kw">use </span>std::ops::Add;
2012 <span class="kw">let </span>(prefix, middle, suffix) = x.as_simd();
2013 <span class="kw">let </span>sums = f32x4::from_array([
2014 prefix.iter().copied().sum(),
2015 <span class="number">0.0</span>,
2016 <span class="number">0.0</span>,
2017 suffix.iter().copied().sum(),
2019 <span class="kw">let </span>sums = middle.iter().copied().fold(sums, f32x4::add);
2023 <span class="kw">let </span>numbers: Vec<f32> = (<span class="number">1</span>..<span class="number">101</span>).map(|x| x <span class="kw">as _</span>).collect();
2024 <span class="macro">assert_eq!</span>(basic_simd_sum(<span class="kw-2">&</span>numbers[<span class="number">1</span>..<span class="number">99</span>]), <span class="number">4949.0</span>);</code></pre></div>
2025 </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#4102-4106">Source</a><h4 class="code-header">pub fn <a href="#method.as_simd_mut" class="fn">as_simd_mut</a><const LANES: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
2027 ) -> (&mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, &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><T, LANES>], &mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>)<div class="where">where
2028 <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><T, LANES>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[T; LANES]</a>>,
2029 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>,
2030 <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><LANES>: <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,
2031 and a mutable suffix.</p>
2032 <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
2033 guarantees as that method.</p>
2034 <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>
2035 <h5 id="panics-34"><a class="doc-anchor" href="#panics-34">§</a>Panics</h5>
2036 <p>This will panic if the size of the SIMD type is different from
2037 <code>LANES</code> times that of the scalar.</p>
2038 <p>At the time of writing, the trait restrictions on <code>Simd<T, LANES></code> keeps
2039 that from ever happening, as only power-of-two numbers of lanes are
2040 supported. It’s possible that, in the future, those restrictions might
2041 be lifted in a way that would make it possible to see panics from this
2042 method for something like <code>LANES == 3</code>.</p>
2043 </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#4141-4143">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted" class="fn">is_sorted</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
2044 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>
2045 <p>That is, for each element <code>a</code> and its following element <code>b</code>, <code>a <= b</code> must hold. If the
2046 slice yields exactly zero or one element, <code>true</code> is returned.</p>
2047 <p>Note that if <code>Self::Item</code> is only <code>PartialOrd</code>, but not <code>Ord</code>, the above definition
2048 implies that this function returns <code>false</code> if any two consecutive items are not
2050 <h5 id="examples-102"><a class="doc-anchor" href="#examples-102">§</a>Examples</h5>
2051 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>empty: [i32; <span class="number">0</span>] = [];
2053 <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());
2054 <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());
2055 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted());
2056 <span class="macro">assert!</span>(empty.is_sorted());
2057 <span class="macro">assert!</span>(![<span class="number">0.0</span>, <span class="number">1.0</span>, f32::NAN].is_sorted());</code></pre></div>
2058 </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#4184-4186">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted_by" class="fn">is_sorted_by</a><'a, F>(&'a self, compare: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
2059 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">&'a T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a T</a>) -> <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>
2060 <p>Instead of using <code>PartialOrd::partial_cmp</code>, this function uses the given <code>compare</code>
2061 function to determine whether two elements are to be considered in sorted order.</p>
2062 <h5 id="examples-103"><a class="doc-anchor" href="#examples-103">§</a>Examples</h5>
2063 <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 <= b));
2064 <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 < b));
2066 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted_by(|a, b| <span class="bool-val">true</span>));
2067 <span class="macro">assert!</span>([<span class="number">0</span>].is_sorted_by(|a, b| <span class="bool-val">false</span>));
2069 <span class="kw">let </span>empty: [i32; <span class="number">0</span>] = [];
2070 <span class="macro">assert!</span>(empty.is_sorted_by(|a, b| <span class="bool-val">false</span>));
2071 <span class="macro">assert!</span>(empty.is_sorted_by(|a, b| <span class="bool-val">true</span>));</code></pre></div>
2072 </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#4208-4211">Source</a></span><h4 class="code-header">pub fn <a href="#method.is_sorted_by_key" class="fn">is_sorted_by_key</a><'a, F, K>(&'a self, f: F) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><div class="where">where
2073 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">&'a T</a>) -> K,
2074 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>
2075 <p>Instead of comparing the slice’s elements directly, this function compares the keys of the
2076 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
2077 documentation for more information.</p>
2078 <h5 id="examples-104"><a class="doc-anchor" href="#examples-104">§</a>Examples</h5>
2079 <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()));
2080 <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>
2081 </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#4267-4269">Source</a></span><h4 class="code-header">pub fn <a href="#method.partition_point" class="fn">partition_point</a><P>(&self, pred: P) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a><div class="where">where
2082 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">&T</a>) -> <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
2083 (the index of the first element of the second partition).</p>
2084 <p>The slice is assumed to be partitioned according to the given predicate.
2085 This means that all elements for which the predicate returns true are at the start of the slice
2086 and all elements for which the predicate returns false are at the end.
2087 For example, <code>[7, 15, 3, 5, 4, 12, 6]</code> is partitioned under the predicate <code>x % 2 != 0</code>
2088 (all odd numbers are at the start, all even at the end).</p>
2089 <p>If this slice is not partitioned, the returned result is unspecified and meaningless,
2090 as this method performs a kind of binary search.</p>
2091 <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>
2092 <h5 id="examples-105"><a class="doc-anchor" href="#examples-105">§</a>Examples</h5>
2093 <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>];
2094 <span class="kw">let </span>i = v.partition_point(|<span class="kw-2">&</span>x| x < <span class="number">5</span>);
2096 <span class="macro">assert_eq!</span>(i, <span class="number">4</span>);
2097 <span class="macro">assert!</span>(v[..i].iter().all(|<span class="kw-2">&</span>x| x < <span class="number">5</span>));
2098 <span class="macro">assert!</span>(v[i..].iter().all(|<span class="kw-2">&</span>x| !(x < <span class="number">5</span>)));</code></pre></div>
2099 <p>If all elements of the slice match the predicate, including if the slice
2100 is empty, then the length of the slice will be returned:</p>
2102 <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>];
2103 <span class="macro">assert_eq!</span>(a.partition_point(|x| x < <span class="kw-2">&</span><span class="number">100</span>), a.len());
2104 <span class="kw">let </span>a: [i32; <span class="number">0</span>] = [];
2105 <span class="macro">assert_eq!</span>(a.partition_point(|x| x < <span class="kw-2">&</span><span class="number">100</span>), <span class="number">0</span>);</code></pre></div>
2106 <p>If you want to insert an item to a sorted vector, while maintaining
2109 <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>];
2110 <span class="kw">let </span>num = <span class="number">42</span>;
2111 <span class="kw">let </span>idx = s.partition_point(|<span class="kw-2">&</span>x| x <= num);
2113 <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>
2114 </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#4325">Source</a><h4 class="code-header">pub fn <a href="#method.take" class="fn">take</a><'a, R>(self: &mut &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, range: R) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>><div class="where">where
2115 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the subslice corresponding to the given range
2116 and returns a reference to it.</p>
2117 <p>Returns <code>None</code> and does not modify the slice if the given
2118 range is out of bounds.</p>
2119 <p>Note that this method only accepts one-sided ranges such as
2120 <code>2..</code> or <code>..6</code>, but not <code>2..6</code>.</p>
2121 <h5 id="examples-106"><a class="doc-anchor" href="#examples-106">§</a>Examples</h5>
2122 <p>Taking the first three elements of a slice:</p>
2124 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2126 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&</span>[<span class="kw">_</span>] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2127 <span class="kw">let </span><span class="kw-2">mut </span>first_three = slice.take(..<span class="number">3</span>).unwrap();
2129 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'d'</span>]);
2130 <span class="macro">assert_eq!</span>(first_three, <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);</code></pre></div>
2131 <p>Taking the last two elements of a slice:</p>
2133 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2135 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&</span>[<span class="kw">_</span>] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2136 <span class="kw">let </span><span class="kw-2">mut </span>tail = slice.take(<span class="number">2</span>..).unwrap();
2138 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2139 <span class="macro">assert_eq!</span>(tail, <span class="kw-2">&</span>[<span class="string">'c'</span>, <span class="string">'d'</span>]);</code></pre></div>
2140 <p>Getting <code>None</code> when <code>range</code> is out of bounds:</p>
2142 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2144 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&</span>[<span class="kw">_</span>] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2146 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(<span class="number">5</span>..));
2147 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(..<span class="number">5</span>));
2148 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take(..=<span class="number">4</span>));
2149 <span class="kw">let </span>expected: <span class="kw-2">&</span>[char] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2150 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(expected), slice.take(..<span class="number">4</span>));</code></pre></div>
2151 </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#4394-4397">Source</a><h4 class="code-header">pub fn <a href="#method.take_mut" class="fn">take_mut</a><'a, R>(self: &mut &'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>, range: R) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>><div class="where">where
2152 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the subslice corresponding to the given range
2153 and returns a mutable reference to it.</p>
2154 <p>Returns <code>None</code> and does not modify the slice if the given
2155 range is out of bounds.</p>
2156 <p>Note that this method only accepts one-sided ranges such as
2157 <code>2..</code> or <code>..6</code>, but not <code>2..6</code>.</p>
2158 <h5 id="examples-107"><a class="doc-anchor" href="#examples-107">§</a>Examples</h5>
2159 <p>Taking the first three elements of a slice:</p>
2161 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2163 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2164 <span class="kw">let </span><span class="kw-2">mut </span>first_three = slice.take_mut(..<span class="number">3</span>).unwrap();
2166 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&mut </span>[<span class="string">'d'</span>]);
2167 <span class="macro">assert_eq!</span>(first_three, <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>]);</code></pre></div>
2168 <p>Taking the last two elements of a slice:</p>
2170 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2172 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2173 <span class="kw">let </span><span class="kw-2">mut </span>tail = slice.take_mut(<span class="number">2</span>..).unwrap();
2175 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2176 <span class="macro">assert_eq!</span>(tail, <span class="kw-2">&mut </span>[<span class="string">'c'</span>, <span class="string">'d'</span>]);</code></pre></div>
2177 <p>Getting <code>None</code> when <code>range</code> is out of bounds:</p>
2179 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2181 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2183 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(<span class="number">5</span>..));
2184 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(..<span class="number">5</span>));
2185 <span class="macro">assert_eq!</span>(<span class="prelude-val">None</span>, slice.take_mut(..=<span class="number">4</span>));
2186 <span class="kw">let </span>expected: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>];
2187 <span class="macro">assert_eq!</span>(<span class="prelude-val">Some</span>(expected), slice.take_mut(..<span class="number">4</span>));</code></pre></div>
2188 </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#4433">Source</a><h4 class="code-header">pub fn <a href="#method.take_first" class="fn">take_first</a><'a>(self: &mut &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a 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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the first element of the slice and returns a reference
2190 <p>Returns <code>None</code> if the slice is empty.</p>
2191 <h5 id="examples-108"><a class="doc-anchor" href="#examples-108">§</a>Examples</h5>
2192 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2194 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&</span>[<span class="kw">_</span>] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2195 <span class="kw">let </span>first = slice.take_first().unwrap();
2197 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'b'</span>, <span class="string">'c'</span>]);
2198 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&</span><span class="string">'a'</span>);</code></pre></div>
2199 </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#4458">Source</a><h4 class="code-header">pub fn <a href="#method.take_first_mut" class="fn">take_first_mut</a><'a>(self: &mut &'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a mut 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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the first element of the slice and returns a mutable
2200 reference to it.</p>
2201 <p>Returns <code>None</code> if the slice is empty.</p>
2202 <h5 id="examples-109"><a class="doc-anchor" href="#examples-109">§</a>Examples</h5>
2203 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2205 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2206 <span class="kw">let </span>first = slice.take_first_mut().unwrap();
2207 <span class="kw-2">*</span>first = <span class="string">'d'</span>;
2209 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'b'</span>, <span class="string">'c'</span>]);
2210 <span class="macro">assert_eq!</span>(first, <span class="kw-2">&</span><span class="string">'d'</span>);</code></pre></div>
2211 </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#4482">Source</a><h4 class="code-header">pub fn <a href="#method.take_last" class="fn">take_last</a><'a>(self: &mut &'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a 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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the last element of the slice and returns a reference
2213 <p>Returns <code>None</code> if the slice is empty.</p>
2214 <h5 id="examples-110"><a class="doc-anchor" href="#examples-110">§</a>Examples</h5>
2215 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2217 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&</span>[<span class="kw">_</span>] = <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2218 <span class="kw">let </span>last = slice.take_last().unwrap();
2220 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2221 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&</span><span class="string">'c'</span>);</code></pre></div>
2222 </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#4507">Source</a><h4 class="code-header">pub fn <a href="#method.take_last_mut" class="fn">take_last_mut</a><'a>(self: &mut &'a mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&'a mut 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_take</code>)</span></div></span></summary><div class="docblock"><p>Removes the last element of the slice and returns a mutable
2223 reference to it.</p>
2224 <p>Returns <code>None</code> if the slice is empty.</p>
2225 <h5 id="examples-111"><a class="doc-anchor" href="#examples-111">§</a>Examples</h5>
2226 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(slice_take)]
2228 </span><span class="kw">let </span><span class="kw-2">mut </span>slice: <span class="kw-2">&mut </span>[<span class="kw">_</span>] = <span class="kw-2">&mut </span>[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>];
2229 <span class="kw">let </span>last = slice.take_last_mut().unwrap();
2230 <span class="kw-2">*</span>last = <span class="string">'d'</span>;
2232 <span class="macro">assert_eq!</span>(slice, <span class="kw-2">&</span>[<span class="string">'a'</span>, <span class="string">'b'</span>]);
2233 <span class="macro">assert_eq!</span>(last, <span class="kw-2">&</span><span class="string">'d'</span>);</code></pre></div>
2234 </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#4563-4568">Source</a><h4 class="code-header">pub unsafe fn <a href="#method.get_many_unchecked_mut" class="fn">get_many_unchecked_mut</a><I, const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
2236 indices: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[I; N]</a>,
2237 ) -> [&mut <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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
2238 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</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>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>
2239 <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
2240 that this method takes an array, so all indices must be of the same type.
2241 If passed an array of <code>usize</code>s this method gives back an array of mutable references
2242 to single elements, while if passed an array of ranges it gives back an array of
2243 mutable references to slices.</p>
2244 <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>
2245 <h5 id="safety-13"><a class="doc-anchor" href="#safety-13">§</a>Safety</h5>
2246 <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>
2247 even if the resulting references are not used.</p>
2248 <h5 id="examples-112"><a class="doc-anchor" href="#examples-112">§</a>Examples</h5>
2249 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(get_many_mut)]
2251 </span><span class="kw">let </span>x = <span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>];
2253 <span class="kw">unsafe </span>{
2254 <span class="kw">let </span>[a, b] = x.get_many_unchecked_mut([<span class="number">0</span>, <span class="number">2</span>]);
2255 <span class="kw-2">*</span>a <span class="kw-2">*</span>= <span class="number">10</span>;
2256 <span class="kw-2">*</span>b <span class="kw-2">*</span>= <span class="number">100</span>;
2258 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">10</span>, <span class="number">2</span>, <span class="number">400</span>]);
2260 <span class="kw">unsafe </span>{
2261 <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>]);
2262 a[<span class="number">0</span>] = <span class="number">8</span>;
2263 b[<span class="number">0</span>] = <span class="number">88</span>;
2264 b[<span class="number">1</span>] = <span class="number">888</span>;
2266 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">8</span>, <span class="number">88</span>, <span class="number">888</span>]);
2268 <span class="kw">unsafe </span>{
2269 <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>]);
2270 a[<span class="number">0</span>] = <span class="number">11</span>;
2271 a[<span class="number">1</span>] = <span class="number">111</span>;
2272 b[<span class="number">0</span>] = <span class="number">1</span>;
2274 <span class="macro">assert_eq!</span>(x, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">11</span>, <span class="number">111</span>]);</code></pre></div>
2275 </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#4632-4637">Source</a><h4 class="code-header">pub fn <a href="#method.get_many_mut" class="fn">get_many_mut</a><I, const N: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>(
2277 indices: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">[I; N]</a>,
2278 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><[&mut <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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>>>::<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>><div class="where">where
2279 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><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</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>get_many_mut</code>)</span></div></span></summary><div class="docblock"><p>Returns mutable references to many indices at once.</p>
2280 <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
2281 that this method takes an array, so all indices must be of the same type.
2282 If passed an array of <code>usize</code>s this method gives back an array of mutable references
2283 to single elements, while if passed an array of ranges it gives back an array of
2284 mutable references to slices.</p>
2285 <p>Returns an error if any index is out-of-bounds, or if there are overlapping indices.
2286 An empty range is not considered to overlap if it is located at the beginning or at
2287 the end of another range, but is considered to overlap if it is located in the middle.</p>
2288 <p>This method does a O(n^2) check to check that there are no overlapping indices, so be careful
2289 when passing many indices.</p>
2290 <h5 id="examples-113"><a class="doc-anchor" href="#examples-113">§</a>Examples</h5>
2291 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(get_many_mut)]
2293 </span><span class="kw">let </span>v = <span class="kw-2">&mut </span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
2294 <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>]) {
2295 <span class="kw-2">*</span>a = <span class="number">413</span>;
2296 <span class="kw-2">*</span>b = <span class="number">612</span>;
2298 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</span>[<span class="number">413</span>, <span class="number">2</span>, <span class="number">612</span>]);
2300 <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>]) {
2301 a[<span class="number">0</span>] = <span class="number">8</span>;
2302 b[<span class="number">0</span>] = <span class="number">88</span>;
2303 b[<span class="number">1</span>] = <span class="number">888</span>;
2305 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</span>[<span class="number">8</span>, <span class="number">88</span>, <span class="number">888</span>]);
2307 <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>]) {
2308 a[<span class="number">0</span>] = <span class="number">11</span>;
2309 a[<span class="number">1</span>] = <span class="number">111</span>;
2310 b[<span class="number">0</span>] = <span class="number">1</span>;
2312 <span class="macro">assert_eq!</span>(v, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">11</span>, <span class="number">111</span>]);</code></pre></div>
2313 </div></details><details class="toggle method-toggle" open><summary><section id="method.element_offset" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/slice/mod.rs.html#4687">Source</a><h4 class="code-header">pub fn <a href="#method.element_offset" class="fn">element_offset</a>(&self, element: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<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>substr_range</code>)</span></div></span></summary><div class="docblock"><p>Returns the index that an element reference points to.</p>
2314 <p>Returns <code>None</code> if <code>element</code> does not point to the start of an element within the slice.</p>
2315 <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>
2316 <p>Note that this uses pointer arithmetic and <strong>does not compare elements</strong>.
2317 To find the index of an element via comparison, use
2318 <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>
2319 <h5 id="panics-35"><a class="doc-anchor" href="#panics-35">§</a>Panics</h5>
2320 <p>Panics if <code>T</code> is zero-sized.</p>
2321 <h5 id="examples-114"><a class="doc-anchor" href="#examples-114">§</a>Examples</h5>
2324 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2326 </span><span class="kw">let </span>nums: <span class="kw-2">&</span>[u32] = <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">1</span>];
2327 <span class="kw">let </span>num = <span class="kw-2">&</span>nums[<span class="number">2</span>];
2329 <span class="macro">assert_eq!</span>(num, <span class="kw-2">&</span><span class="number">1</span>);
2330 <span class="macro">assert_eq!</span>(nums.element_offset(num), <span class="prelude-val">Some</span>(<span class="number">2</span>));</code></pre></div>
2331 <p>Returning <code>None</code> with an unaligned element:</p>
2333 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2335 </span><span class="kw">let </span>arr: <span class="kw-2">&</span>[[u32; <span class="number">2</span>]] = <span class="kw-2">&</span>[[<span class="number">0</span>, <span class="number">1</span>], [<span class="number">2</span>, <span class="number">3</span>]];
2336 <span class="kw">let </span>flat_arr: <span class="kw-2">&</span>[u32] = arr.as_flattened();
2338 <span class="kw">let </span>ok_elm: <span class="kw-2">&</span>[u32; <span class="number">2</span>] = flat_arr[<span class="number">0</span>..<span class="number">2</span>].try_into().unwrap();
2339 <span class="kw">let </span>weird_elm: <span class="kw-2">&</span>[u32; <span class="number">2</span>] = flat_arr[<span class="number">1</span>..<span class="number">3</span>].try_into().unwrap();
2341 <span class="macro">assert_eq!</span>(ok_elm, <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>]);
2342 <span class="macro">assert_eq!</span>(weird_elm, <span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>]);
2344 <span class="macro">assert_eq!</span>(arr.element_offset(ok_elm), <span class="prelude-val">Some</span>(<span class="number">0</span>)); <span class="comment">// Points to element 0
2345 </span><span class="macro">assert_eq!</span>(arr.element_offset(weird_elm), <span class="prelude-val">None</span>); <span class="comment">// Points between element 0 and 1</span></code></pre></div>
2346 </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#4741">Source</a><h4 class="code-header">pub fn <a href="#method.subslice_range" class="fn">subslice_range</a>(&self, subslice: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[T]</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><<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>substr_range</code>)</span></div></span></summary><div class="docblock"><p>Returns the range of indices that a subslice points to.</p>
2347 <p>Returns <code>None</code> if <code>subslice</code> does not point within the slice or if it is not aligned with the
2348 elements in the slice.</p>
2349 <p>This method <strong>does not compare elements</strong>. Instead, this method finds the location in the slice that
2350 <code>subslice</code> was obtained from. To find the index of a subslice via comparison, instead use
2351 <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>
2352 <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>
2353 <p>Note that this may return a false positive (either <code>Some(0..0)</code> or <code>Some(self.len()..self.len())</code>)
2354 if <code>subslice</code> has a length of zero and points to the beginning or end of another, separate, slice.</p>
2355 <h5 id="panics-36"><a class="doc-anchor" href="#panics-36">§</a>Panics</h5>
2356 <p>Panics if <code>T</code> is zero-sized.</p>
2357 <h5 id="examples-115"><a class="doc-anchor" href="#examples-115">§</a>Examples</h5>
2360 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(substr_range)]
2362 </span><span class="kw">let </span>nums = <span class="kw-2">&</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>];
2364 <span class="kw">let </span><span class="kw-2">mut </span>iter = nums
2365 .split(|t| <span class="kw-2">*</span>t == <span class="number">0</span>)
2366 .map(|n| nums.subslice_range(n).unwrap());
2368 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">0</span>..<span class="number">0</span>));
2369 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">1</span>..<span class="number">3</span>));
2370 <span class="macro">assert_eq!</span>(iter.next(), <span class="prelude-val">Some</span>(<span class="number">4</span>..<span class="number">4</span>));
2371 <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>
2372 </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#4791">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_flattened" class="fn">as_flattened</a>(&self) -> &<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>&[[T; N]]</code>, and flattens it to a <code>&[T]</code>.</p>
2373 <h5 id="panics-37"><a class="doc-anchor" href="#panics-37">§</a>Panics</h5>
2374 <p>This panics if the length of the resulting slice would overflow a <code>usize</code>.</p>
2375 <p>This is only possible when flattening a slice of arrays of zero-sized
2376 types, and thus tends to be irrelevant in practice. If
2377 <code>size_of::<T>() > 0</code>, this will never panic.</p>
2378 <h5 id="examples-116"><a class="doc-anchor" href="#examples-116">§</a>Examples</h5>
2379 <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">&</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>]);
2381 <span class="macro">assert_eq!</span>(
2382 [[<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(),
2383 [[<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(),
2386 <span class="kw">let </span>slice_of_empty_arrays: <span class="kw-2">&</span>[[i32; <span class="number">0</span>]] = <span class="kw-2">&</span>[[], [], [], [], []];
2387 <span class="macro">assert!</span>(slice_of_empty_arrays.as_flattened().is_empty());
2389 <span class="kw">let </span>empty_slice_of_arrays: <span class="kw-2">&</span>[[u32; <span class="number">10</span>]] = <span class="kw-2">&</span>[];
2390 <span class="macro">assert!</span>(empty_slice_of_arrays.as_flattened().is_empty());</code></pre></div>
2391 </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#4828">Source</a></span><h4 class="code-header">pub fn <a href="#method.as_flattened_mut" class="fn">as_flattened_mut</a>(&mut self) -> &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>&mut [[T; N]]</code>, and flattens it to a <code>&mut [T]</code>.</p>
2392 <h5 id="panics-38"><a class="doc-anchor" href="#panics-38">§</a>Panics</h5>
2393 <p>This panics if the length of the resulting slice would overflow a <code>usize</code>.</p>
2394 <p>This is only possible when flattening a slice of arrays of zero-sized
2395 types, and thus tends to be irrelevant in practice. If
2396 <code>size_of::<T>() > 0</code>, this will never panic.</p>
2397 <h5 id="examples-117"><a class="doc-anchor" href="#examples-117">§</a>Examples</h5>
2398 <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">&mut </span>[i32]) {
2399 <span class="kw">for </span>i <span class="kw">in </span>slice {
2400 <span class="kw-2">*</span>i += <span class="number">5</span>;
2404 <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>]];
2405 add_5_to_all(array.as_flattened_mut());
2406 <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>
2407 </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#4865">Source</a><h4 class="code-header">pub fn <a href="#method.sort_floats" class="fn">sort_floats</a>(&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>
2408 <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
2409 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>
2410 <h5 id="current-implementation-6"><a class="doc-anchor" href="#current-implementation-6">§</a>Current implementation</h5>
2411 <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>
2412 <h5 id="examples-118"><a class="doc-anchor" href="#examples-118">§</a>Examples</h5>
2413 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(sort_floats)]
2414 </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>];
2417 <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];
2418 <span class="macro">assert_eq!</span>(<span class="kw-2">&</span>v[..<span class="number">8</span>], <span class="kw-2">&</span>sorted[..<span class="number">8</span>]);
2419 <span class="macro">assert!</span>(v[<span class="number">8</span>].is_nan());</code></pre></div>
2420 </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#4894">Source</a><h4 class="code-header">pub fn <a href="#method.sort_floats-1" class="fn">sort_floats</a>(&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>
2421 <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
2422 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>
2423 <h5 id="current-implementation-7"><a class="doc-anchor" href="#current-implementation-7">§</a>Current implementation</h5>
2424 <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>
2425 <h5 id="examples-119"><a class="doc-anchor" href="#examples-119">§</a>Examples</h5>
2426 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(sort_floats)]
2427 </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>];
2430 <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];
2431 <span class="macro">assert_eq!</span>(<span class="kw-2">&</span>v[..<span class="number">8</span>], <span class="kw-2">&</span>sorted[..<span class="number">8</span>]);
2432 <span class="macro">assert!</span>(v[<span class="number">8</span>].is_nan());</code></pre></div>
2433 </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>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/str/lossy/struct.Utf8Chunks.html" title="struct core::str::lossy::Utf8Chunks">Utf8Chunks</a><'_> <a href="#" class="tooltip" data-notable-ty="Utf8Chunks<'_>">ⓘ</a></h4></section></summary><div class="docblock"><p>Creates an iterator over the contiguous valid UTF-8 ranges of this
2434 slice, and the non-UTF-8 fragments in between.</p>
2435 <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 documentation of the items yielded by this iterator.</p>
2436 <h5 id="examples-120"><a class="doc-anchor" href="#examples-120">§</a>Examples</h5>
2437 <p>This function formats arbitrary but mostly-UTF-8 bytes into Rust source
2438 code in the form of a C-string literal (<code>c"..."</code>).</p>
2440 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::fmt::Write <span class="kw">as _</span>;
2442 <span class="kw">pub fn </span>cstr_literal(bytes: <span class="kw-2">&</span>[u8]) -> String {
2443 <span class="kw">let </span><span class="kw-2">mut </span>repr = String::new();
2444 repr.push_str(<span class="string">"c\""</span>);
2445 <span class="kw">for </span>chunk <span class="kw">in </span>bytes.utf8_chunks() {
2446 <span class="kw">for </span>ch <span class="kw">in </span>chunk.valid().chars() {
2447 <span class="comment">// Escapes \0, \t, \r, \n, \\, \', \", and uses \u{...} for non-printable characters.
2448 </span><span class="macro">write!</span>(repr, <span class="string">"{}"</span>, ch.escape_debug()).unwrap();
2450 <span class="kw">for </span>byte <span class="kw">in </span>chunk.invalid() {
2451 <span class="macro">write!</span>(repr, <span class="string">"\\x{:02X}"</span>, byte).unwrap();
2454 repr.push(<span class="string">'"'</span>);
2458 <span class="kw">fn </span>main() {
2459 <span class="kw">let </span>lit = cstr_literal(<span class="string">b"\xferris the \xf0\x9f\xa6\x80\x07"</span>);
2460 <span class="kw">let </span>expected = <span class="macro">stringify!</span>(<span class="string">c"\xFErris the 🦀\u{7}"</span>);
2461 <span class="macro">assert_eq!</span>(lit, expected);
2462 }</code></pre></div>
2463 </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>(&mut self)<div class="where">where
2464 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>
2465 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>n</em> * log(<em>n</em>))
2467 <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
2468 may panic; even if the function exits normally, the resulting order of elements in the slice
2469 is unspecified. See also the note on panicking below.</p>
2470 <p>When applicable, unstable sorting is preferred because it is generally faster than stable
2471 sorting and it doesn’t allocate auxiliary memory. See
2472 <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
2473 may be better served with <code>slice::sort</code>.</p>
2474 <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
2475 additional precautions. For example, <code>f32::NAN != f32::NAN</code>, which doesn’t fulfill the
2476 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
2477 <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
2478 order</a> users can sort slices containing floating-point values. Alternatively, if all values
2479 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
2480 <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>
2481 <h5 id="current-implementation-8"><a class="doc-anchor" href="#current-implementation-8">§</a>Current implementation</h5>
2482 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2483 combines the fast average case of quicksort with the fast worst case and partial run
2484 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2485 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2486 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2487 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2488 clamps at <code>self.len() / 2</code>.</p>
2489 <h5 id="panics-39"><a class="doc-anchor" href="#panics-39">§</a>Panics</h5>
2490 <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
2491 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>
2492 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2493 original elements will remain in the slice and any possible modifications via interior
2494 mutability are observed in the input. This ensures that recovery code (for instance inside
2495 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2496 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2497 to dispose of all contained elements.</p>
2498 <h5 id="examples-121"><a class="doc-anchor" href="#examples-121">§</a>Examples</h5>
2499 <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>];
2502 <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>
2503 </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><F>(&mut self, compare: F)<div class="where">where
2504 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">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a>) -> <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>
2505 <p>This sort is stable (i.e., does not reorder equal elements) and <em>O</em>(<em>n</em> * log(<em>n</em>))
2507 <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
2508 panic; even if the function exits normally, the resulting order of elements in the slice is
2509 unspecified. See also the note on panicking below.</p>
2510 <p>For example <code>|a, b| (a - b).cmp(a)</code> is a comparison function that is neither transitive nor
2511 reflexive nor total, <code>a < b < c < a</code> with <code>a = 1, b = 2, c = 3</code>. For more information and
2512 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>
2513 <h5 id="current-implementation-9"><a class="doc-anchor" href="#current-implementation-9">§</a>Current implementation</h5>
2514 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2515 combines the fast average case of quicksort with the fast worst case and partial run
2516 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2517 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2518 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2519 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2520 clamps at <code>self.len() / 2</code>.</p>
2521 <h5 id="panics-40"><a class="doc-anchor" href="#panics-40">§</a>Panics</h5>
2522 <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>
2523 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2524 original elements will remain in the slice and any possible modifications via interior
2525 mutability are observed in the input. This ensures that recovery code (for instance inside
2526 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2527 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2528 to dispose of all contained elements.</p>
2529 <h5 id="examples-122"><a class="doc-anchor" href="#examples-122">§</a>Examples</h5>
2530 <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>];
2531 v.sort_by(|a, b| a.cmp(b));
2532 <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>]);
2534 <span class="comment">// reverse sorting
2535 </span>v.sort_by(|a, b| b.cmp(a));
2536 <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>
2537 </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><K, F>(&mut self, f: F)<div class="where">where
2538 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">&T</a>) -> K,
2539 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>
2540 <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>))
2541 worst-case, where the key function is <em>O</em>(<em>m</em>).</p>
2542 <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
2543 may panic; even if the function exits normally, the resulting order of elements in the slice
2544 is unspecified. See also the note on panicking below.</p>
2545 <h5 id="current-implementation-10"><a class="doc-anchor" href="#current-implementation-10">§</a>Current implementation</h5>
2546 <p>The current implementation is based on <a href="https://github.com/Voultapher/driftsort">driftsort</a> by Orson Peters and Lukas Bergdoll, which
2547 combines the fast average case of quicksort with the fast worst case and partial run
2548 detection of mergesort, achieving linear time on fully sorted and reversed inputs. On inputs
2549 with k distinct elements, the expected time to sort the data is <em>O</em>(<em>n</em> * log(<em>k</em>)).</p>
2550 <p>The auxiliary memory allocation behavior depends on the input length. Short slices are
2551 handled without allocation, medium sized slices allocate <code>self.len()</code> and beyond that it
2552 clamps at <code>self.len() / 2</code>.</p>
2553 <h5 id="panics-41"><a class="doc-anchor" href="#panics-41">§</a>Panics</h5>
2554 <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
2555 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>
2556 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2557 original elements will remain in the slice and any possible modifications via interior
2558 mutability are observed in the input. This ensures that recovery code (for instance inside
2559 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2560 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2561 to dispose of all contained elements.</p>
2562 <h5 id="examples-123"><a class="doc-anchor" href="#examples-123">§</a>Examples</h5>
2563 <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>];
2565 v.sort_by_key(|k| k.abs());
2566 <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>
2567 </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><K, F>(&mut self, f: F)<div class="where">where
2568 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">&T</a>) -> K,
2569 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>
2570 <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> *
2571 log(<em>n</em>)) worst-case, where the key function is <em>O</em>(<em>m</em>).</p>
2572 <p>During sorting, the key function is called at most once per element, by using temporary
2573 storage to remember the results of key evaluation. The order of calls to the key function is
2574 unspecified and may change in future versions of the standard library.</p>
2575 <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
2576 may panic; even if the function exits normally, the resulting order of elements in the slice
2577 is unspecified. See also the note on panicking below.</p>
2578 <p>For simple key functions (e.g., functions that are property accesses or basic operations),
2579 <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>
2580 <h5 id="current-implementation-11"><a class="doc-anchor" href="#current-implementation-11">§</a>Current implementation</h5>
2581 <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
2582 Bergdoll, which combines the fast average case of randomized quicksort with the fast worst
2583 case of heapsort, while achieving linear time on fully sorted and reversed inputs. And
2584 <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
2585 superscalar out-of-order execution capabilities commonly found in CPUs, to efficiently
2586 perform the operation.</p>
2587 <p>In the worst case, the algorithm allocates temporary storage in a <code>Vec<(K, usize)></code> the
2588 length of the slice.</p>
2589 <h5 id="panics-42"><a class="doc-anchor" href="#panics-42">§</a>Panics</h5>
2590 <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
2591 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>
2592 <p>All safe functions on slices preserve the invariant that even if the function panics, all
2593 original elements will remain in the slice and any possible modifications via interior
2594 mutability are observed in the input. This ensures that recovery code (for instance inside
2595 of a <code>Drop</code> or following a <code>catch_unwind</code>) will still have access to all the original
2596 elements. For instance, if the slice belongs to a <code>Vec</code>, the <code>Vec::drop</code> method will be able
2597 to dispose of all contained elements.</p>
2598 <h5 id="examples-124"><a class="doc-anchor" href="#examples-124">§</a>Examples</h5>
2599 <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>];
2601 <span class="comment">// Strings are sorted by lexicographical order.
2602 </span>v.sort_by_cached_key(|k| k.to_string());
2603 <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>
2604 </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>(&self) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><T><div class="where">where
2605 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>
2606 <h5 id="examples-125"><a class="doc-anchor" href="#examples-125">§</a>Examples</h5>
2607 <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>];
2608 <span class="kw">let </span>x = s.to_vec();
2609 <span class="comment">// Here, `s` and `x` can be modified independently.</span></code></pre></div>
2610 </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><A>(&self, alloc: A) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><T, A><div class="where">where
2611 A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/alloc/trait.Allocator.html" title="trait core::alloc::Allocator">Allocator</a>,
2612 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>
2613 <h5 id="examples-126"><a class="doc-anchor" href="#examples-126">§</a>Examples</h5>
2614 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(allocator_api)]
2616 </span><span class="kw">use </span>std::alloc::System;
2618 <span class="kw">let </span>s = [<span class="number">10</span>, <span class="number">40</span>, <span class="number">30</span>];
2619 <span class="kw">let </span>x = s.to_vec_in(System);
2620 <span class="comment">// Here, `s` and `x` can be modified independently.</span></code></pre></div>
2621 </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>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><T><div class="where">where
2622 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>
2623 <h5 id="panics-43"><a class="doc-anchor" href="#panics-43">§</a>Panics</h5>
2624 <p>This function will panic if the capacity would overflow.</p>
2625 <h5 id="examples-127"><a class="doc-anchor" href="#examples-127">§</a>Examples</h5>
2628 <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>
2629 <p>A panic upon overflow:</p>
2631 <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
2632 </span><span class="string">b"0123456789abcdef"</span>.repeat(usize::MAX);</code></pre></div>
2633 </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><Item>(&self) -> <<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><Item>>::<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="<[T] as Concat<Item>>::Output">ⓘ</a><div class="where">where
2634 <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><Item>,
2635 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>
2636 <h5 id="examples-128"><a class="doc-anchor" href="#examples-128">§</a>Examples</h5>
2637 <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>);
2638 <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>
2639 </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><Separator>(
2642 ) -> <<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><Separator>>::<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="<[T] as Join<Separator>>::Output">ⓘ</a><div class="where">where
2643 <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><Separator>,</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
2644 given separator between each.</p>
2645 <h5 id="examples-129"><a class="doc-anchor" href="#examples-129">§</a>Examples</h5>
2646 <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>);
2647 <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">&</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>]);
2648 <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">&</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>
2649 </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><Separator>(
2652 ) -> <<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><Separator>>::<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="<[T] as Join<Separator>>::Output">ⓘ</a><div class="where">where
2653 <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><Separator>,</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
2654 given separator between each.</p>
2655 <h5 id="examples-130"><a class="doc-anchor" href="#examples-130">§</a>Examples</h5>
2656 <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>);
2657 <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">&</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>
2658 </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>(&self) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>> <a href="#" class="tooltip" data-notable-ty="Vec<u8>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a vector containing a copy of this slice where each byte
2659 is mapped to its ASCII upper case equivalent.</p>
2660 <p>ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’,
2661 but non-ASCII letters are unchanged.</p>
2662 <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>
2663 </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>(&self) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>> <a href="#" class="tooltip" data-notable-ty="Vec<u8>">ⓘ</a></h4></section></summary><div class="docblock"><p>Returns a vector containing a copy of this slice where each byte
2664 is mapped to its ASCII lower case equivalent.</p>
2665 <p>ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’,
2666 but non-ASCII letters are unchanged.</p>
2667 <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>
2668 </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><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(&mut self) -> &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><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(&self) -> &[<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><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(&self) -> &[<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><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(&mut self) -> &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>(&self) -> <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>(&mut self, source: &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>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>></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>() -> <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>(&self) -> &<<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>>::<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>(&mut self) -> &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/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>>::<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<'de> <a class="trait" href="../../hashes/serde/trait.Deserialize.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserialize">Deserialize</a><'de> 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><__D>(
2669 __deserializer: __D,
2670 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>, <__D as <a class="trait" href="../../hashes/serde/trait.Deserializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="../../hashes/serde/trait.Deserializer.html#associatedtype.Error" title="type bdk_chain::bitcoin::hashes::serde::Deserializer::Error">Error</a>><div class="where">where
2671 __D: <a class="trait" href="../../hashes/serde/trait.Deserializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserializer">Deserializer</a><'de>,</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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><[<a class="struct" href="../../struct.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>]> 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>]) -> <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><<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>> for <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>></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>) -> <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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-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><__H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut __H</a>)<div class="where">where
2672 __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><H>(data: &[Self], state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut H</a>)<div class="where">where
2673 H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
2674 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<'a> <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 <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><'a, <a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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-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> = &'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) -> <&'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>>::<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<'a> <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 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><'a, <a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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-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> = &'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) -> <&'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>>::<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="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) -> <<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>>::<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>(&self, other: &<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -> <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) -> Self<div class="where">where
2675 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) -> Self<div class="where">where
2676 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) -> Self<div class="where">where
2677 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>(&self, other: &<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -> <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>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Rhs</a>) -> <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,
2678 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>(&self, other: &<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<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 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>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Rhs</a>) -> <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><</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>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Rhs</a>) -> <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
2679 <code><=</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>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Rhs</a>) -> <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>></code>
2680 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>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Rhs</a>) -> <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
2681 the <code>>=</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><__S>(
2684 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<__S as <a class="trait" href="../../hashes/serde/trait.Serializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Serializer">Serializer</a>>::<a class="associatedtype" href="../../hashes/serde/trait.Serializer.html#associatedtype.Ok" title="type bdk_chain::bitcoin::hashes::serde::Serializer::Ok">Ok</a>, <__S as <a class="trait" href="../../hashes/serde/trait.Serializer.html" title="trait bdk_chain::bitcoin::hashes::serde::Serializer">Serializer</a>>::<a class="associatedtype" href="../../hashes/serde/trait.Serializer.html#associatedtype.Error" title="type bdk_chain::bitcoin::hashes::serde::Serializer::Error">Error</a>><div class="where">where
2685 __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><&[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(
2686 v: &[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>],
2687 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</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/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><&[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]>>::<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"><p>Creates a merkle proof from list of hashes.</p>
2688 <h5 id="errors-1"><a class="doc-anchor" href="#errors-1">§</a>Errors</h5>
2689 <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>
2690 </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><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(
2691 v: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]>,
2692 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</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/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><[<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>]>>>::<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"><p>Creates a merkle proof from list of hashes.</p>
2693 <h5 id="errors-3"><a class="doc-anchor" href="#errors-3">§</a>Errors</h5>
2694 <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>
2695 </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><<a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</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.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>(
2696 v: <a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>>,
2697 ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../struct.TaprootMerkleBranch.html" title="struct bdk_chain::bitcoin::taproot::TaprootMerkleBranch">TaprootMerkleBranch</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/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><<a class="struct" href="../../base58/struct.Vec.html" title="struct bdk_chain::bitcoin::base58::Vec">Vec</a><<a class="struct" href="../../struct.TapNodeHash.html" title="struct bdk_chain::bitcoin::TapNodeHash">TapNodeHash</a>>>>::<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"><p>Creates a merkle proof from list of hashes.</p>
2698 <h5 id="errors-2"><a class="doc-anchor" href="#errors-2">§</a>Errors</h5>
2699 <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>
2700 </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<T> <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
2701 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>(&self) -> <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<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<div class="where">where
2702 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>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&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<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<div class="where">where
2703 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>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&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<T> <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
2704 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>(&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<Q, K> Equivalent<K> for Q<div class="where">where
2705 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>,
2706 K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><Q> + ?<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>(&self, key: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&K</a>) -> <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<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> 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) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
2707 </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<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<div class="where">where
2708 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</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) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
2709 <p>That is, this conversion is whatever the implementation of
2710 <code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
2711 </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#375-377">Source</a><a href="#impl-Receiver-for-P" class="anchor">§</a><h3 class="code-header">impl<P, T> <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
2712 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><Target = T> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
2713 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#379">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<T> <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
2714 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>(&self) -> 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>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&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<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<div class="where">where
2715 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</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) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<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'>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<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<div class="where">where
2716 U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</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> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<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) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<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'>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<V, T> VZip<V> for T<div class="where">where
2717 V: MultiLane<T>,</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) -> V</h4></section></div></details><section id="impl-DeserializeOwned-for-T" class="impl"><a class="src rightside" href="https://docs.rs/serde/1.0.217/src/serde/de/mod.rs.html#614">Source</a><a href="#impl-DeserializeOwned-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <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
2718 T: for<'de> <a class="trait" href="../../hashes/serde/trait.Deserialize.html" title="trait bdk_chain::bitcoin::hashes::serde::Deserialize">Deserialize</a><'de>,</div></h3></section></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&[<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 &[<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>&[<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 &[<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 &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>&[<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 &[<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 &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><'a, T, N></code></h3><pre><code><div class=\"where\">impl<'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>> <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><'a, T, N></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 <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><'a, T, N></code></h3><pre><code><div class=\"where\">impl<'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>> <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><'a, T, N></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 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><'a, T, N></code></h3><pre><code><div class=\"where\">impl<'a, T, const N: <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.usize.html\">usize</a>> <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><'a, T, N></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 <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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>, <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.reference.html\">&T</a>) -> <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> = &'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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 <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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 <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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 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><'a></code></h3><pre><code><div class=\"where\">impl<'a> <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><'a></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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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\">&'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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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\">&'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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 <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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 <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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><A></code></h3><pre><code><div class=\"where\">impl<A> <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><A><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><A></code></h3><pre><code><div class=\"where\">impl<A> <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><A><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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a, T, P></code></h3><pre><code><div class=\"where\">impl<'a, T, P> <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><'a, T, P><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\">&T</a>) -> <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> = &'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><'a></code></h3><pre><code><div class=\"where\">impl<'a> <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><'a></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><'a>;</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><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>, A></code></h3><pre><code><div class=\"where\">impl<A> <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><<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.u8.html\">u8</a>, A><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><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <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><'a, T></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 <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.slice.html\">[T]</a>;</div>"}</script></section></div></main></body></html>