<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="A FileMode represents the kind of tree entries used by git. It resembles regular file systems modes, although FileModes are considerably simpler (there are not so many), and there are some, like Submodule that has no file system equivalent."><metaname="keywords"content="rust, rustlang, rust-lang, GitFileMode"><title>GitFileMode in pages::git - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Regular.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Medium.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Bold.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Semibold.ttf.woff2"><linkrel="stylesheet"href="../../normalize.css"><linkrel="stylesheet"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"href="../../ayu.css"disabled><linkrel="stylesheet"href="../../dark.css"disabled><linkrel="stylesheet"href="../../light.css"id="themeStyle"><scriptid="default-settings"></script><scriptsrc="../../storage.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../../main.js"></script><noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="sidebar-logo"href="../../pages/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"></h2></nav><navclass="sidebar"><aclass="sidebar-logo"href="../../pages/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"><ahref="#">GitFileMode</a></h2><divclass="sidebar-elems"><section><divclass="block"><h3class="sidebar-title"><ahref="#variants">Variants</a></h3><ul><li><ahref="#variant.Deprecated">Deprecated</a></li><li><ahref="#variant.Dir">Dir</a></li><li><ahref="#variant.Empty">Empty</a></li><li><ahref="#variant.Executable">Executable</a></li><li><ahref="#variant.Regular">Regular</a></li><li><ahref="#variant.Submodule">Submodule</a></li><li><ahref="#variant.Symlink">Symlink</a></li><li><ahref="#variant.Unsupported">Unsupported</a></li></ul></div><divclass="block"><h3class="sidebar-title"><ahref="#trait-implementations">Trait Implementations</a></h3><ul><li><ahref="#impl-Clone-for-GitFileMode">Clone</a></li><li><ahref="#impl-Debug-for-GitFileMode">Debug</a></li><li><ahref="#impl-Eq-for-GitFileMode">Eq</a></li><li><ahref="#impl-From%3C%26TreeEntry%3C%27_%3E%3E-for-GitFileMode">From<&TreeEntry<'_>></a></li><li><ahref="#impl-From%3CTreeEntry%3C%27_%3E%3E-for-GitFileMode">From<TreeEntry<'_>></a></li><li><ahref="#impl-From%3Cisize%3E-for-GitFileMode">From<isize></a></li><li><ahref="#impl-FromPrimitive-for-GitFileMode">FromPrimitive</a></li><li><ahref="#impl-PartialEq%3CGitFileMode%3E-for-GitFileMode">PartialEq<GitFileMode></a></li><li><ahref="#impl-StructuralEq-for-GitFileMode">StructuralEq</a></li><li><ahref="#impl-StructuralPartialEq-for-GitFileMode">StructuralPartialEq</a></li><li><ahref="#impl-TryFromPrimitive-for-GitFileMode">TryFromPrimitive</a></li></ul></div><divclass="bl
}</code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>A FileMode represents the kind of tree entries used by git. It
resembles regular file systems modes, although FileModes are
considerably simpler (there are not so many), and there are some,
like Submodule that has no file system equivalent.</p>
</div></details><h2id="variants"class="variants small-section-header">Variants<ahref="#variants"class="anchor"></a></h2><h3id="variant.Empty"class="variant small-section-header"><ahref="#variant.Empty"class="anchor field"></a><code>Empty</code></h3><divclass="docblock"><p>Empty is used as the GitFileMode of tree elements when comparing
trees in the following situations:</p>
<ul>
<li>the mode of tree elements before their creation.</li>
<li>the mode of tree elements after their deletion.</li>
<li>the mode of unmerged elements when checking the index.</li>
</ul>
<p>Empty has no file system equivalent. As Empty is the zero value
of <ahref="enum.GitFileMode.html"title="GitFileMode">GitFileMode</a></p>
</div><h3id="variant.Dir"class="variant small-section-header"><ahref="#variant.Dir"class="anchor field"></a><code>Dir</code></h3><divclass="docblock"><p>Dir represent a Directory.</p>
</div><h3id="variant.Deprecated"class="variant small-section-header"><ahref="#variant.Deprecated"class="anchor field"></a><code>Deprecated</code></h3><divclass="docblock"><p>Deprecated represent non-executable files with the group writable bit set. This mode was
supported by the first versions of git, but it has been deprecated nowadays. This
library(github.com/go-git/go-git uses it, not realaravinth/gitpad at the moment) uses them
internally, so you can read old packfiles, but will treat them as Regulars when interfacing
with the outside world. This is the standard git behaviour.</p>
</div><h3id="variant.Symlink"class="variant small-section-header"><ahref="#variant.Symlink"class="anchor field"></a><code>Symlink</code></h3><divclass="docblock"><p>Symlink represents symbolic links to files.</p>
</div><h3id="variant.Submodule"class="variant small-section-header"><ahref="#variant.Submodule"class="anchor field"></a><code>Submodule</code></h3><divclass="docblock"><p>Submodule represents git submodules. This mode has no file system
by <code>==</code>. <ahref="https://doc.rust-lang.org/1.65.0/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.ne"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.0.0">1.0.0</span> · <aclass="srclink"href="https://doc.rust-lang.org/1.65.0/src/core/cmp.rs.html#236">source</a></span><ahref="#method.ne"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.65.0/core/cmp/trait.PartialEq.html#method.ne"class="fnname">ne</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.65.0/std/primitive.reference.html">&</a>Rhs) -><aclass="primitive"href="https://doc.rust-lang.org/1.65.0/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Instrument-for-GitFileMode"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#276">source</a><ahref="#impl-Instrument-for-GitFileMode"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html"title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.instrument"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#82">source</a><ahref="#method.instrument"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.instrument"class="fnname">instrument</a>(self, span: <aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"title="struct tracing::span::Span">Span</a>) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'>Instruments this type with the provided <ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"title="Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.in_current_span"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#121">source</a><ahref="#method.in_current_span"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.in_current_span"class="fnname">in_current_span</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'>Instruments this type with the <ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html#method.current">current</a><ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
<code><ahref="https://doc.rust-lang.org/1.65.0/core/convert/trait.From.html"title="From">From</a><T> for U</code> chooses to do.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Same%3CT%3E-for-GitFileMode"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/typenum/1.15.0/src/typenum/type_operators.rs.html#34">source</a><ahref="#impl-Same%3CT%3E-for-GitFileMode"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/typenum/1.15.0/typenum/type_operators/trait.Same.html"title="trait typenum::type_operators::Same">Same</a><T> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Output"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Output"class="anchor"></a><h4class="code-header">type <ahref="https://docs.rs/typenum/1.15.0/typenum/type_operators/trait.Same.html#associatedtype.Output"class="associatedtype">Output</a> = T</h4></section></summary><divclass='docblock'>Should always be <code>Self</code></div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-ToOwned-for-GitFileMode"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.65.0/src/alloc/borrow.rs.html#83">source</a><ahref="#impl-ToOwned-for-GitFileMode"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T<spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/1.65.0/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Owned"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Owned"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned"class="associatedtype">Owned</a> = T</h4></section></summary><divclass='docblock'>The resulting type after obtaining ownership.</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_owned"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.65.0/src/alloc/borrow.rs.html#88">source</a><ahref="#method.to_owned"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned"class="fnname">to_owned</a>(&self) -> T</h4></section></summary><divclass='docblock'>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.clone_into"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.65.0/src/alloc/borrow.rs.html#92">source</a><ahref="#method.clone_into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html#method.clone_into"class="fnname">clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/1.65.0/std/primitive.reference.html">&mut </a>T)</h4></section></summary><divclass='docblock'>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/1.65.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-GitFileMode"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/1.65.0/src/core/convert/mod.rs.html#601">source</a><ahref="#impl-TryFrom%3CU%3E-for-GitFileMode"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass
<ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.WithDispatch.html"title="WithDispatch"><code>WithDispatch</code></a> wrapper. <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_current_subscriber"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#221">source</a><ahref="#method.with_current_subscriber"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber"class="fnname">with_current_subscriber</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.WithDispatch.html"title="struct tracing::instrument::WithDispatch">WithDispatch</a><Self></h4></section></summary><divclass='docblock'>Attaches the current <ahref="https://docs.rs/tracing/0.1.36/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a><ahref="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a