Files
jellytau/api/jellytau_lib/download/stop/index.html
T

17 lines
5.5 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="Stop signalling for in-flight downloads."><title>jellytau_lib::download::stop - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.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"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module stop</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module stop</a></h2><h3><a href="#functions">Module Items</a></h3><ul class="block"><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>download</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">download</a></div><h1>Module <span>stop</span>&nbsp;<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/jellytau_lib/download/stop.rs.html#1-150">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Stop signalling for in-flight downloads.</p>
<p>TRACES: UR-055 | DR-168</p>
<p>Pausing and cancelling used to be database-only: <code>pause_download</code> wrote
<code>status = 'paused'</code> and nothing else. No cancellation existed anywhere in the
download stack — no token, no flag, no abort — so the streaming task kept
running, kept writing bytes, and on finishing overwrote the row with
<code>completed</code> or <code>failed</code>. The row flicked to “paused” and then undid itself,
which is precisely the reported “pause does not work”.</p>
<p>This is the missing half: a flag per in-flight download that the worker reads
between chunks. Setting it makes the worker return <a href="../worker/enum.DownloadError.html#variant.Stopped" title="variant jellytau_lib::download::worker::DownloadError::Stopped"><code>Stopped</code></a> promptly and
leave the <code>.part</code> file <strong>intact</strong>, which is what lets a resume pick up from
where it stopped via the existing HTTP Range request.</p>
<p>Kept as a module-level registry rather than on <code>DownloadManager</code> because the
two sides never meet: the command handler holds the managers lock, while the
worker runs detached inside <code>tauri::async_runtime::spawn</code> with no access to
Tauri state. A registry both can reach is the smallest thing that works.</p>
</div></details><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.clear.html" title="fn jellytau_lib::download::stop::clear">clear</a></dt><dd>Forget a downloads flag. Called when its task finishes, however it ended.</dd><dt><a class="fn" href="fn.register.html" title="fn jellytau_lib::download::stop::register">register</a></dt><dd>Register <code>download_id</code> as in-flight and hand back its stop flag.</dd><dt><a class="fn" href="fn.registry.html" title="fn jellytau_lib::download::stop::registry">registry</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>download id → its stop flag, for downloads currently in flight.</dd><dt><a class="fn" href="fn.signal.html" title="fn jellytau_lib::download::stop::signal">signal</a></dt><dd>Ask an in-flight download to stop.</dd></dl></section></div></main></body></html>