484 lines
189 KiB
HTML
484 lines
189 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="An IPv6 address."><title>Ipv6Addr in rustix::net - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rustix" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.0 (9fc6b4312 2025-01-07)" data-channel="1.84.0" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../../static.files/storage-59e33391.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rustix/index.html">rustix</a><span class="version">0.38.37</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Ipv6<wbr>Addr</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#embedding-ipv4-addresses" title="Embedding IPv4 Addresses">Embedding IPv4 Addresses</a><ul><li><a href="#ipv4-compatible-ipv6-addresses" title="IPv4-Compatible IPv6 Addresses">IPv4-Compatible IPv6 Addresses</a></li><li><a href="#ipv4-mapped-ipv6-addresses" title="IPv4-Mapped IPv6 Addresses">IPv4-Mapped IPv6 Addresses</a></li></ul></li><li><a href="#textual-representation" title="Textual representation">Textual representation</a></li><li><a href="#examples" title="Examples">Examples</a></li></ul><h3><a href="#implementations">Associated Constants</a></h3><ul class="block associatedconstant"><li><a href="#associatedconstant.BITS" title="BITS">BITS</a></li><li><a href="#associatedconstant.LOCALHOST" title="LOCALHOST">LOCALHOST</a></li><li><a href="#associatedconstant.UNSPECIFIED" title="UNSPECIFIED">UNSPECIFIED</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.from_bits" title="from_bits">from_bits</a></li><li><a href="#method.from_octets" title="from_octets">from_octets</a></li><li><a href="#method.from_segments" title="from_segments">from_segments</a></li><li><a href="#method.is_benchmarking" title="is_benchmarking">is_benchmarking</a></li><li><a href="#method.is_documentation" title="is_documentation">is_documentation</a></li><li><a href="#method.is_global" title="is_global">is_global</a></li><li><a href="#method.is_ipv4_mapped" title="is_ipv4_mapped">is_ipv4_mapped</a></li><li><a href="#method.is_loopback" title="is_loopback">is_loopback</a></li><li><a href="#method.is_multicast" title="is_multicast">is_multicast</a></li><li><a href="#method.is_unicast" title="is_unicast">is_unicast</a></li><li><a href="#method.is_unicast_global" title="is_unicast_global">is_unicast_global</a></li><li><a href="#method.is_unicast_link_local" title="is_unicast_link_local">is_unicast_link_local</a></li><li><a href="#method.is_unique_local" title="is_unique_local">is_unique_local</a></li><li><a href="#method.is_unspecified" title="is_unspecified">is_unspecified</a></li><li><a href="#method.multicast_scope" title="multicast_scope">multicast_scope</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.octets" title="octets">octets</a></li><li><a href="#method.parse_ascii" title="parse_ascii">parse_ascii</a></li><li><a href="#method.segments" title="segments">segments</a></li><li><a href="#method.to_bits" title="to_bits">to_bits</a></li><li><a href="#method.to_canonical" title="to_canonical">to_canonical</a></li><li><a href="#method.to_ipv4" title="to_ipv4">to_ipv4</a></li><li><a href="#method.to_ipv4_mapped" title="to_ipv4_mapped">to_ipv4_mapped</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-BitAnd-for-Ipv6Addr" title="BitAnd">BitAnd</a></li><li><a href="#impl-BitAnd%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" title="BitAnd<&Ipv6Addr>">BitAnd<&Ipv6Addr></a></li><li><a href="#impl-BitAnd%3C%26Ipv6Addr%3E-for-Ipv6Addr" title="BitAnd<&Ipv6Addr>">BitAnd<&Ipv6Addr></a></li><li><a href="#impl-BitAnd%3CIpv6Addr%3E-for-%26Ipv6Addr" title="BitAnd<Ipv6Addr>">BitAnd<Ipv6Addr></a></li><li><a href="#impl-BitAndAssign-for-Ipv6Addr" title="BitAndAssign">BitAndAssign</a></li><li><a href="#impl-BitAndAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" title="BitAndAssign<&Ipv6Addr>">BitAndAssign<&Ipv6Addr></a></li><li><a href="#impl-BitOr-for-Ipv6Addr" title="BitOr">BitOr</a></li><li><a href="#impl-BitOr%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" title="BitOr<&Ipv6Addr>">BitOr<&Ipv6Addr></a></li><li><a href="#impl-BitOr%3C%26Ipv6Addr%3E-for-Ipv6Addr" title="BitOr<&Ipv6Addr>">BitOr<&Ipv6Addr></a></li><li><a href="#impl-BitOr%3CIpv6Addr%3E-for-%26Ipv6Addr" title="BitOr<Ipv6Addr>">BitOr<Ipv6Addr></a></li><li><a href="#impl-BitOrAssign-for-Ipv6Addr" title="BitOrAssign">BitOrAssign</a></li><li><a href="#impl-BitOrAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" title="BitOrAssign<&Ipv6Addr>">BitOrAssign<&Ipv6Addr></a></li><li><a href="#impl-Clone-for-Ipv6Addr" title="Clone">Clone</a></li><li><a href="#impl-Copy-for-Ipv6Addr" title="Copy">Copy</a></li><li><a href="#impl-Debug-for-Ipv6Addr" title="Debug">Debug</a></li><li><a href="#impl-Deserialize%3C'de%3E-for-Ipv6Addr" title="Deserialize<'de>">Deserialize<'de></a></li><li><a href="#impl-Display-for-Ipv6Addr" title="Display">Display</a></li><li><a href="#impl-Eq-for-Ipv6Addr" title="Eq">Eq</a></li><li><a href="#impl-From%3CIpv6Addr%3E-for-IpAddr" title="From<Ipv6Addr>">From<Ipv6Addr></a></li><li><a href="#impl-From%3C%5Bu16;+8%5D%3E-for-Ipv6Addr" title="From<[u16; 8]>">From<[u16; 8]></a></li><li><a href="#impl-From%3C%5Bu8;+16%5D%3E-for-Ipv6Addr" title="From<[u8; 16]>">From<[u8; 16]></a></li><li><a href="#impl-From%3Cu128%3E-for-Ipv6Addr" title="From<u128>">From<u128></a></li><li><a href="#impl-FromStr-for-Ipv6Addr" title="FromStr">FromStr</a></li><li><a href="#impl-Hash-for-Ipv6Addr" title="Hash">Hash</a></li><li><a href="#impl-Not-for-%26Ipv6Addr" title="Not">Not</a></li><li><a href="#impl-Not-for-Ipv6Addr" title="Not">Not</a></li><li><a href="#impl-Ord-for-Ipv6Addr" title="Ord">Ord</a></li><li><a href="#impl-PartialEq-for-Ipv6Addr" title="PartialEq">PartialEq</a></li><li><a href="#impl-PartialEq%3CIpAddr%3E-for-Ipv6Addr" title="PartialEq<IpAddr>">PartialEq<IpAddr></a></li><li><a href="#impl-PartialEq%3CIpv6Addr%3E-for-IpAddr" title="PartialEq<Ipv6Addr>">PartialEq<Ipv6Addr></a></li><li><a href="#impl-PartialOrd-for-Ipv6Addr" title="PartialOrd">PartialOrd</a></li><li><a href="#impl-PartialOrd%3CIpAddr%3E-for-Ipv6Addr" title="PartialOrd<IpAddr>">PartialOrd<IpAddr></a></li><li><a href="#impl-PartialOrd%3CIpv6Addr%3E-for-IpAddr" title="PartialOrd<Ipv6Addr>">PartialOrd<Ipv6Addr></a></li><li><a href="#impl-Serialize-for-Ipv6Addr" title="Serialize">Serialize</a></li><li><a href="#impl-Step-for-Ipv6Addr" title="Step">Step</a></li><li><a href="#impl-StructuralPartialEq-for-Ipv6Addr" title="StructuralPartialEq">StructuralPartialEq</a></li><li><a href="#impl-TrustedStep-for-Ipv6Addr" title="TrustedStep">TrustedStep</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Ipv6Addr" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Ipv6Addr" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Ipv6Addr" title="Send">Send</a></li><li><a href="#impl-Sync-for-Ipv6Addr" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Ipv6Addr" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Ipv6Addr" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow<T>">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut<T>">BorrowMut<T></a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-DeserializeOwned-for-T" title="DeserializeOwned">DeserializeOwned</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From<T>">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into<U>">Into<U></a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-ToString-for-T" title="ToString">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom<U>">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto<U>">TryInto<U></a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In rustix::<wbr>net</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../index.html">rustix</a>::<wbr><a href="index.html">net</a></span><h1>Struct <span class="struct">Ipv6Addr</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#165">Source</a> </span></div><pre class="rust item-decl"><code>pub struct Ipv6Addr { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An IPv6 address.</p>
|
||
<p>IPv6 addresses are defined as 128-bit integers in <a href="https://tools.ietf.org/html/rfc4291">IETF RFC 4291</a>.
|
||
They are usually represented as eight 16-bit segments.</p>
|
||
<h2 id="embedding-ipv4-addresses"><a class="doc-anchor" href="#embedding-ipv4-addresses">§</a>Embedding IPv4 Addresses</h2>
|
||
<p>See <a href="enum.IpAddr.html" title="enum rustix::net::IpAddr"><code>IpAddr</code></a> for a type encompassing both IPv4 and IPv6 addresses.</p>
|
||
<p>To assist in the transition from IPv4 to IPv6 two types of IPv6 addresses that embed an IPv4 address were defined:
|
||
IPv4-compatible and IPv4-mapped addresses. Of these IPv4-compatible addresses have been officially deprecated.</p>
|
||
<p>Both types of addresses are not assigned any special meaning by this implementation,
|
||
other than what the relevant standards prescribe. This means that an address like <code>::ffff:127.0.0.1</code>,
|
||
while representing an IPv4 loopback address, is not itself an IPv6 loopback address; only <code>::1</code> is.
|
||
To handle these so called “IPv4-in-IPv6” addresses, they have to first be converted to their canonical IPv4 address.</p>
|
||
<h4 id="ipv4-compatible-ipv6-addresses"><a class="doc-anchor" href="#ipv4-compatible-ipv6-addresses">§</a>IPv4-Compatible IPv6 Addresses</h4>
|
||
<p>IPv4-compatible IPv6 addresses are defined in <a href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.1">IETF RFC 4291 Section 2.5.5.1</a>, and have been officially deprecated.
|
||
The RFC describes the format of an “IPv4-Compatible IPv6 address” as follows:</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>| 80 bits | 16 | 32 bits |
|
||
+--------------------------------------+--------------------------+
|
||
|0000..............................0000|0000| IPv4 address |
|
||
+--------------------------------------+----+---------------------+</code></pre></div>
|
||
<p>So <code>::a.b.c.d</code> would be an IPv4-compatible IPv6 address representing the IPv4 address <code>a.b.c.d</code>.</p>
|
||
<p>To convert from an IPv4 address to an IPv4-compatible IPv6 address, use <a href="struct.Ipv4Addr.html#method.to_ipv6_compatible" title="method rustix::net::Ipv4Addr::to_ipv6_compatible"><code>Ipv4Addr::to_ipv6_compatible</code></a>.
|
||
Use <a href="struct.Ipv6Addr.html#method.to_ipv4" title="method rustix::net::Ipv6Addr::to_ipv4"><code>Ipv6Addr::to_ipv4</code></a> to convert an IPv4-compatible IPv6 address to the canonical IPv4 address.</p>
|
||
<h4 id="ipv4-mapped-ipv6-addresses"><a class="doc-anchor" href="#ipv4-mapped-ipv6-addresses">§</a>IPv4-Mapped IPv6 Addresses</h4>
|
||
<p>IPv4-mapped IPv6 addresses are defined in <a href="https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2">IETF RFC 4291 Section 2.5.5.2</a>.
|
||
The RFC describes the format of an “IPv4-Mapped IPv6 address” as follows:</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>| 80 bits | 16 | 32 bits |
|
||
+--------------------------------------+--------------------------+
|
||
|0000..............................0000|FFFF| IPv4 address |
|
||
+--------------------------------------+----+---------------------+</code></pre></div>
|
||
<p>So <code>::ffff:a.b.c.d</code> would be an IPv4-mapped IPv6 address representing the IPv4 address <code>a.b.c.d</code>.</p>
|
||
<p>To convert from an IPv4 address to an IPv4-mapped IPv6 address, use <a href="struct.Ipv4Addr.html#method.to_ipv6_mapped" title="method rustix::net::Ipv4Addr::to_ipv6_mapped"><code>Ipv4Addr::to_ipv6_mapped</code></a>.
|
||
Use <a href="struct.Ipv6Addr.html#method.to_ipv4" title="method rustix::net::Ipv6Addr::to_ipv4"><code>Ipv6Addr::to_ipv4</code></a> to convert an IPv4-mapped IPv6 address to the canonical IPv4 address.
|
||
Note that this will also convert the IPv6 loopback address <code>::1</code> to <code>0.0.0.1</code>. Use
|
||
<a href="struct.Ipv6Addr.html#method.to_ipv4_mapped" title="method rustix::net::Ipv6Addr::to_ipv4_mapped"><code>Ipv6Addr::to_ipv4_mapped</code></a> to avoid this.</p>
|
||
<h2 id="textual-representation"><a class="doc-anchor" href="#textual-representation">§</a>Textual representation</h2>
|
||
<p><code>Ipv6Addr</code> provides a <a href="https://doc.rust-lang.org/1.84.0/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr"><code>FromStr</code></a> implementation. There are many ways to represent
|
||
an IPv6 address in text, but in general, each segments is written in hexadecimal
|
||
notation, and segments are separated by <code>:</code>. For more information, see
|
||
<a href="https://tools.ietf.org/html/rfc5952">IETF RFC 5952</a>.</p>
|
||
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>localhost = Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>);
|
||
<span class="macro">assert_eq!</span>(<span class="string">"::1"</span>.parse(), <span class="prelude-val">Ok</span>(localhost));
|
||
<span class="macro">assert_eq!</span>(localhost.is_loopback(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Ipv6Addr" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1234">Source</a><a href="#impl-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.BITS" class="associatedconstant"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0">1.80.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1278">Source</a></span><h4 class="code-header">pub const <a href="#associatedconstant.BITS" class="constant">BITS</a>: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a> = 128u32</h4></section></summary><div class="docblock"><p>The size of an IPv6 address in bits.</p>
|
||
<h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::BITS, <span class="number">128</span>);</code></pre></div>
|
||
</div></details><details class="toggle" open><summary><section id="associatedconstant.LOCALHOST" class="associatedconstant"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1365">Source</a></span><h4 class="code-header">pub const <a href="#associatedconstant.LOCALHOST" class="constant">LOCALHOST</a>: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a> = _</h4></section></summary><div class="docblock"><p>An IPv6 address representing localhost: <code>::1</code>.</p>
|
||
<p>This corresponds to constant <code>IN6ADDR_LOOPBACK_INIT</code> or <code>in6addr_loopback</code> in other
|
||
languages.</p>
|
||
<h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::LOCALHOST;
|
||
<span class="macro">assert_eq!</span>(addr, Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>));</code></pre></div>
|
||
</div></details><details class="toggle" open><summary><section id="associatedconstant.UNSPECIFIED" class="associatedconstant"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1382">Source</a></span><h4 class="code-header">pub const <a href="#associatedconstant.UNSPECIFIED" class="constant">UNSPECIFIED</a>: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a> = _</h4></section></summary><div class="docblock"><p>An IPv6 address representing the unspecified address: <code>::</code>.</p>
|
||
<p>This corresponds to constant <code>IN6ADDR_ANY_INIT</code> or <code>in6addr_any</code> in other languages.</p>
|
||
<h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::UNSPECIFIED;
|
||
<span class="macro">assert_eq!</span>(addr, Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>));</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0, const since 1.32.0">1.0.0 (const: 1.32.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1250">Source</a></span><h4 class="code-header">pub const fn <a href="#method.new" class="fn">new</a>(
|
||
a: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
b: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
c: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
d: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
e: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
f: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
g: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
h: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>,
|
||
) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class="docblock"><p>Creates a new IPv6 address from eight 16-bit segments.</p>
|
||
<p>The result will represent the IP address <code>a:b:c:d:e:f:g:h</code>.</p>
|
||
<h5 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_bits" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0, const since 1.80.0">1.80.0 (const: 1.80.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1320">Source</a></span><h4 class="code-header">pub const fn <a href="#method.to_bits" class="fn">to_bits</a>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u128.html">u128</a></h4></section></summary><div class="docblock"><p>Converts an IPv6 address into a <code>u128</code> representation using native byte order.</p>
|
||
<p>Although IPv6 addresses are big-endian, the <code>u128</code> value will use the target platform’s
|
||
native byte order. That is, the <code>u128</code> value is an integer representation of the IPv6
|
||
address and not an integer interpretation of the IPv6 address’s big-endian bitstring. This
|
||
means that the <code>u128</code> value masked with <code>0xffffffffffffffffffffffffffff0000_u128</code> will set
|
||
the last segment in the address to 0, regardless of the target platform’s endianness.</p>
|
||
<h5 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::new(
|
||
<span class="number">0x1020</span>, <span class="number">0x3040</span>, <span class="number">0x5060</span>, <span class="number">0x7080</span>,
|
||
<span class="number">0x90A0</span>, <span class="number">0xB0C0</span>, <span class="number">0xD0E0</span>, <span class="number">0xF00D</span>,
|
||
);
|
||
<span class="macro">assert_eq!</span>(<span class="number">0x102030405060708090A0B0C0D0E0F00D_u128</span>, u128::from(addr));</code></pre></div>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::new(
|
||
<span class="number">0x1020</span>, <span class="number">0x3040</span>, <span class="number">0x5060</span>, <span class="number">0x7080</span>,
|
||
<span class="number">0x90A0</span>, <span class="number">0xB0C0</span>, <span class="number">0xD0E0</span>, <span class="number">0xF00D</span>,
|
||
);
|
||
<span class="kw">let </span>addr_bits = addr.to_bits() & <span class="number">0xffffffffffffffffffffffffffff0000_u128</span>;
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x1020</span>, <span class="number">0x3040</span>, <span class="number">0x5060</span>, <span class="number">0x7080</span>,
|
||
<span class="number">0x90A0</span>, <span class="number">0xB0C0</span>, <span class="number">0xD0E0</span>, <span class="number">0x0000</span>,
|
||
),
|
||
Ipv6Addr::from_bits(addr_bits));
|
||
</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_bits" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.80.0, const since 1.80.0">1.80.0 (const: 1.80.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1345">Source</a></span><h4 class="code-header">pub const fn <a href="#method.from_bits" class="fn">from_bits</a>(bits: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u128.html">u128</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class="docblock"><p>Converts a native byte order <code>u128</code> into an IPv6 address.</p>
|
||
<p>See <a href="struct.Ipv6Addr.html#method.to_bits" title="method rustix::net::Ipv6Addr::to_bits"><code>Ipv6Addr::to_bits</code></a> for an explanation on endianness.</p>
|
||
<h5 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::from(<span class="number">0x102030405060708090A0B0C0D0E0F00D_u128</span>);
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x1020</span>, <span class="number">0x3040</span>, <span class="number">0x5060</span>, <span class="number">0x7080</span>,
|
||
<span class="number">0x90A0</span>, <span class="number">0xB0C0</span>, <span class="number">0xD0E0</span>, <span class="number">0xF00D</span>,
|
||
),
|
||
addr);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.segments" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0, const since 1.50.0">1.0.0 (const: 1.50.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1398">Source</a></span><h4 class="code-header">pub const fn <a href="#method.segments" class="fn">segments</a>(&self) -> [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">8</a>]</h4></section></summary><div class="docblock"><p>Returns the eight 16-bit segments that make up this address.</p>
|
||
<h5 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).segments(),
|
||
[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>]);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_segments" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1438">Source</a><h4 class="code-header">pub const fn <a href="#method.from_segments" class="fn">from_segments</a>(segments: [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">8</a>]) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip_from</code>)</span></div></span></summary><div class="docblock"><p>Creates an <code>Ipv6Addr</code> from an eight element 16-bit array.</p>
|
||
<h5 id="examples-8"><a class="doc-anchor" href="#examples-8">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip_from)]
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::from_segments([
|
||
<span class="number">0x20du16</span>, <span class="number">0x20cu16</span>, <span class="number">0x20bu16</span>, <span class="number">0x20au16</span>,
|
||
<span class="number">0x209u16</span>, <span class="number">0x208u16</span>, <span class="number">0x207u16</span>, <span class="number">0x206u16</span>,
|
||
]);
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x20d</span>, <span class="number">0x20c</span>, <span class="number">0x20b</span>, <span class="number">0x20a</span>,
|
||
<span class="number">0x209</span>, <span class="number">0x208</span>, <span class="number">0x207</span>, <span class="number">0x206</span>,
|
||
),
|
||
addr
|
||
);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unspecified" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.7.0, const since 1.50.0">1.7.0 (const: 1.50.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1461">Source</a></span><h4 class="code-header">pub const fn <a href="#method.is_unspecified" class="fn">is_unspecified</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> for the special ‘unspecified’ address (<code>::</code>).</p>
|
||
<p>This property is defined in <a href="https://tools.ietf.org/html/rfc4291">IETF RFC 4291</a>.</p>
|
||
<h5 id="examples-9"><a class="doc-anchor" href="#examples-9">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_unspecified(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unspecified(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_loopback" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.7.0, const since 1.50.0">1.7.0 (const: 1.50.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1485">Source</a></span><h4 class="code-header">pub const fn <a href="#method.is_loopback" class="fn">is_loopback</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is the <a href="struct.Ipv6Addr.html#associatedconstant.LOCALHOST" title="associated constant rustix::net::Ipv6Addr::LOCALHOST">loopback address</a> (<code>::1</code>),
|
||
as defined in <a href="https://tools.ietf.org/html/rfc4291#section-2.5.3">IETF RFC 4291 section 2.5.3</a>.</p>
|
||
<p>Contrary to IPv4, in IPv6 there is only one loopback address.</p>
|
||
<h5 id="examples-10"><a class="doc-anchor" href="#examples-10">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_loopback(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0x1</span>).is_loopback(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_global" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1556">Source</a><h4 class="code-header">pub const fn <a href="#method.is_global" class="fn">is_global</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if the address appears to be globally reachable
|
||
as specified by the <a href="https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml">IANA IPv6 Special-Purpose Address Registry</a>.</p>
|
||
<p>Whether or not an address is practically reachable will depend on your
|
||
network configuration. Most IPv6 addresses are globally reachable, unless
|
||
they are specifically defined as <em>not</em> globally reachable.</p>
|
||
<p>Non-exhaustive list of notable addresses that are not globally reachable:</p>
|
||
<ul>
|
||
<li>The <a href="struct.Ipv6Addr.html#associatedconstant.UNSPECIFIED" title="associated constant rustix::net::Ipv6Addr::UNSPECIFIED">unspecified address</a> (<a href="struct.Ipv6Addr.html#method.is_unspecified" title="method rustix::net::Ipv6Addr::is_unspecified"><code>is_unspecified</code></a>)</li>
|
||
<li>The <a href="struct.Ipv6Addr.html#associatedconstant.LOCALHOST" title="associated constant rustix::net::Ipv6Addr::LOCALHOST">loopback address</a> (<a href="struct.Ipv6Addr.html#method.is_loopback" title="method rustix::net::Ipv6Addr::is_loopback"><code>is_loopback</code></a>)</li>
|
||
<li>IPv4-mapped addresses</li>
|
||
<li>Addresses reserved for benchmarking (<a href="struct.Ipv6Addr.html#method.is_benchmarking" title="method rustix::net::Ipv6Addr::is_benchmarking"><code>is_benchmarking</code></a>)</li>
|
||
<li>Addresses reserved for documentation (<a href="struct.Ipv6Addr.html#method.is_documentation" title="method rustix::net::Ipv6Addr::is_documentation"><code>is_documentation</code></a>)</li>
|
||
<li>Unique local addresses (<a href="struct.Ipv6Addr.html#method.is_unique_local" title="method rustix::net::Ipv6Addr::is_unique_local"><code>is_unique_local</code></a>)</li>
|
||
<li>Unicast addresses with link-local scope (<a href="struct.Ipv6Addr.html#method.is_unicast_link_local" title="method rustix::net::Ipv6Addr::is_unicast_link_local"><code>is_unicast_link_local</code></a>)</li>
|
||
</ul>
|
||
<p>For the complete overview of which addresses are globally reachable, see the table at the <a href="https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml">IANA IPv6 Special-Purpose Address Registry</a>.</p>
|
||
<p>Note that an address having global scope is not the same as being globally reachable,
|
||
and there is no direct relation between the two concepts: There exist addresses with global scope
|
||
that are not globally reachable (for example unique local addresses),
|
||
and addresses that are globally reachable without having global scope
|
||
(multicast addresses with non-global scope).</p>
|
||
<h5 id="examples-11"><a class="doc-anchor" href="#examples-11">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="comment">// Most IPv6 addresses are globally reachable:
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x26</span>, <span class="number">0</span>, <span class="number">0x1c9</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xafc8</span>, <span class="number">0x10</span>, <span class="number">0x1</span>).is_global(), <span class="bool-val">true</span>);
|
||
|
||
<span class="comment">// However some addresses have been assigned a special meaning
|
||
// that makes them not globally reachable. Some examples are:
|
||
|
||
// The unspecified address (`::`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::UNSPECIFIED.is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// The loopback address (`::1`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::LOCALHOST.is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// IPv4-mapped addresses (`::ffff:0:0/96`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// Addresses reserved for benchmarking (`2001:2::/48`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>,).is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// Addresses reserved for documentation (`2001:db8::/32`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>).is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// Unique local addresses (`fc00::/7`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfc02</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>).is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// Unicast addresses with link-local scope (`fe80::/10`)
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfe81</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>).is_global(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// For a complete overview see the IANA IPv6 Special-Purpose Address Registry.</span></code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unique_local" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.84.0, const since 1.84.0">1.84.0 (const: 1.84.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1606">Source</a></span><h4 class="code-header">pub const fn <a href="#method.is_unique_local" class="fn">is_unique_local</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is a unique local address (<code>fc00::/7</code>).</p>
|
||
<p>This property is defined in <a href="https://tools.ietf.org/html/rfc4193">IETF RFC 4193</a>.</p>
|
||
<h5 id="examples-12"><a class="doc-anchor" href="#examples-12">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_unique_local(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfc02</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unique_local(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unicast" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1634">Source</a><h4 class="code-header">pub const fn <a href="#method.is_unicast" class="fn">is_unicast</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is a unicast address, as defined by <a href="https://tools.ietf.org/html/rfc4291">IETF RFC 4291</a>.
|
||
Any address that is not a <a href="struct.Ipv6Addr.html#method.is_multicast" title="method rustix::net::Ipv6Addr::is_multicast">multicast address</a> (<code>ff00::/8</code>) is unicast.</p>
|
||
<h5 id="examples-13"><a class="doc-anchor" href="#examples-13">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="comment">// The unspecified and loopback addresses are unicast.
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::UNSPECIFIED.is_unicast(), <span class="bool-val">true</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::LOCALHOST.is_unicast(), <span class="bool-val">true</span>);
|
||
|
||
<span class="comment">// Any address that is not a multicast address (`ff00::/8`) is unicast.
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast(), <span class="bool-val">true</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xff00</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast(), <span class="bool-val">false</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unicast_link_local" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.84.0, const since 1.84.0">1.84.0 (const: 1.84.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1684">Source</a></span><h4 class="code-header">pub const fn <a href="#method.is_unicast_link_local" class="fn">is_unicast_link_local</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> if the address is a unicast address with link-local scope,
|
||
as defined in <a href="https://tools.ietf.org/html/rfc4291">RFC 4291</a>.</p>
|
||
<p>A unicast address has link-local scope if it has the prefix <code>fe80::/10</code>, as per <a href="https://tools.ietf.org/html/rfc4291#section-2.4">RFC 4291 section 2.4</a>.
|
||
Note that this encompasses more addresses than those defined in <a href="https://tools.ietf.org/html/rfc4291#section-2.5.6">RFC 4291 section 2.5.6</a>,
|
||
which describes “Link-Local IPv6 Unicast Addresses” as having the following stricter format:</p>
|
||
<div class="example-wrap"><pre class="language-text"><code>| 10 bits | 54 bits | 64 bits |
|
||
+----------+-------------------------+----------------------------+
|
||
|1111111010| 0 | interface ID |
|
||
+----------+-------------------------+----------------------------+</code></pre></div>
|
||
<p>So while currently the only addresses with link-local scope an application will encounter are all in <code>fe80::/64</code>,
|
||
this might change in the future with the publication of new standards. More addresses in <code>fe80::/10</code> could be allocated,
|
||
and those addresses will have link-local scope.</p>
|
||
<p>Also note that while <a href="https://tools.ietf.org/html/rfc4291#section-2.5.3">RFC 4291 section 2.5.3</a> mentions about the <a href="struct.Ipv6Addr.html#associatedconstant.LOCALHOST" title="associated constant rustix::net::Ipv6Addr::LOCALHOST">loopback address</a> (<code>::1</code>) that “it is treated as having Link-Local scope”,
|
||
this does not mean that the loopback address actually has link-local scope and this method will return <code>false</code> on it.</p>
|
||
<h5 id="examples-14"><a class="doc-anchor" href="#examples-14">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="comment">// The loopback address (`::1`) does not actually have link-local scope.
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::LOCALHOST.is_unicast_link_local(), <span class="bool-val">false</span>);
|
||
|
||
<span class="comment">// Only addresses in `fe80::/10` have link-local scope.
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast_link_local(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfe80</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast_link_local(), <span class="bool-val">true</span>);
|
||
|
||
<span class="comment">// Addresses outside the stricter `fe80::/64` also have link-local scope.
|
||
</span><span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfe80</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast_link_local(), <span class="bool-val">true</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xfe81</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast_link_local(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_documentation" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1708">Source</a><h4 class="code-header">pub const fn <a href="#method.is_documentation" class="fn">is_documentation</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is an address reserved for documentation
|
||
(<code>2001:db8::/32</code>).</p>
|
||
<p>This property is defined in <a href="https://tools.ietf.org/html/rfc3849">IETF RFC 3849</a>.</p>
|
||
<h5 id="examples-15"><a class="doc-anchor" href="#examples-15">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_documentation(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_documentation(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_benchmarking" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1731">Source</a><h4 class="code-header">pub const fn <a href="#method.is_benchmarking" class="fn">is_benchmarking</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is an address reserved for benchmarking (<code>2001:2::/48</code>).</p>
|
||
<p>This property is defined in <a href="https://tools.ietf.org/html/rfc5180">IETF RFC 5180</a>, where it is mistakenly specified as covering the range <code>2001:0200::/48</code>.
|
||
This is corrected in <a href="https://www.rfc-editor.org/errata_search.php?eid=1752">IETF RFC Errata 1752</a> to <code>2001:0002::/48</code>.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc613</span>, <span class="number">0x0</span>).is_benchmarking(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0x2</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_benchmarking(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unicast_global" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1768">Source</a><h4 class="code-header">pub const fn <a href="#method.is_unicast_global" class="fn">is_unicast_global</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if the address is a globally routable unicast address.</p>
|
||
<p>The following return false:</p>
|
||
<ul>
|
||
<li>the loopback address</li>
|
||
<li>the link-local addresses</li>
|
||
<li>unique local addresses</li>
|
||
<li>the unspecified address</li>
|
||
<li>the address range reserved for documentation</li>
|
||
</ul>
|
||
<p>This method returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> for site-local addresses as per <a href="https://tools.ietf.org/html/rfc4291#section-2.5.7">RFC 4291 section 2.5.7</a></p>
|
||
<div class="example-wrap"><pre class="language-no_rust"><code>The special behavior of [the site-local unicast] prefix defined in [RFC3513] must no longer
|
||
be supported in new implementations (i.e., new implementations must treat this prefix as
|
||
Global Unicast).</code></pre></div><h5 id="examples-16"><a class="doc-anchor" href="#examples-16">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_unicast_global(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_unicast_global(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.multicast_scope" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1796">Source</a><h4 class="code-header">pub const fn <a href="#method.multicast_scope" class="fn">multicast_scope</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/1.84.0/core/net/ip_addr/enum.Ipv6MulticastScope.html" title="enum core::net::ip_addr::Ipv6MulticastScope">Ipv6MulticastScope</a>></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns the address’s multicast scope if the address is multicast.</p>
|
||
<h5 id="examples-17"><a class="doc-anchor" href="#examples-17">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::{Ipv6Addr, Ipv6MulticastScope};
|
||
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(<span class="number">0xff0e</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).multicast_scope(),
|
||
<span class="prelude-val">Some</span>(Ipv6MulticastScope::Global)
|
||
);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).multicast_scope(), <span class="prelude-val">None</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_multicast" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.7.0, const since 1.50.0">1.7.0 (const: 1.50.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1831">Source</a></span><h4 class="code-header">pub const fn <a href="#method.is_multicast" class="fn">is_multicast</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if this is a multicast address (<code>ff00::/8</code>).</p>
|
||
<p>This property is defined by <a href="https://tools.ietf.org/html/rfc4291">IETF RFC 4291</a>.</p>
|
||
<h5 id="examples-18"><a class="doc-anchor" href="#examples-18">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xff00</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_multicast(), <span class="bool-val">true</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).is_multicast(), <span class="bool-val">false</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_ipv4_mapped" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1855">Source</a><h4 class="code-header">pub const fn <a href="#method.is_ipv4_mapped" class="fn">is_ipv4_mapped</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip</code>)</span></div></span></summary><div class="docblock"><p>Returns <a href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html" title="primitive bool"><code>true</code></a> if the address is an IPv4-mapped address (<code>::ffff:0:0/96</code>).</p>
|
||
<p>IPv4-mapped addresses can be converted to their canonical IPv4 address with
|
||
<a href="struct.Ipv6Addr.html#method.to_ipv4_mapped" title="method rustix::net::Ipv6Addr::to_ipv4_mapped"><code>to_ipv4_mapped</code></a>.</p>
|
||
<h5 id="examples-19"><a class="doc-anchor" href="#examples-19">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip)]
|
||
|
||
</span><span class="kw">use </span>std::net::{Ipv4Addr, Ipv6Addr};
|
||
|
||
<span class="kw">let </span>ipv4_mapped = Ipv4Addr::new(<span class="number">192</span>, <span class="number">0</span>, <span class="number">2</span>, <span class="number">255</span>).to_ipv6_mapped();
|
||
<span class="macro">assert_eq!</span>(ipv4_mapped.is_ipv4_mapped(), <span class="bool-val">true</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc000</span>, <span class="number">0x2ff</span>).is_ipv4_mapped(), <span class="bool-val">true</span>);
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0x2001</span>, <span class="number">0xdb8</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).is_ipv4_mapped(), <span class="bool-val">false</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_ipv4_mapped" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.63.0, const since 1.75.0">1.63.0 (const: 1.75.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1884">Source</a></span><h4 class="code-header">pub const fn <a href="#method.to_ipv4_mapped" class="fn">to_ipv4_mapped</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Ipv4Addr.html" title="struct rustix::net::Ipv4Addr">Ipv4Addr</a>></h4></section></summary><div class="docblock"><p>Converts this address to an <a href="struct.Ipv4Addr.html" title="struct rustix::net::Ipv4Addr"><code>IPv4</code> address</a> if it’s an <a href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">IPv4-mapped</a> address,
|
||
as defined in <a href="https://tools.ietf.org/html/rfc4291#section-2.5.5.2">IETF RFC 4291 section 2.5.5.2</a>, otherwise returns <a href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html#variant.None" title="variant core::option::Option::None"><code>None</code></a>.</p>
|
||
<p><code>::ffff:a.b.c.d</code> becomes <code>a.b.c.d</code>.
|
||
All addresses <em>not</em> starting with <code>::ffff</code> will return <code>None</code>.</p>
|
||
<h5 id="examples-20"><a class="doc-anchor" href="#examples-20">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::{Ipv4Addr, Ipv6Addr};
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xff00</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).to_ipv4_mapped(), <span class="prelude-val">None</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).to_ipv4_mapped(),
|
||
<span class="prelude-val">Some</span>(Ipv4Addr::new(<span class="number">192</span>, <span class="number">10</span>, <span class="number">2</span>, <span class="number">255</span>)));
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>).to_ipv4_mapped(), <span class="prelude-val">None</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_ipv4" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0, const since 1.50.0">1.0.0 (const: 1.50.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1926">Source</a></span><h4 class="code-header">pub const fn <a href="#method.to_ipv4" class="fn">to_ipv4</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Ipv4Addr.html" title="struct rustix::net::Ipv4Addr">Ipv4Addr</a>></h4></section></summary><div class="docblock"><p>Converts this address to an <a href="struct.Ipv4Addr.html" title="struct rustix::net::Ipv4Addr"><code>IPv4</code> address</a> if it is either
|
||
an <a href="struct.Ipv6Addr.html#ipv4-compatible-ipv6-addresses" title="struct rustix::net::Ipv6Addr">IPv4-compatible</a> address as defined in <a href="https://tools.ietf.org/html/rfc4291#section-2.5.5.1">IETF RFC 4291 section 2.5.5.1</a>,
|
||
or an <a href="struct.Ipv6Addr.html#ipv4-mapped-ipv6-addresses" title="struct rustix::net::Ipv6Addr">IPv4-mapped</a> address as defined in <a href="https://tools.ietf.org/html/rfc4291#section-2.5.5.2">IETF RFC 4291 section 2.5.5.2</a>,
|
||
otherwise returns <a href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html#variant.None" title="variant core::option::Option::None"><code>None</code></a>.</p>
|
||
<p>Note that this will return an <a href="struct.Ipv4Addr.html" title="struct rustix::net::Ipv4Addr"><code>IPv4</code> address</a> for the IPv6 loopback address <code>::1</code>. Use
|
||
<a href="struct.Ipv6Addr.html#method.to_ipv4_mapped" title="method rustix::net::Ipv6Addr::to_ipv4_mapped"><code>Ipv6Addr::to_ipv4_mapped</code></a> to avoid this.</p>
|
||
<p><code>::a.b.c.d</code> and <code>::ffff:a.b.c.d</code> become <code>a.b.c.d</code>. <code>::1</code> becomes <code>0.0.0.1</code>.
|
||
All addresses <em>not</em> starting with either all zeroes or <code>::ffff</code> will return <code>None</code>.</p>
|
||
<h5 id="examples-21"><a class="doc-anchor" href="#examples-21">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::{Ipv4Addr, Ipv6Addr};
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xff00</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).to_ipv4(), <span class="prelude-val">None</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>).to_ipv4(),
|
||
<span class="prelude-val">Some</span>(Ipv4Addr::new(<span class="number">192</span>, <span class="number">10</span>, <span class="number">2</span>, <span class="number">255</span>)));
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>).to_ipv4(),
|
||
<span class="prelude-val">Some</span>(Ipv4Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>)));</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_canonical" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0, const since 1.75.0">1.75.0 (const: 1.75.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1952">Source</a></span><h4 class="code-header">pub const fn <a href="#method.to_canonical" class="fn">to_canonical</a>(&self) -> <a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a></h4></section></summary><div class="docblock"><p>Converts this address to an <code>IpAddr::V4</code> if it is an IPv4-mapped address,
|
||
otherwise returns self wrapped in an <code>IpAddr::V6</code>.</p>
|
||
<h5 id="examples-22"><a class="doc-anchor" href="#examples-22">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0x7f00</span>, <span class="number">0x1</span>).is_loopback(), <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0x7f00</span>, <span class="number">0x1</span>).to_canonical().is_loopback(), <span class="bool-val">true</span>);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.octets" class="method"><span class="rightside"><span class="since" title="Stable since Rust version 1.12.0, const since 1.32.0">1.12.0 (const: 1.32.0)</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1971">Source</a></span><h4 class="code-header">pub const fn <a href="#method.octets" class="fn">octets</a>(&self) -> [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">16</a>]</h4></section></summary><div class="docblock"><p>Returns the sixteen eight-bit integers the IPv6 address consists of.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::new(<span class="number">0xff00</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>).octets(),
|
||
[<span class="number">0xff</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>]);</code></pre></div>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_octets" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1998">Source</a><h4 class="code-header">pub const fn <a href="#method.from_octets" class="fn">from_octets</a>(octets: [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">16</a>]) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>ip_from</code>)</span></div></span></summary><div class="docblock"><p>Creates an <code>Ipv6Addr</code> from a sixteen element byte array.</p>
|
||
<h5 id="examples-23"><a class="doc-anchor" href="#examples-23">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(ip_from)]
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::from_octets([
|
||
<span class="number">0x19u8</span>, <span class="number">0x18u8</span>, <span class="number">0x17u8</span>, <span class="number">0x16u8</span>, <span class="number">0x15u8</span>, <span class="number">0x14u8</span>, <span class="number">0x13u8</span>, <span class="number">0x12u8</span>,
|
||
<span class="number">0x11u8</span>, <span class="number">0x10u8</span>, <span class="number">0x0fu8</span>, <span class="number">0x0eu8</span>, <span class="number">0x0du8</span>, <span class="number">0x0cu8</span>, <span class="number">0x0bu8</span>, <span class="number">0x0au8</span>,
|
||
]);
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x1918</span>, <span class="number">0x1716</span>, <span class="number">0x1514</span>, <span class="number">0x1312</span>,
|
||
<span class="number">0x1110</span>, <span class="number">0x0f0e</span>, <span class="number">0x0d0c</span>, <span class="number">0x0b0a</span>,
|
||
),
|
||
addr
|
||
);</code></pre></div>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Ipv6Addr-1" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/parser.rs.html#354">Source</a><a href="#impl-Ipv6Addr-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.parse_ascii" class="method"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/parser.rs.html#367">Source</a><h4 class="code-header">pub fn <a href="#method.parse_ascii" class="fn">parse_ascii</a>(b: &[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>]) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/net/parser/struct.AddrParseError.html" title="struct core::net::parser::AddrParseError">AddrParseError</a>></h4></section><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>addr_parse_ascii</code>)</span></div></span></summary><div class="docblock"><p>Parse an IPv6 address from a slice of bytes.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="attr">#![feature(addr_parse_ascii)]
|
||
|
||
</span><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>localhost = Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>);
|
||
|
||
<span class="macro">assert_eq!</span>(Ipv6Addr::parse_ascii(<span class="string">b"::1"</span>), <span class="prelude-val">Ok</span>(localhost));</code></pre></div>
|
||
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAnd%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html" title="trait core::ops::bit::BitAnd">BitAnd</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-9" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-9" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>&</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitand-3" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand" class="fn">bitand</a>(self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>&</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAnd%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html" title="trait core::ops::bit::BitAnd">BitAnd</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-7" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-7" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>&</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitand-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand" class="fn">bitand</a>(self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>&</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CIpv6Addr%3E-for-%26Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAnd%3CIpv6Addr%3E-for-%26Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html" title="trait core::ops::bit::BitAnd">BitAnd</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-8" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-8" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>&</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitand-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand" class="fn">bitand</a>(self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>&</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAnd-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html" title="trait core::ops::bit::BitAnd">BitAnd</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-6" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-6" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>&</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitand" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand" class="fn">bitand</a>(self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>&</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAnd.html#tymethod.bitand">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitAndAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAndAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html" title="trait core::ops::bit::BitAndAssign">BitAndAssign</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.bitand_assign-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand_assign-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign" class="fn">bitand_assign</a>(&mut self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>)</h4></section></summary><div class='docblock'>Performs the <code>&=</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitAndAssign-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitAndAssign-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html" title="trait core::ops::bit::BitAndAssign">BitAndAssign</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.bitand_assign" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitand_assign" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign" class="fn">bitand_assign</a>(&mut self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>)</h4></section></summary><div class='docblock'>Performs the <code>&=</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitAndAssign.html#tymethod.bitand_assign">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOr%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOr%3C%26Ipv6Addr%3E-for-%26Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html" title="trait core::ops::bit::BitOr">BitOr</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-3" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-3" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>|</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitor-3" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor" class="fn">bitor</a>(self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>|</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOr%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOr%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html" title="trait core::ops::bit::BitOr">BitOr</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>|</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitor-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor" class="fn">bitor</a>(self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>|</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOr%3CIpv6Addr%3E-for-%26Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOr%3CIpv6Addr%3E-for-%26Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html" title="trait core::ops::bit::BitOr">BitOr</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-2" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output-2" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>|</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitor-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor" class="fn">bitor</a>(self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>|</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOr-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOr-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html" title="trait core::ops::bit::BitOr">BitOr</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>|</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.bitor" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor" class="fn">bitor</a>(self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the <code>|</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOr.html#tymethod.bitor">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOrAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOrAssign%3C%26Ipv6Addr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html" title="trait core::ops::bit::BitOrAssign">BitOrAssign</a><&<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.bitor_assign-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor_assign-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign" class="fn">bitor_assign</a>(&mut self, rhs: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>)</h4></section></summary><div class='docblock'>Performs the <code>|=</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BitOrAssign-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a></span><a href="#impl-BitOrAssign-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html" title="trait core::ops::bit::BitOrAssign">BitOrAssign</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.bitor_assign" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2389-2399">Source</a><a href="#method.bitor_assign" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign" class="fn">bitor_assign</a>(&mut self, rhs: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>)</h4></section></summary><div class='docblock'>Performs the <code>|=</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.BitOrAssign.html#tymethod.bitor_assign">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a></span><a href="#impl-Clone-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/clone.rs.html#174">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: &Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2080">Source</a></span><a href="#impl-Debug-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2081">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, fmt: &mut <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C'de%3E-for-Ipv6Addr" class="impl"><a class="src rightside" href="../../src/serde/de/impls.rs.html#1739">Source</a><a href="#impl-Deserialize%3C'de%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl<'de> <a class="trait" href="../../serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/serde/de/impls.rs.html#1739">Source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a><D>(
|
||
deserializer: D,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, <D as <a class="trait" href="../../serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>::<a class="associatedtype" href="../../serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>><div class="where">where
|
||
D: <a class="trait" href="../../serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="../../serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2006">Source</a></span><a href="#impl-Display-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="docblock"><p>Writes an Ipv6Addr, conforming to the canonical style described by
|
||
<a href="https://tools.ietf.org/html/rfc5952">RFC 5952</a>.</p>
|
||
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2007">Source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5Bu16;+8%5D%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2191">Source</a></span><a href="#impl-From%3C%5Bu16;+8%5D%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">8</a>]> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2212">Source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(segments: [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u16.html">u16</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">8</a>]) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class="docblock"><p>Creates an <code>Ipv6Addr</code> from an eight element 16-bit array.</p>
|
||
<h5 id="examples-26"><a class="doc-anchor" href="#examples-26">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::from([
|
||
<span class="number">0x20du16</span>, <span class="number">0x20cu16</span>, <span class="number">0x20bu16</span>, <span class="number">0x20au16</span>,
|
||
<span class="number">0x209u16</span>, <span class="number">0x208u16</span>, <span class="number">0x207u16</span>, <span class="number">0x206u16</span>,
|
||
]);
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x20d</span>, <span class="number">0x20c</span>, <span class="number">0x20b</span>, <span class="number">0x20a</span>,
|
||
<span class="number">0x209</span>, <span class="number">0x208</span>, <span class="number">0x207</span>, <span class="number">0x206</span>,
|
||
),
|
||
addr
|
||
);</code></pre></div>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%5Bu8;+16%5D%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.9.0">1.9.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2164">Source</a></span><a href="#impl-From%3C%5Bu8;+16%5D%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">16</a>]> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2185">Source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(octets: [<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.array.html">16</a>]) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class="docblock"><p>Creates an <code>Ipv6Addr</code> from a sixteen element byte array.</p>
|
||
<h5 id="examples-25"><a class="doc-anchor" href="#examples-25">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::Ipv6Addr;
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::from([
|
||
<span class="number">0x19u8</span>, <span class="number">0x18u8</span>, <span class="number">0x17u8</span>, <span class="number">0x16u8</span>, <span class="number">0x15u8</span>, <span class="number">0x14u8</span>, <span class="number">0x13u8</span>, <span class="number">0x12u8</span>,
|
||
<span class="number">0x11u8</span>, <span class="number">0x10u8</span>, <span class="number">0x0fu8</span>, <span class="number">0x0eu8</span>, <span class="number">0x0du8</span>, <span class="number">0x0cu8</span>, <span class="number">0x0bu8</span>, <span class="number">0x0au8</span>,
|
||
]);
|
||
<span class="macro">assert_eq!</span>(
|
||
Ipv6Addr::new(
|
||
<span class="number">0x1918</span>, <span class="number">0x1716</span>, <span class="number">0x1514</span>, <span class="number">0x1312</span>,
|
||
<span class="number">0x1110</span>, <span class="number">0x0f0e</span>, <span class="number">0x0d0c</span>, <span class="number">0x0b0a</span>,
|
||
),
|
||
addr
|
||
);</code></pre></div>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CIpv6Addr%3E-for-IpAddr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1071">Source</a></span><a href="#impl-From%3CIpv6Addr%3E-for-IpAddr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#1087">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(ipv6: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a></h4></section></summary><div class="docblock"><p>Copies this address to a new <code>IpAddr::V6</code>.</p>
|
||
<h5 id="examples-24"><a class="doc-anchor" href="#examples-24">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::net::{IpAddr, Ipv6Addr};
|
||
|
||
<span class="kw">let </span>addr = Ipv6Addr::new(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, <span class="number">0xc00a</span>, <span class="number">0x2ff</span>);
|
||
|
||
<span class="macro">assert_eq!</span>(
|
||
IpAddr::V6(addr),
|
||
IpAddr::from(addr)
|
||
);</code></pre></div>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3Cu128%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.26.0">1.26.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2155">Source</a></span><a href="#impl-From%3Cu128%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u128.html">u128</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2158">Source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(ip: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u128.html">u128</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class="docblock"><p>Uses <a href="struct.Ipv6Addr.html#method.from_bits" title="associated function rustix::net::Ipv6Addr::from_bits"><code>Ipv6Addr::from_bits</code></a> to convert a host byte order <code>u128</code> to an IPv6 address.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-FromStr-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/parser.rs.html#373">Source</a></span><a href="#impl-FromStr-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/str/traits/trait.FromStr.html" title="trait core::str::traits::FromStr">FromStr</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Err" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/parser.rs.html#374">Source</a><a href="#associatedtype.Err" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/str/traits/trait.FromStr.html#associatedtype.Err" class="associatedtype">Err</a> = <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/net/parser/struct.AddrParseError.html" title="struct core::net::parser::AddrParseError">AddrParseError</a></h4></section></summary><div class='docblock'>The associated error which can be returned from parsing.</div></details><details class="toggle method-toggle" open><summary><section id="method.from_str" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/parser.rs.html#375">Source</a><a href="#method.from_str" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/str/traits/trait.FromStr.html#tymethod.from_str" class="fn">from_str</a>(s: &<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/net/parser/struct.AddrParseError.html" title="struct core::net::parser::AddrParseError">AddrParseError</a>></h4></section></summary><div class='docblock'>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/1.84.0/core/str/traits/trait.FromStr.html#tymethod.from_str">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Hash-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#170">Source</a></span><a href="#impl-Hash-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#171">Source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&mut H</a>)<div class="where">where
|
||
H: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</div></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/hash/mod.rs.html#235-237">Source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &[Self], state: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&mut H</a>)<div class="where">where
|
||
H: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.84.0/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Not-for-%26Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2309">Source</a></span><a href="#impl-Not-for-%26Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html" title="trait core::ops::bit::Not">Not</a> for &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-5" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2310">Source</a><a href="#associatedtype.Output-5" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>!</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.not-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2313">Source</a><a href="#method.not-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#tymethod.not" class="fn">not</a>(self) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the unary <code>!</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#tymethod.not">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Not-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.75.0">1.75.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2296">Source</a></span><a href="#impl-Not-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html" title="trait core::ops::bit::Not">Not</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output-4" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2297">Source</a><a href="#associatedtype.Output-4" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>The resulting type after applying the <code>!</code> operator.</div></details><details class="toggle method-toggle" open><summary><section id="method.not" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2300">Source</a><a href="#method.not" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#tymethod.not" class="fn">not</a>(self) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><div class='docblock'>Performs the unary <code>!</code> operation. <a href="https://doc.rust-lang.org/1.84.0/core/ops/bit/trait.Not.html#tymethod.not">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Ord-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2139">Source</a></span><a href="#impl-Ord-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2141">Source</a><a href="#method.cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#tymethod.cmp" class="fn">cmp</a>(&self, other: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class='docblock'>This method returns an <a href="https://doc.rust-lang.org/1.84.0/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering"><code>Ordering</code></a> between <code>self</code> and <code>other</code>. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#tymethod.cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#980-982">Source</a></span><a href="#method.max" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.max" class="fn">max</a>(self, other: Self) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.21.0">1.21.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1001-1003">Source</a></span><a href="#method.min" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.min" class="fn">min</a>(self, other: Self) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.50.0">1.50.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1027-1029">Source</a></span><a href="#method.clamp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.clamp" class="fn">clamp</a>(self, min: Self, max: Self) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CIpAddr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2087">Source</a></span><a href="#impl-PartialEq%3CIpAddr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2089">Source</a><a href="#method.eq-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-1" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#261">Source</a></span><a href="#method.ne-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
|
||
and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CIpv6Addr%3E-for-IpAddr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2098">Source</a></span><a href="#impl-PartialEq%3CIpv6Addr%3E-for-IpAddr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2100">Source</a><a href="#method.eq-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-2" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#261">Source</a></span><a href="#method.ne-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
|
||
and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a></span><a href="#impl-PartialEq-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#261">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
|
||
and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CIpAddr%3E-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2128">Source</a></span><a href="#impl-PartialOrd%3CIpAddr%3E-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a>> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.partial_cmp-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2130">Source</a><a href="#method.partial_cmp-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/1.84.0/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt-2" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1335">Source</a></span><a href="#method.lt-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le-2" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1353">Source</a></span><a href="#method.le-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the
|
||
<code><=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt-2" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1371">Source</a></span><a href="#method.gt-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code>
|
||
operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge-2" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1389">Source</a></span><a href="#method.ge-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by
|
||
the <code>>=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CIpv6Addr%3E-for-IpAddr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.16.0">1.16.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2117">Source</a></span><a href="#impl-PartialOrd%3CIpv6Addr%3E-for-IpAddr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>> for <a class="enum" href="enum.IpAddr.html" title="enum rustix::net::IpAddr">IpAddr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.partial_cmp-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2119">Source</a><a href="#method.partial_cmp-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/1.84.0/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt-1" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1335">Source</a></span><a href="#method.lt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le-1" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1353">Source</a></span><a href="#method.le-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the
|
||
<code><=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt-1" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1371">Source</a></span><a href="#method.gt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code>
|
||
operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge-1" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1389">Source</a></span><a href="#method.ge-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by
|
||
the <code>>=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2109">Source</a></span><a href="#impl-PartialOrd-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#2111">Source</a><a href="#method.partial_cmp" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp" class="fn">partial_cmp</a>(&self, other: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="enum" href="https://doc.rust-lang.org/1.84.0/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>></h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1335">Source</a></span><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt" class="fn">lt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than (for <code>self</code> and <code>other</code>) and is used by the <code><</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.lt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1353">Source</a></span><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le" class="fn">le</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the
|
||
<code><=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1371">Source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt" class="fn">gt</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>></code>
|
||
operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.gt">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/cmp.rs.html#1389">Source</a></span><a href="#method.ge" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge" class="fn">ge</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by
|
||
the <code>>=</code> operator. <a href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Ipv6Addr" class="impl"><a class="src rightside" href="../../src/serde/ser/impls.rs.html#881">Source</a><a href="#impl-Serialize-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl"><a class="src rightside" href="../../src/serde/ser/impls.rs.html#882-884">Source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="../../serde/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a><S>(
|
||
&self,
|
||
serializer: S,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<S as <a class="trait" href="../../serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="../../serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, <S as <a class="trait" href="../../serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>::<a class="associatedtype" href="../../serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>><div class="where">where
|
||
S: <a class="trait" href="../../serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="../../serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Step-for-Ipv6Addr" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#605">Source</a><a href="#impl-Step-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html" title="trait core::iter::range::Step">Step</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.steps_between" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#607">Source</a><a href="#method.steps_between" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.steps_between" class="fn">steps_between</a>(_: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, _: &<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>) -> (<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the bounds on the number of <em>successor</em> steps required to get from <code>start</code> to <code>end</code>
|
||
like <a href="https://doc.rust-lang.org/1.84.0/core/iter/traits/iterator/trait.Iterator.html#method.size_hint" title="method core::iter::traits::iterator::Iterator::size_hint"><code>Iterator::size_hint()</code></a>. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.steps_between">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.forward_checked" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#612">Source</a><a href="#method.forward_checked" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.forward_checked" class="fn">forward_checked</a>(start: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>successor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.forward_checked">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.backward_checked" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#617">Source</a><a href="#method.backward_checked" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.backward_checked" class="fn">backward_checked</a>(start: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>predecessor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#tymethod.backward_checked">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.forward_unchecked" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#622">Source</a><a href="#method.forward_unchecked" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.forward_unchecked" class="fn">forward_unchecked</a>(start: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>successor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.forward_unchecked">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.backward_unchecked" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#629">Source</a><a href="#method.backward_unchecked" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.backward_unchecked" class="fn">backward_unchecked</a>(start: <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a>, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>predecessor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.backward_unchecked">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.forward" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#82">Source</a><a href="#method.forward" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.forward" class="fn">forward</a>(start: Self, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>successor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.forward">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.backward" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#152">Source</a><a href="#method.backward" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.backward" class="fn">backward</a>(start: Self, count: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>step_trait</code>)</span></div></span><div class='docblock'>Returns the value that would be obtained by taking the <em>predecessor</em>
|
||
of <code>self</code> <code>count</code> times. <a href="https://doc.rust-lang.org/1.84.0/core/iter/range/trait.Step.html#method.backward">Read more</a></div></details></div></details><section id="impl-Copy-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a></span><a href="#impl-Copy-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-Eq-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a></span><a href="#impl-Eq-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-StructuralPartialEq-for-Ipv6Addr" class="impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.84.0/src/core/net/ip_addr.rs.html#163">Source</a></span><a href="#impl-StructuralPartialEq-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-TrustedStep-for-Ipv6Addr" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/iter/range.rs.html#17">Source</a><a href="#impl-TrustedStep-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/iter/traits/marker/trait.TrustedStep.html" title="trait core::iter::traits::marker::TrustedStep">TrustedStep</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Ipv6Addr" class="impl"><a href="#impl-Freeze-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-RefUnwindSafe-for-Ipv6Addr" class="impl"><a href="#impl-RefUnwindSafe-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-Send-for-Ipv6Addr" class="impl"><a href="#impl-Send-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-Sync-for-Ipv6Addr" class="impl"><a href="#impl-Sync-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-Unpin-for-Ipv6Addr" class="impl"><a href="#impl-Unpin-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section><section id="impl-UnwindSafe-for-Ipv6Addr" class="impl"><a href="#impl-UnwindSafe-for-Ipv6Addr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Ipv6Addr.html" title="struct rustix::net::Ipv6Addr">Ipv6Addr</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
|
||
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#209">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#211">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#217">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#218">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/clone.rs.html#273">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/clone.rs.html#275">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&self, dst: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dst</code>. <a href="https://doc.rust-lang.org/1.84.0/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#765">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#768">Source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#748-750">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#758">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
|
||
<p>That is, this conversion is whatever the implementation of
|
||
<code><a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#82-84">Source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#86">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#87">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/borrow.rs.html#91">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.84.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToString-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/string.rs.html#2677">Source</a><a href="#impl-ToString-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.84.0/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/alloc/string.rs.html#2683">Source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/1.84.0/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/1.84.0/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#805-807">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#809">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#812">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#790-792">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#794">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#797">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><section id="impl-DeserializeOwned-for-T" class="impl"><a class="src rightside" href="../../src/serde/de/mod.rs.html#614">Source</a><a href="#impl-DeserializeOwned-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="../../serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> for T<div class="where">where
|
||
T: for<'de> <a class="trait" href="../../serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de>,</div></h3></section></div></section></div></main></body></html> |