Files
phy/async_fs/unix/trait.OpenOptionsExt.html
Orion Kindel 0ce894e6b0 doc
2025-03-18 10:30:23 -05:00

31 lines
8.4 KiB
HTML
Raw Permalink 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="Unix-specific extensions to `OpenOptions`."><title>OpenOptionsExt in async_fs::unix - 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="async_fs" 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="icon" href="https://raw.githubusercontent.com/smol-rs/smol/master/assets/images/logo_fullsize_transparent.png"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../../async_fs/index.html"><img src="https://raw.githubusercontent.com/smol-rs/smol/master/assets/images/logo_fullsize_transparent.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../async_fs/index.html"><img src="https://raw.githubusercontent.com/smol-rs/smol/master/assets/images/logo_fullsize_transparent.png" alt="logo"></a><h2><a href="../../async_fs/index.html">async_<wbr>fs</a><span class="version">2.1.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Open<wbr>Options<wbr>Ext</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.custom_flags" title="custom_flags">custom_flags</a></li><li><a href="#tymethod.mode" title="mode">mode</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In async_<wbr>fs::<wbr>unix</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">async_fs</a>::<wbr><a href="index.html">unix</a></span><h1>Trait <span class="trait">OpenOptionsExt</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/async_fs/lib.rs.html#1609-1654">Source</a> </span></div><pre class="rust item-decl"><code>pub trait OpenOptionsExt: Sealed {
// Required methods
fn <a href="#tymethod.mode" class="fn">mode</a>(&amp;mut self, mode: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a>) -&gt; &amp;mut Self;
<span class="item-spacer"></span> fn <a href="#tymethod.custom_flags" class="fn">custom_flags</a>(&amp;mut self, flags: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.i32.html">i32</a>) -&gt; &amp;mut Self;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Unix-specific extensions to <a href="../struct.OpenOptions.html" title="struct async_fs::OpenOptions"><code>OpenOptions</code></a>.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.mode" class="method"><a class="src rightside" href="../../src/async_fs/lib.rs.html#1631">Source</a><h4 class="code-header">fn <a href="#tymethod.mode" class="fn">mode</a>(&amp;mut self, mode: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.u32.html">u32</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the mode bits that a new file will be created with.</p>
<p>If a new file is created as part of an <a href="../struct.OpenOptions.html#method.open" title="method async_fs::OpenOptions::open"><code>OpenOptions::open()</code></a> call then this
specified <code>mode</code> will be used as the permission bits for the new file.</p>
<p>If no <code>mode</code> is set, the default of <code>0o666</code> will be used.
The operating system masks out bits with the systems <code>umask</code>, to produce
the final permissions.</p>
<h5 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>async_fs::{OpenOptions, unix::OpenOptionsExt};
<span class="kw">let </span><span class="kw-2">mut </span>options = OpenOptions::new();
<span class="comment">// Read/write permissions for owner and read permissions for others.
</span>options.mode(<span class="number">0o644</span>);
<span class="kw">let </span>file = options.open(<span class="string">"foo.txt"</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.custom_flags" class="method"><a class="src rightside" href="../../src/async_fs/lib.rs.html#1653">Source</a><h4 class="code-header">fn <a href="#tymethod.custom_flags" class="fn">custom_flags</a>(&amp;mut self, flags: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.i32.html">i32</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Passes custom flags to the <code>flags</code> argument of <code>open</code>.</p>
<p>The bits that define the access mode are masked out with <code>O_ACCMODE</code>, to
ensure they do not interfere with the access mode set by Rusts options.</p>
<p>Custom flags can only set flags, not remove flags set by Rusts options.
This options overwrites any previously set custom flags.</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>async_fs::{OpenOptions, unix::OpenOptionsExt};
<span class="kw">let </span><span class="kw-2">mut </span>options = OpenOptions::new();
options.write(<span class="bool-val">true</span>);
options.custom_flags(libc::O_NOFOLLOW);
<span class="kw">let </span>file = options.open(<span class="string">"foo.txt"</span>).<span class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.84.0/reference/items/traits.html#object-safety">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-OpenOptionsExt-for-OpenOptions" class="impl"><a class="src rightside" href="../../src/async_fs/lib.rs.html#1494-1504">Source</a><a href="#impl-OpenOptionsExt-for-OpenOptions" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.OpenOptionsExt.html" title="trait async_fs::unix::OpenOptionsExt">OpenOptionsExt</a> for <a class="struct" href="../struct.OpenOptions.html" title="struct async_fs::OpenOptions">OpenOptions</a></h3></section></div><script src="../../trait.impl/async_fs/unix/trait.OpenOptionsExt.js" async></script></section></div></main></body></html>