<!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"href="../../normalize.css"><linkrel="stylesheet"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"href="../../ayu.css"disabled><linkrel="stylesheet"href="../../dark.css"disabled><linkrel="stylesheet"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><h2></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><h3><ahref="#implementations">Methods</a></h3><ulclass="block"><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><h3><ahref="#trait-implementations">Trait Implementations</a></h3><ulclass="block"><li><ahref="#impl-BitAnd%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E">BitAnd<&BTreeSet<T, A>></a></li><li><ahref="#impl-BitOr%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E">BitOr<&BTreeSet<T, A>&g
<p>See <ahref="https://doc.rust-lang.org/1.66.1/alloc/collections/btree/map/struct.BTreeMap.html"title="BTreeMap"><code>BTreeMap</code></a>’s documentation for a detailed discussion of this collection’s performance
to any other item, as determined by the <ahref="https://doc.rust-lang.org/1.66.1/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.66.1/core/cell/struct.Cell.html"><code>Cell</code></a>, <ahref="https://doc.rust-lang.org/1.66.1/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>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#353">source</a><ahref="#impl-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">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.66.1/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#368">source</a><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><span>This is a nightly-only experimental API. (<code>btreemap_alloc</code>)</span></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.66.1/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.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><K> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> R: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.contains"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#616-619">source</a><h4class="code-header">pub fn <ahref="#method.contains"class="fnname">contains</a><Q>(&self, value: <aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>Q) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/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>
</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.66.1/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.66.1/std/primitive.reference.html">&</a>Q) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/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
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_disjoint"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#668-670">source</a><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.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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>.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_subset"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#694-696">source</a><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.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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,
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.is_superset"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#774-776">source</a><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.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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,
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.first"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.66.0">1.66.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#800-802">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.66.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,</span></h4></section></summary><divclass="docblock"><p>Returns a reference to the first element in the set, if any.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.last"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.66.0">1.66.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#826-828">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.66.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>T><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,</span></h4></section></summary><divclass="docblock"><p>Returns a reference to the last element in the set, if any.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.pop_first"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.66.0">1.66.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#850-852">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.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,</span></h4></section></summary><divclass="docblock"><p>Removes the first element from the set and returns it, if any.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.pop_last"class="method has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.66.0">1.66.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#874-876">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.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,</span></h4></section></summary><divclass="docblock"><p>Removes the last element from the set and returns it, if any.
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.insert"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#906-908">source</a><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.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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>
</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.66.1/src/alloc/collections/btree/set.rs.html#929-931">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.66.1/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.66.1/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
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.remove"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#955-958">source</a><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.66.1/std/primitive.reference.html">&</a>Q) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a><spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/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
</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.66.1/src/alloc/collections/btree/set.rs.html#980-983">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.66.1/std/primitive.reference.html">&</a>Q) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/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.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> Q: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/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
</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.66.1/src/alloc/collections/btree/set.rs.html#1004-1007">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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> F: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>T) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a>,</span></h4></section></summary><divclass="docblock"><p>Retains only the elements specified by the predicate.</p>
</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.66.1/src/alloc/collections/btree/set.rs.html#1079-1082">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.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + ?<aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><Q> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.drain_filter"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#1117-1120">source</a><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.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> F: 'a + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/ops/function/trait.FnMut.html"title="trait core::ops::function::FnMut">FnMut</a>(<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>T) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a>,</span></h4></section><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>btree_drain_filter</code>)</span></div></span></summary><divclass="docblock"><p>Creates an iterator that visits all elements in ascending order and
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.iter"class="method has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#1155">source</a><h4class="code-header">pub fn <ahref="#method.iter"class="fnname">iter</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/1.66.1/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_len">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/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.66.1/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_len">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#1201">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.66.1/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.Item"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Item"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.66.1/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item"class="associatedtype">Item</a> = T</h4></section></summary><divclass='docblock'>The type of the elements being iterated over.</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.66.1/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter"class="associatedtype">IntoIter</a> = <aclass="struct"href="https://doc.rust-lang.org/1.66.1/alloc/collections/btree/set/struct.IntoIter.html"title="struct alloc::collections::btree::set::IntoIter">IntoIter</a><T, A></h4></section></summary><divclass='docblock'>Which kind of iterator are we turning this into?</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Ord-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#113">source</a><ahref="#impl-Ord-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.66.1/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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#114">source</a><ahref="#method.cmp"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/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.66.1/core/cmp/enum.Ordering.html"title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><divclass='docblock'>This method returns an <ahref="https://doc.rust-lang.org/1.66.1/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.66.1/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></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.66.1/src/core/cmp.rs.html#795-798">source</a></span><ahref="#method.max"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Ord.html#method.max"class="fnname">max</a>(self, other: Self) -> Self<spanclass="where fmt-newline">where<br> Self: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/marker/trait.Sized.html"title="traitcore::marker::Si
by <code>==</code>. <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.ne"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/core/cmp.rs.html#227">source</a><ahref="#method.ne"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialEq.html#method.ne"class="fnname">ne</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason. <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></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"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#106">source</a><ahref="#impl-PartialOrd%3CBTreeSet%3CT%2C%20A%3E%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.66.1/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.66.1/core/cmp/trait.PartialOrd.html"title="trait core::cmp::PartialOrd">PartialOrd</a><T>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/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"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#107">source</a><ahref="#method.partial_cmp"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/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.66.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/cmp/enum.Ordering.html"title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><divclass='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.lt"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/core/cmp.rs.html#1119">source</a><ahref="#method.lt"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.lt"class="fnname">lt</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>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.66.1/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.le"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/core/cmp.rs.html#1138">source</a><ahref="#method.le"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.le"class="fnname">le</a>(&am
operator. <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.gt"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/core/cmp.rs.html#1156">source</a><ahref="#method.gt"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.gt"class="fnname">gt</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>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.66.1/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.ge"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/core/cmp.rs.html#1175">source</a><ahref="#method.ge"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.ge"class="fnname">ge</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>>=</code>
operator. <ahref="https://doc.rust-lang.org/1.66.1/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Serialize-for-BTreeSet%3CT%2C%20Global%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/serde/1.0.152/src/serde/ser/impls.rs.html#226">source</a><ahref="#impl-Serialize-for-BTreeSet%3CT%2C%20Global%3E"class="anchor"></a><h3class="code-header">impl<T><aclass="trait"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serialize.html"title="trait serde::ser::Serialize">Serialize</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.66.1/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.152/serde/ser/trait.Serialize.html"title="trait serde::ser::Serialize">Serialize</a>,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.serialize"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/serde/1.0.152/src/serde/ser/impls.rs.html#226">source</a><ahref="#method.serialize"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/serde/1.0.152/serde/ser/trait.Serialize.html#tymethod.serialize"class="fnname">serialize</a><S>(<br> &self,<br> serializer: S<br>) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<S as <aclass="trait"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serializer.html"title="trait serde::ser::Serializer">Serializer</a>>::<aclass="associatedtype"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serializer.html#associatedtype.Ok"title="type serde::ser::Serializer::Ok">Ok</a>, <S as <aclass="trait"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serializer.html"title="trait serde::ser::Serializer">Serializer</a>>::<aclass="associatedtype"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serializer.html#associatedtype.Error"title="type serde::ser::Serializer::Error">Error</a>><spanclass="where fmt-newline">where<br> S: <aclass="trait"href="https://docs.rs/serde/1.0.152/serde/ser/trait.Serializer.html"title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><divclass='docblock'>Serialize this value into the given Serde serializer. <ahref="https://docs.rs/serde/1.0.152/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Sub%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#1383">source</a><ahref="#impl-Sub%3C%26BTreeSet%3CT%2C%20A%3E%3E-for-%26BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/ops/arith/trait.Sub.html"title="trait core::ops::arith::Sub">Sub</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.66.1/core/cmp/trait.Ord.html"title="trait core::cmp::Ord">Ord</a> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/clone/trait.Clone.html"title="trait core::clone::Clone"
</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.66.1/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'>The resulting type after applying the <code>-</code> operator.</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">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.66.1/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">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.66.1/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.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.usize.html">usize</a>, Error></h4></section></summary><divclass='docblock'>Get the length of the object, when encoded <a>Read more</a></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.66.1/std/io/trait.Write.html"title="trait std::io::Write">Write</a><br>) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'>Attempt to write the DER header to this writer.</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.66.1/std/io/trait.Write.html"title="trait std::io::Write">Write</a><br>) -><aclass="enum"href="https://doc.r
This can generate an invalid encoding for a DER object. <a>Read more</a></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.66.1/std/io/trait.Write.html"title="trait std::io::Write">Write</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'>Attempt to write the DER encoded representation (header and content) into this writer. <a>Read more</a></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.66.1/std/io/trait.Write.html"title="trait std::io::Write">Write</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.usize.html">usize</a>, SerializeError></h4></section></summary><divclass='docblock'>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></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">impl<'a, T><aclass="trait"href="https://doc.rust-lang.org/1.66.1/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.66.1/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.66.1/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.66.1/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = Error</h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.try_from"class="method trait-impl has-srclink"><ahref="#method.try_from"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.66.1/core/convert/trait.TryFrom.html#tymethod.try_from"class="fnname">try_from</a>(any: Any<'a>) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/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.66.1/alloc/alloc/struct.Global.html"title="struct alloc::alloc::Global">Global</a>>, Error></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details><sectionid="impl-Eq-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.66.1/src/alloc/collections/btree/set.rs.html#103">source</a><ahref="#impl-Eq-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/cmp/trait.Eq.html"title="trait core::cmp::Eq">Eq</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.66.1/core/cmp/trait.Eq.html"title="trait core::cmp::Eq">Eq</a>,<br> A: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/alloc/trait.Allocator.html"title="trait core::alloc::Allocator">Allocator</a> + <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,</span></h3></section></div><h2id="synthetic-implementations"class="small-section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor"></a></h2><divid="synthetic-implementations-list"><sectionid="impl-RefUnwindSafe-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><ahref="#impl-RefUnwindSafe-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T, A><aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <aclass="struct"href="../i
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-FromBer%3C%27a%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><ahref="#impl-FromBer%3C%27a%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<'a, T> FromBer<'a> for T<spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><Any<'a>, Error = Error>,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.from_ber"class="method trait-impl has-srclink"><ahref="#method.from_ber"class="anchor"></a><h4class="code-header">fn <aclass="fnname">from_ber</a>(bytes: &'a [<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.u8.html">u8</a>]) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><(&'a [<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.u8.html">u8</a>], T), Err<Error>></h4></section></summary><divclass='docblock'>Attempt to parse input bytes into a BER object</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-FromDer%3C%27a%3E-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><ahref="#impl-FromDer%3C%27a%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<'a, T> FromDer<'a> for T<spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.66.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><Any<'a>, Error = Error> + CheckDerConstraints,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.from_der"class="method trait-impl has-srclink"><ahref="#method.from_der"class="anchor"></a><h4class="code-header">fn <aclass="fnname">from_der</a>(bytes: &'a [<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.u8.html">u8</a>]) -><aclass="enum"href="https://doc.rust-lang.org/1.66.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><(&'a [<aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.u8.html">u8</a>], T), Err<Error>></h4></section></summary><divclass='docblock'>Attempt to parse input bytes into a DER object (enforcing constraints)</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Instrument-for-BTreeSet%3CT%2C%20A%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><ahref="#impl-Instrument-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">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"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82">source</a><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></summa
<code>Instrumented</code> wrapper. <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.in_current_span"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><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'>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-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">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.66.1/std/primitive.usize.html">usize</a> = mem::align_of::<T>()</h4></section></summary><divclass='docblock'>The alignment of pointer.</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'>The type for initializers.</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.66.1/std/primitive.usize.html">usize</a></h4></section></summary><divclass='docblock'>Initializes a with the given initializer. <a>Read more</a></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.66.1/std/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&'a </a>T</h4></section></summary><divclass='docblock'>Dereferences the given pointer. <a>Read more</a></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.66.1/std/primitive.usize.html">usize</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.66.1/std/primitive.reference.html">&'a mut </a>T</h4></section></summary><divclass='docblock'>Mutably dereferences the given pointer. <a>Read more</a></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.66.1/std/primitive.usize.html">usize</a>)</h4></section></summary><divclass='docblock'>Drops the object pointed to by the given pointer. <a>Read more</a></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"><aclass="srclink rightside"href="https://docs.rs/typenum/1.16.0/src/typenum/type_operators.rs.html#34">source</a><ahref="#impl-Same%3CT%3E-for-BTreeSet%3CT%2C%20A%3E"class="anchor"></a><h3class="code-header">impl<T><aclass="trait"href="https://docs.rs/typenum/1.16.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.16.0/typenum/type
<ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html"title="WithDispatch"><code>WithDispatch</code></a> wrapper. <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_current_subscriber"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221">source</a><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'>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