Files
jellytau/api/jellytau_lib/player/trait.PlaybackReportSink.html
T

13 lines
6.1 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="Where the players playback reports go."><title>PlaybackReportSink in jellytau_lib::player - 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 trait"><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="#">PlaybackReportSink</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.10.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Playback<wbr>Report<wbr>Sink</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.send" title="send">send</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>player</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">player</a></div><h1>Trait <span class="trait">Playback<wbr>Report<wbr>Sink</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/player/mod.rs.html#69-72">Source</a> </span></div><pre class="rust item-decl"><code>pub trait PlaybackReportSink: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required method
fn <a href="#tymethod.send" class="fn">send</a>(&amp;self, operation: <a class="enum" href="../playback_reporting/reporter/enum.PlaybackOperation.html" title="enum jellytau_lib::playback_reporting::reporter::PlaybackOperation">PlaybackOperation</a>);
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Where the players playback reports go.</p>
<p>The controllers side of reporting is “send this, dont make me wait”: a slow
or failing sync must never stall playback, so every send is fire-and-forget.
Production wires this to <a href="../playback_reporting/reporter/struct.PlaybackReporter.html" title="struct jellytau_lib::playback_reporting::reporter::PlaybackReporter"><code>PlaybackReporter</code></a> (local DB, server sync, offline
queueing); tests capture the operations instead of standing up a database and
an HTTP client, which is what let the missing reports below be written as
failing tests rather than found on a device.</p>
<p>TRACES: UR-025 | DR-179</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.send" class="method"><a class="src rightside" href="../../src/jellytau_lib/player/mod.rs.html#71">Source</a><h4 class="code-header">fn <a href="#tymethod.send" class="fn">send</a>(&amp;self, operation: <a class="enum" href="../playback_reporting/reporter/enum.PlaybackOperation.html" title="enum jellytau_lib::playback_reporting::reporter::PlaybackOperation">PlaybackOperation</a>)</h4></section></summary><div class="docblock"><p>Deliver <code>operation</code>. Must not block the caller.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><div class="negative-marker"></div><section id="impl-PlaybackReportSink-for-ReporterSink" class="impl"><a class="src rightside" href="../../src/jellytau_lib/player/mod.rs.html#83-110">Source</a><a href="#impl-PlaybackReportSink-for-ReporterSink" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.PlaybackReportSink.html" title="trait jellytau_lib::player::PlaybackReportSink">PlaybackReportSink</a> for <a class="struct" href="struct.ReporterSink.html" title="struct jellytau_lib::player::ReporterSink">ReporterSink</a></h3></section></div><script src="../../trait.impl/jellytau_lib/player/trait.PlaybackReportSink.js" async></script></section></div></main></body></html>