Files
google_speech_rs/docs/pyo3/pycell/struct.PyRef.html
T
2021-06-27 15:50:04 +00:00

90 lines
41 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="Wraps a borrowed reference to a value in a `PyCell<T>`."><meta name="keywords" content="rust, rustlang, rust-lang, PyRef"><title>PyRef in pyo3::pycell - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><script src="../../crates.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></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="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a href='../../pyo3/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Struct PyRef</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.into_super">into_super</a><a href="#method.py">py</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-AsPyPointer">AsPyPointer</a><a href="#impl-AsRef%3CU%3E">AsRef&lt;U&gt;</a><a href="#impl-Debug">Debug</a><a href="#impl-Deref">Deref</a><a href="#impl-Drop">Drop</a><a href="#impl-From%3CPyRef%3C%27a%2C%20T%3E%3E">From&lt;PyRef&lt;&#39;a, T&gt;&gt;</a><a href="#impl-FromPyObject%3C%27a%3E">FromPyObject&lt;&#39;a&gt;</a><a href="#impl-IntoPy%3CPy%3CPyAny%3E%3E">IntoPy&lt;Py&lt;PyAny&gt;&gt;</a><a href="#impl-TryFrom%3C%26%27a%20PyCell%3CT%3E%3E">TryFrom&lt;&amp;&#39;a PyCell&lt;T&gt;&gt;</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">!Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class="location"><a href="../index.html">pyo3</a>::<wbr><a href="index.html">pycell</a></p><div id="sidebar-vars" data-name="PyRef" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" height="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" class="help-button">?</button>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" height="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">pyo3</a>::<wbr><a href="index.html">pycell</a>::<wbr><a class="struct" href="">PyRef</a><button id="copy-path" onclick="copy_path(this)"></button></span><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../../src/pyo3/pycell.rs.html#492-494" title="goto source code">[src]</a></span></h1><div class="docblock type-decl"><pre class="rust struct">pub struct PyRef&lt;'p, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; { /* fields omitted */ }</pre></div><div class="docblock"><p>Wraps a borrowed reference to a value in a <code>PyCell&lt;T&gt;</code>.</p>
<p>See the <a href="struct.PyCell.html"><code>PyCell</code></a> documentation for more.</p>
<h1 id="example" class="section-header"><a href="#example">Example</a></h1>
<p>You can use <code>PyRef</code> as an alternative of <code>&amp;self</code> receiver when</p>
<ul>
<li>You need to access the pointer of <code>PyCell</code>.</li>
<li>You want to get super class.</li>
</ul>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="attribute">#[<span class="ident">pyclass</span>(<span class="ident">subclass</span>)]</span>
<span class="kw">struct</span> <span class="ident">Parent</span> {
<span class="ident">basename</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
}
<span class="attribute">#[<span class="ident">pyclass</span>(<span class="ident">extends</span><span class="op">=</span><span class="ident">Parent</span>)]</span>
<span class="kw">struct</span> <span class="ident">Child</span> {
<span class="ident">name</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
}
<span class="attribute">#[<span class="ident">pymethods</span>]</span>
<span class="kw">impl</span> <span class="ident">Child</span> {
<span class="attribute">#[<span class="ident">new</span>]</span>
<span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>, <span class="ident">Parent</span>) {
(<span class="ident">Child</span> { <span class="ident">name</span>: <span class="string">&quot;Caterpillar&quot;</span> }, <span class="ident">Parent</span> { <span class="ident">basename</span>: <span class="string">&quot;Butterfly&quot;</span> })
}
<span class="kw">fn</span> <span class="ident">format</span>(<span class="ident">slf</span>: <span class="ident">PyRef</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">String</span> {
<span class="comment">// We can get *mut ffi::PyObject from PyRef</span>
<span class="kw">use</span> <span class="ident">pyo3::AsPyPointer</span>;
<span class="kw">let</span> <span class="ident">refcnt</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">pyo3::ffi::Py_REFCNT</span>(<span class="ident">slf</span>.<span class="ident">as_ptr</span>()) };
<span class="comment">// We can get &amp;Self::BaseType by as_ref</span>
<span class="kw">let</span> <span class="ident">basename</span> <span class="op">=</span> <span class="ident">slf</span>.<span class="ident">as_ref</span>().<span class="ident">basename</span>;
<span class="macro">format!</span>(<span class="string">&quot;{}(base: {}, cnt: {})&quot;</span>, <span class="ident">slf</span>.<span class="ident">name</span>, <span class="ident">basename</span>, <span class="ident">refcnt</span>)
}
}</pre></div>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl" class="impl"><code class="in-band">impl&lt;'p, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#496-502" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.py" class="method"><code>pub fn <a href="#method.py" class="fnname">py</a>(&amp;self) -&gt; <a class="struct" href="../prelude/struct.Python.html" title="struct pyo3::prelude::Python">Python</a>&lt;'_&gt;</code><a href="#method.py" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#499-501" title="goto source code">[src]</a></h4><div class="docblock"><p>Returns <code>Python</code> token.
This function is safe since PyRef has the same lifetime as a <code>GILGuard</code>.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-1" class="impl"><code class="in-band">impl&lt;'p, T, U&gt; <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a> + <a class="trait" href="../type_object/trait.PyTypeInfo.html" title="trait pyo3::type_object::PyTypeInfo">PyTypeInfo</a>&lt;BaseType = U, BaseLayout = PyCellInner&lt;U&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>,&nbsp;</span></code><a href="#impl-1" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#514-563" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.into_super" class="method"><code>pub fn <a href="#method.into_super" class="fnname">into_super</a>(self) -&gt; <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, U&gt;</code><a href="#method.into_super" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#556-562" title="goto source code">[src]</a></h4><div class="docblock"><p>Get <code>PyRef&lt;T::BaseType&gt;</code>.
You can use this method to get super class of super class.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="attribute">#[<span class="ident">pyclass</span>(<span class="ident">subclass</span>)]</span>
<span class="kw">struct</span> <span class="ident">Base1</span> {
<span class="ident">name1</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
}
<span class="attribute">#[<span class="ident">pyclass</span>(<span class="ident">extends</span><span class="op">=</span><span class="ident">Base1</span>, <span class="ident">subclass</span>)]</span>
<span class="kw">struct</span> <span class="ident">Base2</span> {
<span class="ident">name2</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
}
<span class="attribute">#[<span class="ident">pyclass</span>(<span class="ident">extends</span><span class="op">=</span><span class="ident">Base2</span>)]</span>
<span class="kw">struct</span> <span class="ident">Sub</span> {
<span class="ident">name3</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>,
}
<span class="attribute">#[<span class="ident">pymethods</span>]</span>
<span class="kw">impl</span> <span class="ident">Sub</span> {
<span class="attribute">#[<span class="ident">new</span>]</span>
<span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="ident">PyClassInitializer</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="ident">PyClassInitializer::from</span>(<span class="ident">Base1</span>{ <span class="ident">name1</span>: <span class="string">&quot;base1&quot;</span> })
.<span class="ident">add_subclass</span>(<span class="ident">Base2</span> { <span class="ident">name2</span>: <span class="string">&quot;base2&quot;</span> })
.<span class="ident">add_subclass</span>(<span class="self">Self</span> { <span class="ident">name3</span>: <span class="string">&quot;sub&quot;</span> })
}
<span class="kw">fn</span> <span class="ident">name</span>(<span class="ident">slf</span>: <span class="ident">PyRef</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">String</span> {
<span class="kw">let</span> <span class="ident">subname</span> <span class="op">=</span> <span class="ident">slf</span>.<span class="ident">name3</span>;
<span class="kw">let</span> <span class="ident">super_</span> <span class="op">=</span> <span class="ident">slf</span>.<span class="ident">into_super</span>();
<span class="macro">format!</span>(<span class="string">&quot;{} {} {}&quot;</span>, <span class="ident">super_</span>.<span class="ident">as_ref</span>().<span class="ident">name1</span>, <span class="ident">super_</span>.<span class="ident">name2</span>, <span class="ident">subname</span>)
}
}</pre></div>
</div></div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-AsPyPointer" class="impl"><code class="in-band">impl&lt;'a, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="trait" href="../conversion/trait.AsPyPointer.html" title="trait pyo3::conversion::AsPyPointer">AsPyPointer</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'a, T&gt;</code><a href="#impl-AsPyPointer" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#594-598" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.as_ptr" class="method hidden trait-impl"><code>fn <a href="../conversion/trait.AsPyPointer.html#tymethod.as_ptr" class="fnname">as_ptr</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="struct" href="../ffi/struct.PyObject.html" title="struct pyo3::ffi::PyObject">PyObject</a></code><a href="#method.as_ptr" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#595-597" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Retrieves the underlying FFI pointer (as a borrowed pointer).</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-AsRef%3CU%3E" class="impl"><code class="in-band">impl&lt;'p, T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;U&gt; for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a> + <a class="trait" href="../type_object/trait.PyTypeInfo.html" title="trait pyo3::type_object::PyTypeInfo">PyTypeInfo</a>&lt;BaseType = U, BaseLayout = PyCellInner&lt;U&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>,&nbsp;</span></code><a href="#impl-AsRef%3CU%3E" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#504-512" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.as_ref" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html#tymethod.as_ref" class="fnname">as_ref</a>(&amp;self) -&gt; &amp;T::<a class="type" href="../type_object/trait.PyTypeInfo.html#associatedtype.BaseType" title="type pyo3::type_object::PyTypeInfo::BaseType">BaseType</a></code><a href="#method.as_ref" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#509-511" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Debug" class="impl"><code class="in-band">impl&lt;T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'_, T&gt;</code><a href="#impl-Debug" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#600-604" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.fmt" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a href="#method.fmt" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#601-603" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Deref" class="impl"><code class="in-band">impl&lt;'p, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-Deref" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#565-572" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="associatedtype.Target" class="type trait-impl"><code>type <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" class="type">Target</a> = T</code><a href="#associatedtype.Target" class="anchor"></a></h4><div class='docblock'><p>The resulting type after dereferencing.</p>
</div><h4 id="method.deref" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#tymethod.deref" class="fnname">deref</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a href="#method.deref" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#569-571" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Dereferences the value.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Drop" class="impl"><code class="in-band">impl&lt;'p, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-Drop" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#574-579" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.drop" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop" class="fnname">drop</a>(&amp;mut self)</code><a href="#method.drop" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#575-578" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Executes the destructor for this type. <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-From%3CPyRef%3C%27a%2C%20T%3E%3E" class="impl"><code class="in-band">impl&lt;'a, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'a, T&gt;&gt; for <a class="struct" href="../prelude/struct.Py.html" title="struct pyo3::prelude::Py">Py</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>,&nbsp;</span></code><a href="#impl-From%3CPyRef%3C%27a%2C%20T%3E%3E" class="anchor"></a><a class="srclink" href="../../src/pyo3/instance.rs.html#522-529" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.from" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(pyref: <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'a, T&gt;) -&gt; Self</code><a href="#method.from" class="anchor"></a><a class="srclink" href="../../src/pyo3/instance.rs.html#526-528" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-FromPyObject%3C%27a%3E" class="impl"><code class="in-band">impl&lt;'a, T&gt; <a class="trait" href="../conversion/trait.FromPyObject.html" title="trait pyo3::conversion::FromPyObject">FromPyObject</a>&lt;'a&gt; for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'a, T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>,&nbsp;</span></code><a href="#impl-FromPyObject%3C%27a%3E" class="anchor"></a><a class="srclink" href="../../src/pyo3/conversion.rs.html#247-255" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.extract" class="method hidden trait-impl"><code>fn <a href="../conversion/trait.FromPyObject.html#tymethod.extract" class="fnname">extract</a>(obj: &amp;'a <a class="struct" href="../prelude/struct.PyAny.html" title="struct pyo3::prelude::PyAny">PyAny</a>) -&gt; <a class="type" href="../prelude/type.PyResult.html" title="type pyo3::prelude::PyResult">PyResult</a>&lt;Self&gt;</code><a href="#method.extract" class="anchor"></a><a class="srclink" href="../../src/pyo3/conversion.rs.html#251-254" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Extracts <code>Self</code> from the source <code>PyObject</code>.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-IntoPy%3CPy%3CPyAny%3E%3E" class="impl"><code class="in-band">impl&lt;T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="trait" href="../conversion/trait.IntoPy.html" title="trait pyo3::conversion::IntoPy">IntoPy</a>&lt;<a class="struct" href="../prelude/struct.Py.html" title="struct pyo3::prelude::Py">Py</a>&lt;<a class="struct" href="../prelude/struct.PyAny.html" title="struct pyo3::prelude::PyAny">PyAny</a>&gt;&gt; for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'_, T&gt;</code><a href="#impl-IntoPy%3CPy%3CPyAny%3E%3E" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#581-585" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.into_py" class="method hidden trait-impl"><code>fn <a href="../conversion/trait.IntoPy.html#tymethod.into_py" class="fnname">into_py</a>(self, py: <a class="struct" href="../prelude/struct.Python.html" title="struct pyo3::prelude::Python">Python</a>&lt;'_&gt;) -&gt; <a class="type" href="../prelude/type.PyObject.html" title="type pyo3::prelude::PyObject">PyObject</a></code><a href="#method.into_py" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#582-584" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-TryFrom%3C%26%27a%20PyCell%3CT%3E%3E" class="impl"><code class="in-band">impl&lt;'a, T:&nbsp;<a class="trait" href="../pyclass/trait.PyClass.html" title="trait pyo3::pyclass::PyClass">PyClass</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;&amp;'a <a class="struct" href="struct.PyCell.html" title="struct pyo3::pycell::PyCell">PyCell</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'a, T&gt;</code><a href="#impl-TryFrom%3C%26%27a%20PyCell%3CT%3E%3E" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#587-592" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="associatedtype.Error" class="type trait-impl"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="struct" href="struct.PyBorrowError.html" title="struct pyo3::pycell::PyBorrowError">PyBorrowError</a></code><a href="#associatedtype.Error" class="anchor"></a></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_from" class="method hidden trait-impl"><code>fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(cell: &amp;'a <a class="struct" href="struct.PyCell.html" title="struct pyo3::pycell::PyCell">PyCell</a>&lt;T&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, Self::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a href="#method.try_from" class="anchor"></a><a class="srclink" href="../../src/pyo3/pycell.rs.html#589-591" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><h3 id="impl-RefUnwindSafe" class="impl"><code class="in-band">impl&lt;'p, T&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-RefUnwindSafe" class="anchor"></a></h3><h3 id="impl-Send" class="impl"><code class="in-band">impl&lt;'p, T&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-Send" class="anchor"></a></h3><h3 id="impl-Sync" class="impl"><code class="in-band">impl&lt;'p, T&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-Sync" class="anchor"></a></h3><h3 id="impl-Unpin" class="impl"><code class="in-band">impl&lt;'p, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-Unpin" class="anchor"></a></h3><h3 id="impl-UnwindSafe" class="impl"><code class="in-band">impl&lt;'p, T&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PyRef.html" title="struct pyo3::pycell::PyRef">PyRef</a>&lt;'p, T&gt;</code><a href="#impl-UnwindSafe" class="anchor"></a></h3></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Any" class="impl"><code class="in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-Any" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#131-135" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.type_id" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a href="#method.type_id" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#132" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Borrow%3CT%3E" class="impl"><code class="in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-Borrow%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208-213" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.borrow" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a href="#method.borrow" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-BorrowMut%3CT%3E" class="impl"><code class="in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#216-220" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.borrow_mut" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a href="#method.borrow_mut" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-From%3CT%3E" class="impl"><code class="in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href="#impl-From%3CT%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#544-548" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.from-1" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</code><a href="#method.from-1" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#545" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-Into%3CU%3E" class="impl"><code class="in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href="#impl-Into%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#533-540" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="method.into" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</code><a href="#method.into" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#537" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-TryFrom%3CU%3E" class="impl"><code class="in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href="#impl-TryFrom%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#581-590" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="associatedtype.Error-1" class="type trait-impl"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code><a href="#associatedtype.Error-1" class="anchor"></a></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_from-1" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a href="#method.try_from-1" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#587" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><h3 id="impl-TryInto%3CU%3E" class="impl"><code class="in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href="#impl-TryInto%3CU%3E" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#567-576" title="goto source code">[src]</a></h3></summary><div class="impl-items"><h4 id="associatedtype.Error-2" class="type trait-impl"><code>type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code><a href="#associatedtype.Error-2" class="anchor"></a></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id="method.try_into" class="method hidden trait-impl"><code>pub fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a href="#method.try_into" class="anchor"></a><a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#573" title="goto source code">[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></details></div></section><section id="search" class="content hidden"></section><div id="rustdoc-vars" data-root-path="../../" data-current-crate="pyo3" data-search-index-js="../../search-index.js" data-search-js="../../search.js"></div>
<script src="../../main.js"></script></body></html>