<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="An ordered set based on a B-Tree."><metaname="keywords"content="rust, rustlang, rust-lang, Set"><title>Set in kanidmd_lib::entry - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Regular.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Medium.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Bold.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Semibold.ttf.woff2"><linkrel="stylesheet"type="text/css"href="../../normalize.css"><linkrel="stylesheet"type="text/css"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../../ayu.css"disabled><linkrel="stylesheet"type="text/css"href="../../dark.css"disabled><linkrel="stylesheet"type="text/css"href="../../light.css"id="themeStyle"><scriptid="default-settings"></script><scriptsrc="../../storage.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../../main.js"></script><noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="sidebar-logo"href="../../kanidmd_lib/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"></h2></nav><navclass="sidebar"><aclass="sidebar-logo"href="../../kanidmd_lib/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"><ahref="#">Set</a></h2><divclass="sidebar-elems"><section><divclass="block"><h3class="sidebar-title"><ahref="#implementations">Methods</a></h3><ul><li><ahref="#method.append">append</a></li><li><ahref="#method.clear">clear</a></li><li><ahref="#method.contains">contains</a></li><li><ahref="#method.difference">difference</a></li><li><ahref="#method.drain_filter">drain_filter</a></li><li><ahref="#method.first">first</a></li><li><ahref="#method.get">get</a></li><li><ahref="#method.insert">insert</a></li><li><ahref="#method.intersection">intersection</a></li><li><ahref="#method.is_disjoint">is_disjoint</a></li><li><ahref="#method.is_empty">is_empty</a></li><li><ahref="#method.is_subset">is_subset</a></li><li><ahref="#method.is_superset">is_superset</a></li><li><ahref="#method.iter">iter</a></li><li><ahref="#method.last">last</a></li><li><ahref="#method.len">len</a></li><li><ahref="#method.new">new</a></li><li><ahref="#method.new_in">new_in</a></li><li><ahref="#method.pop_first">pop_first</a></li><li><ahref="#method.pop_last">pop_last</a></li><li><ahref="#method.range">range</a></li><li><ahref="#method.remove">remove</a></li><li><ahref="#method.replace">replace</a></li><li><ahref="#method.retain">retain</a></li><li><ahref="#method.split_off">split_off</a></li><li><ahref="#method.symmetric_difference">symmetric_difference</a></li><li><ahref="#method.take">take</a></li><li><ahref="#method.union">union</a></li></ul></div><divclass="block"><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><ul><li><ahref="#impl-BitAnd%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E">BitAnd<&
<p>See <ahref="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/map/struct.BTreeMap.html"title="BTreeMap"><code>BTreeMap</code></a>’s documentation for a detailed discussion of this collection’s performance
benefits and drawbacks.</p>
<p>It is a logic error for an item to be modified in such a way that the item’s ordering relative
to any other item, as determined by the <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"><code>Ord</code></a> trait, changes while it is in the set. This is
normally only possible through <ahref="https://doc.rust-lang.org/1.64.0/core/cell/struct.Cell.html"><code>Cell</code></a>, <ahref="https://doc.rust-lang.org/1.64.0/core/cell/struct.RefCell.html"><code>RefCell</code></a>, global state, I/O, or unsafe code.
The behavior resulting from such a logic error is not specified, but will be encapsulated to the
<code>BTreeSet</code> that observed the logic error and not result in undefined behavior. This could
include panics, incorrect results, aborts, memory leaks, and non-termination.</p>
<p>Iterators returned by <ahref="../idm/authsession/struct.Set.html#method.iter"title="BTreeSet::iter"><code>BTreeSet::iter</code></a> produce their items in order, and take worst-case
logarithmic and amortized constant time per item returned.</p>
<spanclass="ident">books</span>.<spanclass="ident">insert</span>(<spanclass="string">"The Great Gatsby"</span>);
<spanclass="comment">// Check for a specific one.</span>
<spanclass="kw">if</span><spanclass="op">!</span><spanclass="ident">books</span>.<spanclass="ident">contains</span>(<spanclass="string">"The Winds of Winter"</span>) {
<spanclass="macro">println!</span>(<spanclass="string">"We have {} books, but The Winds of Winter ain't one."</span>,
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#353">source</a></span><ahref="#impl-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.new_in"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#368">source</a></span><h4class="code-header">pub fn <ahref="#method.new_in"class="fnname">new_in</a>(alloc: A) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>btreemap_alloc</code>)</div></span></summary><divclass="docblock"><p>Makes a new <code>BTreeSet</code> with a reasonable choice of B.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.range"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.17.0">1.17.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#400-404">source</a></span><h4class="code-header">pub fn <ahref="#method.range"class="fnname">range</a><K, R>(&self, range: R) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.Range.html"title="struct alloc::collections::btree::set::Range">Range</a><'_, T><spanclass="where fmt-newline">where<br> K: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><K> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> R: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/ops/range/trait.RangeBounds.html"title="trait core::ops::range::RangeBounds">RangeBounds</a><K>, </span></h4></section></summary><divclass="docblock"><p>Constructs a double-ended iterator over a sub-range of elements in the set.
The simplest way is to use the range syntax <code>min..max</code>, thus <code>range(min..max)</code> will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as <code>(Bound<T>, Bound<T>)</code>, so for example
<code>range((Excluded(4), Included(10)))</code> will yield a left-exclusive, right-inclusive
range from 4 to 10.</p>
<h5id="panics"><ahref="#panics">Panics</a></h5>
<p>Panics if range <code>start > end</code>.
Panics if range <code>start == end</code> and both bounds are <code>Excluded</code>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.contains"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#616-619">source</a></span><h4class="code-header">pub fn <ahref="#method.contains"class="fnname">contains</a><Q>(&self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Q) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h4></section></summary><divclass="docblock"><p>Returns <code>true</code> if the set contains an element equal to the value.</p>
<p>The value may be any borrowed form of the set’s element type,
but the ordering on the borrowed form <em>must</em> match the
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.get"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.9.0">1.9.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#641-644">source</a></span><h4class="code-header">pub fn <ahref="#method.get"class="fnname">get</a><Q>(&self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Q) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h4></section></summary><divclass="docblock"><p>Returns a reference to the element in the set, if any, that is equal to
the value.</p>
<p>The value may be any borrowed form of the set’s element type,
but the ordering on the borrowed form <em>must</em> match the
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_disjoint"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#668-670">source</a></span><h4class="code-header">pub fn <ahref="#method.is_disjoint"class="fnname">is_disjoint</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section></summary><divclass="docblock"><p>Returns <code>true</code> if <code>self</code> has no elements in common with <code>other</code>.
This is equivalent to checking for an empty intersection.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_subset"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#694-696">source</a></span><h4class="code-header">pub fn <ahref="#method.is_subset"class="fnname">is_subset</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section></summary><divclass="docblock"><p>Returns <code>true</code> if the set is a subset of another,
i.e., <code>other</code> contains at least all the elements in <code>self</code>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_superset"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#774-776">source</a></span><h4class="code-header">pub fn <ahref="#method.is_superset"class="fnname">is_superset</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section></summary><divclass="docblock"><p>Returns <code>true</code> if the set is a superset of another,
i.e., <code>self</code> contains at least all the elements in <code>other</code>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.first"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#801-803">source</a></span><h4class="code-header">pub fn <ahref="#method.first"class="fnname">first</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>map_first_last</code>)</div></span></summary><divclass="docblock"><p>Returns a reference to the first element in the set, if any.
This element is always the minimum of all elements in the set.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.last"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#828-830">source</a></span><h4class="code-header">pub fn <ahref="#method.last"class="fnname">last</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>map_first_last</code>)</div></span></summary><divclass="docblock"><p>Returns a reference to the last element in the set, if any.
This element is always the maximum of all elements in the set.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.pop_first"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#853-855">source</a></span><h4class="code-header">pub fn <ahref="#method.pop_first"class="fnname">pop_first</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>map_first_last</code>)</div></span></summary><divclass="docblock"><p>Removes the first element from the set and returns it, if any.
The first element is always the minimum element in the set.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.pop_last"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#878-880">source</a></span><h4class="code-header">pub fn <ahref="#method.pop_last"class="fnname">pop_last</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>map_first_last</code>)</div></span></summary><divclass="docblock"><p>Removes the last element from the set and returns it, if any.
The last element is always the maximum element in the set.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.insert"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#910-912">source</a></span><h4class="code-header">pub fn <ahref="#method.insert"class="fnname">insert</a>(&mut self, value: T) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section></summary><divclass="docblock"><p>Adds a value to the set.</p>
<p>Returns whether the value was newly inserted. That is:</p>
<ul>
<li>If the set did not previously contain an equal value, <code>true</code> is
returned.</li>
<li>If the set already contained an equal value, <code>false</code> is returned, and
the entry is not updated.</li>
</ul>
<p>See the <ahref="index.html#insert-and-complex-keys">module-level documentation</a> for more.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.replace"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.9.0">1.9.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#933-935">source</a></span><h4class="code-header">pub fn <ahref="#method.replace"class="fnname">replace</a>(&mut self, value: T) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h4></section></summary><divclass="docblock"><p>Adds a value to the set, replacing the existing element, if any, that is
equal to the value. Returns the replaced element.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.remove"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#959-962">source</a></span><h4class="code-header">pub fn <ahref="#method.remove"class="fnname">remove</a><Q>(&mut self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Q) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h4></section></summary><divclass="docblock"><p>If the set contains an element equal to the value, removes it from the
set and drops it. Returns whether such an element was present.</p>
<p>The value may be any borrowed form of the set’s element type,
but the ordering on the borrowed form <em>must</em> match the
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.take"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.9.0">1.9.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#984-987">source</a></span><h4class="code-header">pub fn <ahref="#method.take"class="fnname">take</a><Q>(&mut self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Q) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h4></section></summary><divclass="docblock"><p>Removes and returns the element in the set, if any, that is equal to
the value.</p>
<p>The value may be any borrowed form of the set’s element type,
but the ordering on the borrowed form <em>must</em> match the
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.retain"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.53.0">1.53.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1008-1011">source</a></span><h4class="code-header">pub fn <ahref="#method.retain"class="fnname">retain</a><F>(&mut self, f: F) <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> F: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>, </span></h4></section></summary><divclass="docblock"><p>Retains only the elements specified by the predicate.</p>
<p>In other words, remove all elements <code>e</code> for which <code>f(&e)</code> returns <code>false</code>.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.split_off"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.11.0">1.11.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1083-1086">source</a></span><h4class="code-header">pub fn <ahref="#method.split_off"class="fnname">split_off</a><Q>(&mut self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Q) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h4></section></summary><divclass="docblock"><p>Splits the collection into two at the value. Returns a new collection
with all elements greater than or equal to the value.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.drain_filter"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1121-1124">source</a></span><h4class="code-header">pub fn <ahref="#method.drain_filter"class="fnname">drain_filter</a><'a, F>(&'a mut self, pred: F) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.DrainFilter.html"title="struct alloc::collections::btree::set::DrainFilter">DrainFilter</a><'a, T, F, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> F: 'a + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>T) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a>, </span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>btree_drain_filter</code>)</div></span></summary><divclass="docblock"><p>Creates an iterator that visits all elements in ascending order and
uses a closure to determine if an element should be removed.</p>
<p>If the closure returns <code>true</code>, the element is removed from the set and
yielded. If the closure returns <code>false</code>, or panics, the element remains
in the set and will not be yielded.</p>
<p>If the iterator is only partially consumed or not consumed at all, each
of the remaining elements is still subjected to the closure and removed
and dropped if it returns <code>true</code>.</p>
<p>It is unspecified how many more elements will be subjected to the
closure if a panic occurs in the closure, or if a panic occurs while
dropping an element, or if the <code>DrainFilter</code> itself is leaked.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.iter"class="method has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1159">source</a></span><h4class="code-header">pub fn <ahref="#method.iter"class="fnname">iter</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.Iter.html"title="struct alloc::collections::btree::set::Iter">Iter</a><'_, T></h4></section></summary><divclass="docblock"><p>Gets an iterator that visits the elements in the <code>BTreeSet</code> in ascending
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.len"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/71835"title="Tracking issue for const_btree_new">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1178">source</a></span><h4class="code-header">pub fn <ahref="#method.len"class="fnname">len</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a></h4></section></summary><divclass="docblock"><p>Returns the number of elements in the set.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_empty"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/71835"title="Tracking issue for const_btree_new">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1197">source</a></span><h4class="code-header">pub fn <ahref="#method.is_empty"class="fnname">is_empty</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns <code>true</code> if the set contains no elements.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output-2"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output-2"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitAnd.html#associatedtype.Output"class="associatedtype">Output</a> = <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass='docblock'><p>The resulting type after applying the <code>&</code> operator.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-BitOr%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1454">source</a></span><ahref="#impl-BitOr%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitOr.html"title="trait core::ops::bit::BitOr">BitOr</a><&<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>> for &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.bitor"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1470">source</a></span><ahref="#method.bitor"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitOr.html#tymethod.bitor"class="fnname">bitor</a>(self, rhs: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass="docblock"><p>Returns the union of <code>self</code> and <code>rhs</code> as a new <code>BTreeSet<T></code>.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output-1"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output-1"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitOr.html#associatedtype.Output"class="associatedtype">Output</a> = <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass='docblock'><p>The resulting type after applying the <code>|</code> operator.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-BitXor%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1404">source</a></span><ahref="#impl-BitXor%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitXor.html"title="trait core::ops::bit::BitXor">BitXor</a><&<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>> for &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.bitxor"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1420">source</a></span><ahref="#method.bitxor"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitXor.html#tymethod.bitxor"class="fnname">bitxor</a>(self, rhs: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass="docblock"><p>Returns the symmetric difference of <code>self</code> and <code>rhs</code> as a new <code>BTreeSet<T></code>.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/ops/bit/trait.BitXor.html#associatedtype.Output"class="associatedtype">Output</a> = <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass='docblock'><p>The resulting type after applying the <code>^</code> operator.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-CheckDerConstraints-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><ahref="#impl-CheckDerConstraints-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<T> CheckDerConstraints for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: CheckDerConstraints, </span></h3></section></summary><divclass="impl-items"><sectionid="method.check_constraints"class="method trait-impl has-srclink"><ahref="#method.check_constraints"class="anchor"></a><h4class="code-header">fn <aclass="fnname">check_constraints</a>(any: &Any<'_>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.unit.html">()</a>, Error></h4></section></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Clone-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#120">source</a></span><ahref="#impl-Clone-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.clone"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#121">source</a></span><ahref="#method.clone"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone"class="fnname">clone</a>(&self) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass='docblock'><p>Returns a copy of the value. <ahref="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Deserialize%3C%27de%3E-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/serde/1.0.145/src/serde/de/impls.rs.html#968-975">source</a></span><ahref="#impl-Deserialize%3C%27de%3E-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<'de, T><aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.Deserialize.html"title="trait serde::de::Deserialize">Deserialize</a><'de> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.Deserialize.html"title="trait serde::de::Deserialize">Deserialize</a><'de> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Eq.html"title="trait core::cmp::Eq">Eq</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.deserialize"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/serde/1.0.145/src/serde/de/impls.rs.html#968-975">source</a></span><ahref="#method.deserialize"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/serde/1.0.145/serde/de/trait.Deserialize.html#tymethod.deserialize"class="fnname">deserialize</a><D>(<br> deserializer: D<br>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>>, <D as <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.Deserializer.html"title="trait serde::de::Deserializer">Deserializer</a><'de>>::<aclass="associatedtype"href="https://docs.rs/serde/1.0.145/serde/de/trait.Deserializer.html#associatedtype.Error"title="type serde::de::Deserializer::Error">Error</a>><spanclass="where fmt-newline">where<br> D: <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.Deserializer.html"title="trait serde::de::Deserializer">Deserializer</a><'de>, </span></h4></section></summary><divclass='docblock'><p>Deserialize this value from the given Serde deserializer. <ahref="https://docs.rs/serde/1.0.145/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Extend%3C%26%27a%20T%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.2.0">1.2.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1359">source</a></span><ahref="#impl-Extend%3C%26%27a%20T%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<'a, T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html"title="trait core::iter::traits::collect::Extend">Extend</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a </a>T> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: 'a + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Copy.html"title="trait core::marker::Copy">Copy</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend-1"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1360">source</a></span><ahref="#method.extend-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend"class="fnname">extend</a><I>(&mut self, iter: I) <spanclass="where fmt-newline">where<br> I: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a </a>T>, </span></h4></section></summary><divclass='docblock'><p>Extends a collection with the contents of an iterator. <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend_one-1"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1365">source</a></span><ahref="#method.extend_one-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_one"class="fnname">extend_one</a>(&mut self, <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a </a>T)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>extend_one</code>)</div></span><divclass='docblock'><p>Extends a collection with exactly one element.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend_reserve-1"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/iter/traits/collect.rs.html#379">source</a></span><ahref="#method.extend_reserve-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve"class="fnname">extend_reserve</a>(&mut self, additional: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>extend_one</code>)</div></span><divclass='docblock'><p>Reserves capacity in a collection for the given number of additional elements. <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Extend%3CT%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1344">source</a></span><ahref="#impl-Extend%3CT%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html"title="trait core::iter::traits::collect::Extend">Extend</a><T> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1346">source</a></span><ahref="#method.extend"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend"class="fnname">extend</a><Iter>(&mut self, iter: Iter) <spanclass="where fmt-newline">where<br> Iter: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>, </span></h4></section></summary><divclass='docblock'><p>Extends a collection with the contents of an iterator. <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend_one"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1353">source</a></span><ahref="#method.extend_one"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_one"class="fnname">extend_one</a>(&mut self, elem: T)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>extend_one</code>)</div></span><divclass='docblock'><p>Extends a collection with exactly one element.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend_reserve"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/iter/traits/collect.rs.html#379">source</a></span><ahref="#method.extend_reserve"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve"class="fnname">extend_reserve</a>(&mut self, additional: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span> This is a nightly-only experimental API. (<code>extend_one</code>)</div></span><divclass='docblock'><p>Reserves capacity in a collection for the given number of additional elements. <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Extend%3CT%3E-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><ahref="#impl-Extend%3CT%3E-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<T> Extend<T> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.extend-2"class="method trait-impl has-srclink"><ahref="#method.extend-2"class="anchor"></a><h4class="code-header">fn <aclass="fnname">extend</a><'a, S>(<br> &'a mut self,<br> stream: S<br>) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/core/pin/struct.Pin.html"title="struct core::pin::Pin">Pin</a><<aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/boxed/struct.Box.html"title="struct alloc::boxed::Box">Box</a><dyn <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/future/future/trait.Future.html"title="trait core::future::future::Future">Future</a><Output = <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.unit.html">()</a>> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> + 'a, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>>><spanclass="where fmt-newline">where<br> S: 'a + IntoStream<Item = T>,<br> <S as IntoStream>::IntoStream: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a>, </span></h4></section></summary><divclass='docblock'><p>Extends a collection with the contents of a stream.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-From%3C%5BT%3B%20N%5D%3E-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.56.0">1.56.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1226">source</a></span><ahref="#impl-From%3C%5BT%3B%20N%5D%3E-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<T, const N: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html"title="trait core::convert::From">From</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.array.html">[</a>T<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.array.html">; N]</a>> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.from"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1236">source</a></span><ahref="#method.from"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html#tymethod.from"class="fnname">from</a>(arr: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.array.html">[</a>T<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.array.html">; N]</a>) -><aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>></h4></section></summary><divclass="docblock"><p>Converts a <code>[T; N]</code> into a <code>BTreeSet<T></code>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.hash_slice"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.3.0">1.3.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/hash/mod.rs.html#237-239">source</a></span><ahref="#method.hash_slice"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/hash/trait.Hash.html#method.hash_slice"class="fnname">hash_slice</a><H>(data: &<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.slice.html">[Self]</a>, state: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&mut </a>H) <spanclass="where fmt-newline">where<br> H: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/hash/trait.Hasher.html"title="trait core::hash::Hasher">Hasher</a>, </span></h4></section></summary><divclass='docblock'><p>Feeds a slice of this type into the given <ahref="https://doc.rust-lang.org/1.64.0/core/hash/trait.Hasher.html"title="Hasher"><code>Hasher</code></a>. <ahref="https://doc.rust-lang.org/1.64.0/core/hash/trait.Hash.html#method.hash_slice">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-IntoDeserializer%3C%27de%2C%20E%3E-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/serde/1.0.145/src/serde/de/value.rs.html#1019">source</a></span><ahref="#impl-IntoDeserializer%3C%27de%2C%20E%3E-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<'de, T, E><aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html"title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html"title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Eq.html"title="trait core::cmp::Eq">Eq</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> E: <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.Error.html"title="trait serde::de::Error">Error</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Deserializer"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Deserializer"class="anchor"></a><h4class="code-header">type <ahref="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html#associatedtype.Deserializer"class="associatedtype">Deserializer</a> = <aclass="struct"href="https://docs.rs/serde/1.0.145/serde/de/value/struct.SeqDeserializer.html"title="struct serde::de::value::SeqDeserializer">SeqDeserializer</a><<<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>> as <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter"title="type core::iter::traits::collect::IntoIterator::IntoIter">IntoIter</a>, E></h4></section></summary><divclass='docblock'><p>The type of the deserializer being converted into.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.into_deserializer"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/serde/1.0.145/src/serde/de/value.rs.html#1026">source</a></span><ahref="#method.into_deserializer"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html#tymethod.into_deserializer"class="fnname">into_deserializer</a>(<br> self<br>) -><<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>> as <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html"title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E>>::<aclass="associatedtype"href="https://docs.rs/serde/1.0.145/serde/de/trait.IntoDeserializer.html#associatedtype.Deserializer"title="type serde::de::IntoDeserializer::Deserializer">Deserializer</a></h4></section></summary><divclass='docblock'><p>Convert this value into a deserializer.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-IntoIterator-for-%26%27a%20BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1272">source</a></span><ahref="#impl-IntoIterator-for-%26%27a%20BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<'a, T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a> for &'a <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Item-1"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Item-1"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item"class="associatedtype">Item</a> = <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a </a>T</h4></section></summary><divclass='docblock'><p>The type of the elements being iterated over.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.IntoIter-1"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.IntoIter-1"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter"class="associatedtype">IntoIter</a> = <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.Iter.html"title="struct alloc::collections::btree::set::Iter">Iter</a><'a, T></h4></section></summary><divclass='docblock'><p>Which kind of iterator are we turning this into?</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.into_iter-1"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1276">source</a></span><ahref="#method.into_iter-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter"class="fnname">into_iter</a>(self) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.Iter.html"title="struct alloc::collections::btree::set::Iter">Iter</a><'a, T></h4></section></summary><divclass='docblock'><p>Creates an iterator from a value. <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-IntoIterator-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1250">source</a></span><ahref="#impl-IntoIterator-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.into_iter"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#1266">source</a></span><ahref="#method.into_iter"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter"class="fnname">into_iter</a>(self) -><aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.IntoIter.html"title="struct alloc::collections::btree::set::IntoIter">IntoIter</a><T, A></h4></section></summary><divclass="docblock"><p>Gets an iterator for moving out the <code>BTreeSet</code>’s contents.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Item"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Item"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item"class="associatedtype">Item</a> = T</h4></section></summary><divclass='docblock'><p>The type of the elements being iterated over.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.IntoIter"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.IntoIter"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter"class="associatedtype">IntoIter</a> = <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/collections/btree/set/struct.IntoIter.html"title="struct alloc::collections::btree::set::IntoIter">IntoIter</a><T, A></h4></section></summary><divclass='docblock'><p>Which kind of iterator are we turning this into?</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Ord-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#113">source</a></span><ahref="#impl-Ord-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cmp"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#114">source</a></span><ahref="#method.cmp"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#tymethod.cmp"class="fnname">cmp</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/cmp/enum.Ordering.html"title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><divclass='docblock'><p>This method returns an <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/enum.Ordering.html"title="Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.max"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.21.0">1.21.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#800-803">source</a></span><ahref="#method.max"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.max"class="fnname">max</a>(self, other: Self) -> Self</h4></section></summary><divclass='docblock'><p>Compares and returns the maximum of two values. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.max">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.min"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.21.0">1.21.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#827-830">source</a></span><ahref="#method.min"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.min"class="fnname">min</a>(self, other: Self) -> Self</h4></section></summary><divclass='docblock'><p>Compares and returns the minimum of two values. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.min">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.clamp"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.50.0">1.50.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#859-863">source</a></span><ahref="#method.clamp"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.clamp"class="fnname">clamp</a>(self, min: Self, max: Self) -> Self <spanclass="where fmt-newline">where<br> Self: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html"title="trait core::cmp::PartialOrd">PartialOrd</a><Self>, </span></h4></section></summary><divclass='docblock'><p>Restrict a value to a certain interval. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html#method.clamp">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-PartialEq%3CBTreeSet%3CT%2C%20A%3E%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#96">source</a></span><ahref="#impl-PartialEq%3CBTreeSet%3CT%2C%20A%3E%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialEq.html"title="trait core::cmp::PartialEq">PartialEq</a><<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialEq.html"title="trait core::cmp::PartialEq">PartialEq</a><T>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.eq"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#97">source</a></span><ahref="#method.eq"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialEq.html#tymethod.eq"class="fnname">eq</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-PartialOrd%3CBTreeSet%3CT%2C%20A%3E%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#106">source</a></span><ahref="#impl-PartialOrd%3CBTreeSet%3CT%2C%20A%3E%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html"title="trait core::cmp::PartialOrd">PartialOrd</a><<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html"title="trait core::cmp::PartialOrd">PartialOrd</a><T>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.partial_cmp"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/collections/btree/set.rs.html#107">source</a></span><ahref="#method.partial_cmp"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp"class="fnname">partial_cmp</a>(&self, other: &<aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/cmp/enum.Ordering.html"title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><divclass='docblock'><p>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.lt"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#1122">source</a></span><ahref="#method.lt"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.lt"class="fnname">lt</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'><p>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.le"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#1141">source</a></span><ahref="#method.le"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.le"class="fnname">le</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'><p>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code><=</code>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.gt"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#1163">source</a></span><ahref="#method.gt"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.gt"class="fnname">gt</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'><p>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code> operator. <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.ge"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/cmp.rs.html#1182">source</a></span><ahref="#method.ge"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/cmp/trait.PartialOrd.html#method.ge"class="fnname">ge</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'><p>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output-3"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output-3"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/ops/arith/trait.Sub.html#associatedtype.Output"class="associatedtype">Output</a> = <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, A></h4></section></summary><divclass='docblock'><p>The resulting type after applying the <code>-</code> operator.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Tagged-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><ahref="#impl-Tagged-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<T> Tagged for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>></h3></section></summary><divclass="impl-items"><sectionid="associatedconstant.TAG"class="associatedconstant trait-impl has-srclink"><ahref="#associatedconstant.TAG"class="anchor"></a><h4class="code-header">const <aclass="constant">TAG</a>: Tag = Tag::Set</h4></section></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-ToDer-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><ahref="#impl-ToDer-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<T> ToDer for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: ToDer, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_der_len"class="method trait-impl has-srclink"><ahref="#method.to_der_len"class="anchor"></a><h4class="code-header">fn <aclass="fnname">to_der_len</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>, Error></h4></section></summary><divclass='docblock'><p>Get the length of the object, when encoded <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.write_der_header"class="method trait-impl has-srclink"><ahref="#method.write_der_header"class="anchor"></a><h4class="code-header">fn <aclass="fnname">write_der_header</a>(<br> &self,<br> writer: &mut dyn <aclass="trait"href="https://doc.rust-lang.org/1.64.0/std/io/trait.Write.html"title="trait std::io::Write">Write</a><br>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'><p>Attempt to write the DER header to this writer.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.write_der_content"class="method trait-impl has-srclink"><ahref="#method.write_der_content"class="anchor"></a><h4class="code-header">fn <aclass="fnname">write_der_content</a>(<br> &self,<br> writer: &mut dyn <aclass="trait"href="https://doc.rust-lang.org/1.64.0/std/io/trait.Write.html"title="trait std::io::Write">Write</a><br>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'><p>Attempt to write the DER content (all except header) to this writer.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_der_vec"class="method trait-impl has-srclink"><ahref="#method.to_der_vec"class="anchor"></a><h4class="code-header">fn <aclass="fnname">to_der_vec</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.u8.html">u8</a>, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>>, SerializeError></h4></section></summary><divclass='docblock'><p>Write the DER encoded representation to a newly allocated <code>Vec<u8></code>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_der_vec_raw"class="method trait-impl has-srclink"><ahref="#method.to_der_vec_raw"class="anchor"></a><h4class="code-header">fn <aclass="fnname">to_der_vec_raw</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.u8.html">u8</a>, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>>, SerializeError></h4></section></summary><divclass='docblock'><p>Similar to using <code>to_vec</code>, but uses provided values without changes.
This can generate an invalid encoding for a DER object. <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.write_der"class="method trait-impl has-srclink"><ahref="#method.write_der"class="anchor"></a><h4class="code-header">fn <aclass="fnname">write_der</a>(&self, writer: &mut dyn <aclass="trait"href="https://doc.rust-lang.org/1.64.0/std/io/trait.Write.html"title="trait std::io::Write">Write</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'><p>Attempt to write the DER encoded representation (header and content) into this writer. <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.write_der_raw"class="method trait-impl has-srclink"><ahref="#method.write_der_raw"class="anchor"></a><h4class="code-header">fn <aclass="fnname">write_der_raw</a>(&self, writer: &mut dyn <aclass="trait"href="https://doc.rust-lang.org/1.64.0/std/io/trait.Write.html"title="trait std::io::Write">Write</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'><p>Similar to using <code>to_der</code>, but uses provided values without changes.
This can generate an invalid encoding for a DER object. <a>Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-TryFrom%3CAny%3C%27a%3E%3E-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><ahref="#impl-TryFrom%3CAny%3C%27a%3E%3E-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header in-band">impl<'a, T><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><Any<'a>> for <aclass="struct"href="../idm/authsession/struct.Set.html"title="struct kanidmd_lib::idm::authsession::Set">BTreeSet</a><T, <aclass="struct"href="https://doc.rust-lang.org/1.64.0/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>><spanclass="where fmt-newline">where<br> T: FromBer<'a> + <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Error"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Error"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = Error</h4></section></summary><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Instrument-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a></span><ahref="#impl-Instrument-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html"title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.instrument"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82">source</a></span><ahref="#method.instrument"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument"class="fnname">instrument</a>(self, span: <aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"title="struct tracing::span::Span">Span</a>) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'><p>Instruments this type with the provided <ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"title="Span"><code>Span</code></a>, returning an
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.in_current_span"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a></span><ahref="#method.in_current_span"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span"class="fnname">in_current_span</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'><p>Instruments this type with the <ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current">current</a><ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Into%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#541">source</a></span><ahref="#impl-Into%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html"title="trait core::convert::From">From</a><T>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.into"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/88674"title="Tracking issue for const_convert">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#549">source</a></span><ahref="#method.into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html#tymethod.into"class="fnname">into</a>(self) -> U</h4></section></summary><divclass="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html"title="From">From</a><T> for U</code> chooses to do.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Pointable-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><ahref="#impl-Pointable-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T> Pointable for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedconstant.ALIGN"class="associatedconstant trait-impl has-srclink"><ahref="#associatedconstant.ALIGN"class="anchor"></a><h4class="code-header">const <aclass="constant">ALIGN</a>: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a> = mem::align_of::<T>()</h4></section></summary><divclass='docblock'><p>The alignment of pointer.</p>
</div></details><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Init"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Init"class="anchor"></a><h4class="code-header">type <aclass="associatedtype">Init</a> = T</h4></section></summary><divclass='docblock'><p>The type for initializers.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.init"class="method trait-impl has-srclink"><ahref="#method.init"class="anchor"></a><h4class="code-header">unsafe fn <aclass="fnname">init</a>(init: <T as Pointable>::Init) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a></h4></section></summary><divclass='docblock'><p>Initializes a with the given initializer. <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.deref"class="method trait-impl has-srclink"><ahref="#method.deref"class="anchor"></a><h4class="code-header">unsafe fn <aclass="fnname">deref</a><'a>(ptr: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a </a>T</h4></section></summary><divclass='docblock'><p>Dereferences the given pointer. <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.deref_mut"class="method trait-impl has-srclink"><ahref="#method.deref_mut"class="anchor"></a><h4class="code-header">unsafe fn <aclass="fnname">deref_mut</a><'a>(ptr: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&'a mut </a>T</h4></section></summary><divclass='docblock'><p>Mutably dereferences the given pointer. <a>Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.drop"class="method trait-impl has-srclink"><ahref="#method.drop"class="anchor"></a><h4class="code-header">unsafe fn <aclass="fnname">drop</a>(ptr: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.usize.html">usize</a>)</h4></section></summary><divclass='docblock'><p>Drops the object pointed to by the given pointer. <a>Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Same%3CT%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/typenum/1.15.0/src/typenum/type_operators.rs.html#34">source</a></span><ahref="#impl-Same%3CT%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/typenum/1.15.0/typenum/type_operators/trait.Same.html"title="trait typenum::type_operators::Same">Same</a><T> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output-4"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output-4"class="anchor"></a><h4class="code-header">type <ahref="https://docs.rs/typenum/1.15.0/typenum/type_operators/trait.Same.html#associatedtype.Output"class="associatedtype">Output</a> = T</h4></section></summary><divclass='docblock'><p>Should always be <code>Self</code></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Serialize-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/erased-serde/0.3.23/src/erased_serde/ser.rs.html#238">source</a></span><ahref="#impl-Serialize-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/erased-serde/0.3.23/erased_serde/ser/trait.Serialize.html"title="trait erased_serde::ser::Serialize">Serialize</a> for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://docs.rs/serde/1.0.145/serde/ser/trait.Serialize.html"title="trait serde::ser::Serialize">Serialize</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>, </span></h3></section></summary><divclass="impl-items"><sectionid="method.erased_serialize"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/erased-serde/0.3.23/src/erased_serde/ser.rs.html#242">source</a></span><ahref="#method.erased_serialize"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/erased-serde/0.3.23/erased_serde/ser/trait.Serialize.html#tymethod.erased_serialize"class="fnname">erased_serialize</a>(&self, serializer: &mut dyn <aclass="trait"href="https://docs.rs/erased-serde/0.3.23/erased_serde/ser/trait.Serializer.html"title="trait erased_serde::ser::Serializer">Serializer</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><Ok, <aclass="struct"href="https://docs.rs/erased-serde/0.3.23/erased_serde/error/struct.Error.html"title="struct erased_serde::error::Error">Error</a>></h4></section></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-ToOwned-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#83">source</a></span><ahref="#impl-ToOwned-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Owned"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Owned"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned"class="associatedtype">Owned</a> = T</h4></section></summary><divclass='docblock'><p>The resulting type after obtaining ownership.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_owned"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#88">source</a></span><ahref="#method.to_owned"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned"class="fnname">to_owned</a>(&self) -> T</h4></section></summary><divclass='docblock'><p>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.clone_into"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#92">source</a></span><ahref="#method.clone_into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into"class="fnname">clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&mut </a>T)</h4></section></summary><divclass='docblock'><p>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#598">source</a></span><ahref="#impl-TryFrom%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Error-1"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Error-1"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></h4></section></summary><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.try_from-1"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/88674"title="Tracking issue for const_convert">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#604">source</a></span><ahref="#method.try_from-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#tymethod.try_from"class="fnname">try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'><p>Performs the conversion.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-TryInto%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#583">source</a></span><ahref="#impl-TryInto%3CU%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>, </span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Error-2"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Error-2"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#associatedtype.Error"class="associatedtype">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.try_into"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/88674"title="Tracking issue for const_convert">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#589">source</a></span><ahref="#method.try_into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#tymethod.try_into"class="fnname">try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'><p>Performs the conversion.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_current_subscriber"class="method trait-impl has-srclink"><spanclass="rightside"><aclass="srclink"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221">source</a></span><ahref="#method.with_current_subscriber"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber"class="fnname">with_current_subscriber</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html"title="struct tracing::instrument::WithDispatch">WithDispatch</a><Self></h4></section></summary><divclass='docblock'><p>Attaches the current <ahref="https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a><ahref="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a