Browse Source

Deploying to docs from @ Dusk-Labs/dim@dd56ca6a80384bc9c6779c0e5a16a3bd2cefcfbc 🚀

vgarleanu 2 years ago
parent
commit
36555975c6

+ 1 - 1
483/merge/database/library/index.html

@@ -6,7 +6,7 @@
         </a><h2 class="location"><a href="#">Module library</a></h2><div class="sidebar-elems"><section><div class="block"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></div></section><div id="sidebar-vars" data-name="library" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../database/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><div id="settings-menu" tabindex="-1">
                                 <a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div>
                         </div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
-    <h1 class="fqn"><span class="in-band">Module <a href="../index.html">database</a>::<wbr><a class="mod" href="#">library</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/database/library.rs.html#1-221">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
+    <h1 class="fqn"><span class="in-band">Module <a href="../index.html">database</a>::<wbr><a class="mod" href="#">library</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/database/library.rs.html#1-225">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
 <div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.InsertableLibrary.html" title="database::library::InsertableLibrary struct">InsertableLibrary</a></div><div class="item-right docblock-short"><p>InsertableLibrary struct, same as <a href="struct.Library.html"><code>Library</code></a> but without the id field.</p>
 </div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Library.html" title="database::library::Library struct">Library</a></div><div class="item-right docblock-short"><p>Library struct which we can use to deserialize database queries into.</p>
 </div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2>

File diff suppressed because it is too large
+ 0 - 0
483/merge/database/library/struct.InsertableLibrary.html


File diff suppressed because it is too large
+ 0 - 0
483/merge/database/library/struct.Library.html


+ 1 - 1
483/merge/dim/reactor/handler/index.html

@@ -6,7 +6,7 @@
         </a><h2 class="location"><a href="#">Module handler</a></h2><div class="sidebar-elems"><section><div class="block"><ul><li><a href="#structs">Structs</a></li><li><a href="#types">Type Definitions</a></li></ul></div></section><div id="sidebar-vars" data-name="handler" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../dim/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><div id="settings-menu" tabindex="-1">
                                 <a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div>
                         </div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
-    <h1 class="fqn"><span class="in-band">Module <a href="../../index.html">dim</a>::<wbr><a href="../index.html">reactor</a>::<wbr><a class="mod" href="#">handler</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/dim/reactor/handler/mod.rs.html#1-137">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
+    <h1 class="fqn"><span class="in-band">Module <a href="../../index.html">dim</a>::<wbr><a href="../index.html">reactor</a>::<wbr><a class="mod" href="#">handler</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/dim/reactor/handler/mod.rs.html#1-149">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
 <div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.EventReactor.html" title="dim::reactor::handler::EventReactor struct">EventReactor</a></div><div class="item-right docblock-short"></div></div></div><h2 id="types" class="small-section-header"><a href="#types">Type Definitions</a></h2>
 <div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="type" href="type.Error.html" title="dim::reactor::handler::Error type">Error</a></div><div class="item-right docblock-short"></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="dim" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.63.0-nightly (c35035cef 2022-05-30)" ></div>
 </body></html>

File diff suppressed because it is too large
+ 0 - 0
483/merge/dim/reactor/handler/struct.EventReactor.html


+ 1 - 1
483/merge/dim/reactor/handler/type.Error.html

@@ -6,5 +6,5 @@
         </a><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><h2 class="location"><a href="index.html">In dim::reactor::handler</a></h2><div id="sidebar-vars" data-name="Error" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../dim/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><div id="settings-menu" tabindex="-1">
                                 <a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div>
                         </div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
-    <h1 class="fqn"><span class="in-band">Type Definition <a href="../../index.html">dim</a>::<wbr><a href="../index.html">reactor</a>::<wbr><a href="index.html">handler</a>::<wbr><a class="type" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/dim/reactor/handler/mod.rs.html#18">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type Error = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="dim" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.63.0-nightly (c35035cef 2022-05-30)" ></div>
+    <h1 class="fqn"><span class="in-band">Type Definition <a href="../../index.html">dim</a>::<wbr><a href="../index.html">reactor</a>::<wbr><a href="index.html">handler</a>::<wbr><a class="type" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/dim/reactor/handler/mod.rs.html#19">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type Error = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="dim" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.63.0-nightly (c35035cef 2022-05-30)" ></div>
 </body></html>

File diff suppressed because it is too large
+ 0 - 0
483/merge/dim/reactor/trait.Reactor.html


File diff suppressed because it is too large
+ 0 - 0
483/merge/search-index.js


+ 10 - 2
483/merge/src/database/library.rs.html

@@ -226,6 +226,10 @@
 <span id="219">219</span>
 <span id="220">220</span>
 <span id="221">221</span>
+<span id="222">222</span>
+<span id="223">223</span>
+<span id="224">224</span>
+<span id="225">225</span>
 </pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::DatabaseError</span>;
 <span class="kw">use</span> <span class="ident">serde::Deserialize</span>;
 <span class="kw">use</span> <span class="ident">serde::Serialize</span>;
@@ -299,6 +303,8 @@
     <span class="doccomment">/// moment only `movie` and `tv` are supported</span>
     <span class="comment">// TODO: support mixed content, music</span>
     <span class="kw">pub</span> <span class="ident">media_type</span>: <span class="ident">MediaType</span>,
+    <span class="doccomment">/// Is library hidden?</span>
+    <span class="kw">pub</span> <span class="ident">hidden</span>: <span class="ident">bool</span>,
 }
 
 <span class="kw">impl</span> <span class="ident">Library</span> {
@@ -308,7 +314,7 @@
     <span class="doccomment">/// This method will not return the locations indexed for this library, if you need those you</span>
     <span class="doccomment">/// must query for them separately.</span>
     <span class="kw">pub</span> <span class="kw">async</span> <span class="kw">fn</span> <span class="ident">get_all</span>(<span class="ident">conn</span>: <span class="kw-2">&amp;mut</span> <span class="ident"><span class="kw">crate</span>::Transaction</span><span class="op">&lt;</span><span class="lifetime">&#39;_</span><span class="op">&gt;</span>) -&gt; <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
-        <span class="macro">sqlx::query!</span>(<span class="string">r#&quot;SELECT id, name, media_type as &quot;media_type: MediaType&quot; FROM library WHERE NOT hidden&quot;#</span>)
+        <span class="macro">sqlx::query!</span>(<span class="string">r#&quot;SELECT id, name, media_type as &quot;media_type: MediaType&quot;, hidden as &quot;hidden: bool&quot; FROM library WHERE NOT hidden&quot;#</span>)
             .<span class="ident">fetch_all</span>(<span class="kw-2">&amp;mut</span> <span class="kw-2">*</span><span class="ident">conn</span>)
             .<span class="kw">await</span>
             .<span class="ident">unwrap_or_default</span>()
@@ -317,6 +323,7 @@
                 <span class="ident">id</span>: <span class="ident">x</span>.<span class="ident">id</span>,
                 <span class="ident">name</span>: <span class="ident">x</span>.<span class="ident">name</span>,
                 <span class="ident">media_type</span>: <span class="ident">x</span>.<span class="ident">media_type</span>,
+                <span class="ident">hidden</span>: <span class="ident">x</span>.<span class="ident">hidden</span>,
                 <span class="ident">locations</span>: <span class="macro">vec!</span>[],
             })
             .<span class="ident">collect</span>()
@@ -346,7 +353,7 @@
         <span class="ident">lib_id</span>: <span class="ident">i64</span>,
     ) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="self">Self</span>, <span class="ident">DatabaseError</span><span class="op">&gt;</span> {
         <span class="kw">let</span> <span class="ident">library</span> <span class="op">=</span> <span class="macro">sqlx::query!</span>(
-            <span class="string">r#&quot;SELECT id, name, media_type as &quot;media_type: MediaType&quot; FROM library
+            <span class="string">r#&quot;SELECT id, name, media_type as &quot;media_type: MediaType&quot;, hidden as &quot;hidden: bool&quot; FROM library
             WHERE id = ?&quot;#</span>,
             <span class="ident">lib_id</span>
         )
@@ -365,6 +372,7 @@
             <span class="ident">id</span>: <span class="ident">library</span>.<span class="ident">id</span>,
             <span class="ident">name</span>: <span class="ident">library</span>.<span class="ident">name</span>,
             <span class="ident">media_type</span>: <span class="ident">library</span>.<span class="ident">media_type</span>,
+            <span class="ident">hidden</span>: <span class="ident">library</span>.<span class="ident">hidden</span>,
             <span class="ident">locations</span>,
         })
     }

+ 25 - 1
483/merge/src/dim/reactor/handler/mod.rs.html

@@ -142,6 +142,18 @@
 <span id="135">135</span>
 <span id="136">136</span>
 <span id="137">137</span>
+<span id="138">138</span>
+<span id="139">139</span>
+<span id="140">140</span>
+<span id="141">141</span>
+<span id="142">142</span>
+<span id="143">143</span>
+<span id="144">144</span>
+<span id="145">145</span>
+<span id="146">146</span>
+<span id="147">147</span>
+<span id="148">148</span>
+<span id="149">149</span>
 </pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">super</span>::types::EventType</span>;
 <span class="kw">use</span> <span class="ident"><span class="kw">super</span>::types::Table</span>;
 <span class="kw">use</span> <span class="ident"><span class="kw">super</span>::Event</span>;
@@ -149,6 +161,7 @@
 <span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::core::EventTx</span>;
 
 <span class="kw">use</span> <span class="ident">database::asset::Asset</span>;
+<span class="kw">use</span> <span class="ident">database::library::Library</span>;
 <span class="kw">use</span> <span class="ident">database::library::MediaType</span>;
 <span class="kw">use</span> <span class="ident">database::media::Media</span>;
 <span class="kw">use</span> <span class="ident">database::rw_pool::SqlitePool</span>;
@@ -190,7 +203,18 @@
         <span class="kw">let</span> <span class="ident">event_type</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">event</span>.<span class="ident">event_type</span> {
             <span class="ident">EventType::Insert</span> =&gt; <span class="ident">PushEventType::EventNewLibrary</span>,
             <span class="ident">EventType::Delete</span> =&gt; <span class="ident">PushEventType::EventRemoveLibrary</span>,
-            <span class="kw">_</span> =&gt; <span class="kw">return</span> <span class="prelude-val">Ok</span>(()),
+            <span class="ident">EventType::Update</span> =&gt; {
+                <span class="comment">// NOTE: Library usually get marked as hidden before being deleted as a UX</span>
+                <span class="comment">// optimization. Sometimes library deletes can take a while.</span>
+                <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">tx</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">pool</span>.<span class="ident">read_ref</span>().<span class="ident">begin</span>().<span class="kw">await</span>.<span class="ident">unwrap</span>();
+                <span class="kw">let</span> <span class="ident">Library</span> { <span class="ident">hidden</span>, .. } <span class="op">=</span> <span class="ident">Library::get_one</span>(<span class="kw-2">&amp;mut</span> <span class="ident">tx</span>, <span class="ident">event</span>.<span class="ident">id</span>).<span class="kw">await</span>.<span class="ident">unwrap</span>();
+
+                <span class="kw">if</span> <span class="op">!</span><span class="ident">hidden</span> {
+                    <span class="kw">return</span> <span class="prelude-val">Ok</span>(());
+                }
+
+                <span class="ident">PushEventType::EventRemoveLibrary</span>
+            }
         };
 
         <span class="kw">let</span> <span class="ident">event</span> <span class="op">=</span> <span class="ident">Message</span> {

Some files were not shown because too many files changed in this diff