Files
jellytau/api/jellytau_lib/repository/hybrid/struct.HybridRepository.html
T

485 lines
137 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="Hybrid repository combining online and offline data sources"><title>HybridRepository in jellytau_lib::repository::hybrid - 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 struct"><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="#">HybridRepository</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="#">Hybrid<wbr>Repository</a></h2><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.offline" title="offline">offline</a></li><li><a href="#structfield.online" title="online">online</a></li></ul><h3><a href="#implementations">Associated Functions</a></h3><ul class="block method"><li><a href="#method.new" title="new">new</a></li><li><a href="#method.merge_search_results" title="merge_search_results">merge_search_results</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.cache_items_from_server" title="cache_items_from_server">cache_items_from_server</a></li><li><a href="#method.cache_with_timeout" title="cache_with_timeout">cache_with_timeout</a></li><li><a href="#method.download_bytes" title="download_bytes">download_bytes</a></li><li><a href="#method.get_album_tracks" title="get_album_tracks">get_album_tracks</a></li><li><a href="#method.get_audio_only_stream_url_for_video" title="get_audio_only_stream_url_for_video">get_audio_only_stream_url_for_video</a></li><li><a href="#method.get_download_disk_usage" title="get_download_disk_usage">get_download_disk_usage</a></li><li><a href="#method.get_downloaded_items" title="get_downloaded_items">get_downloaded_items</a></li><li><a href="#method.get_downloaded_libraries" title="get_downloaded_libraries">get_downloaded_libraries</a></li><li><a href="#method.get_favorites_cache_only" title="get_favorites_cache_only">get_favorites_cache_only</a></li><li><a href="#method.get_favorites_server_only" title="get_favorites_server_only">get_favorites_server_only</a></li><li><a href="#method.get_items_unfiltered" title="get_items_unfiltered">get_items_unfiltered</a></li><li><a href="#method.get_jray_actors" title="get_jray_actors">get_jray_actors</a></li><li><a href="#method.get_video_stream_url" title="get_video_stream_url">get_video_stream_url</a></li><li><a href="#method.parallel_race" title="parallel_race">parallel_race</a></li><li><a href="#method.prune_stale_catalog" title="prune_stale_catalog">prune_stale_catalog</a></li><li><a href="#method.race_with_refresh" title="race_with_refresh">race_with_refresh</a></li><li><a href="#method.search_cache_only" title="search_cache_only">search_cache_only</a></li><li><a href="#method.search_server_only" title="search_server_only">search_server_only</a></li><li><a href="#method.user_id" title="user_id">user_id</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-MediaRepository-for-HybridRepository" title="MediaRepository">MediaRepository</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-HybridRepository" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-HybridRepository" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-HybridRepository" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-HybridRepository" title="Send">Send</a></li><li><a href="#impl-Sync-for-HybridRepository" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-HybridRepository" title="Unpin">Unpin</a></li><li><a href="#impl-UnsafeUnpin-for-HybridRepository" title="UnsafeUnpin">UnsafeUnpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-PolicyExt-for-T" title="PolicyExt">PolicyExt</a></li><li><a href="#impl-Same-for-T" title="Same">Same</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-VZip%3CV%3E-for-T" title="VZip&#60;V&#62;">VZip&#60;V&#62;</a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In jellytau_<wbr>lib::<wbr>repository::<wbr>hybrid</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">repository</a>::<wbr><a href="index.html">hybrid</a></div><h1>Struct <span class="struct">Hybrid<wbr>Repository</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/repository/hybrid.rs.html#32-35">Source</a> </span></div><pre class="rust item-decl"><code>pub struct HybridRepository {
online: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../online/struct.OnlineRepository.html" title="struct jellytau_lib::repository::online::OnlineRepository">OnlineRepository</a>&gt;,
offline: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../offline/struct.OfflineRepository.html" title="struct jellytau_lib::repository::offline::OfflineRepository">OfflineRepository</a>&gt;,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Hybrid repository combining online and offline data sources</p>
<p>Uses cache-first parallel racing strategy:</p>
<ul>
<li>Runs SQLite cache and HTTP server queries in parallel</li>
<li>Cache has 100ms timeout for fast feedback</li>
<li>Returns cache result if it has meaningful content</li>
<li>Falls back to server result if cache is empty/stale</li>
</ul>
<p>@req: UR-002 - Access media when online or offline
@req: DR-012 - Local database for media metadata cache
@req: DR-013 - Repository pattern for online/offline data access</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.online" class="structfield section-header"><a href="#structfield.online" class="anchor field">§</a><code>online: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../online/struct.OnlineRepository.html" title="struct jellytau_lib::repository::online::OnlineRepository">OnlineRepository</a>&gt;</code></span><span id="structfield.offline" class="structfield section-header"><a href="#structfield.offline" class="anchor field">§</a><code>offline: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../offline/struct.OfflineRepository.html" title="struct jellytau_lib::repository::offline::OfflineRepository">OfflineRepository</a>&gt;</code></span><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HybridRepository" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#37-453">Source</a><a href="#impl-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section></summary><div class="impl-items"><section id="method.new" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#38-43">Source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(online: <a class="struct" href="../online/struct.OnlineRepository.html" title="struct jellytau_lib::repository::online::OnlineRepository">OnlineRepository</a>, offline: <a class="struct" href="../offline/struct.OfflineRepository.html" title="struct jellytau_lib::repository::offline::OfflineRepository">OfflineRepository</a>) -&gt; Self</h4></section><details class="toggle method-toggle" open><summary><section id="method.user_id" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#48-50">Source</a><h4 class="code-header">pub fn <a href="#method.user_id" class="fn">user_id</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>The signed-in user this repository acts for.</p>
<p>TRACES: UR-069 | DR-120</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.download_bytes" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#54-56">Source</a><h4 class="code-header">pub async fn <a href="#method.download_bytes" class="fn">download_bytes</a>(&amp;self, url: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u8.html">u8</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;</h4></section></summary><div class="docblock"><p>Download raw bytes from a URL using the shared authenticated HTTP client.
Delegates to online repository for connection reuse and proper auth.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.prune_stale_catalog" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#65-71">Source</a><h4 class="code-header">pub async fn <a href="#method.prune_stale_catalog" class="fn">prune_stale_catalog</a>(
&amp;self,
cutoff: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
item_types: &amp;[<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Remove catalog entries the server no longer has. Cache-only, so it goes
straight to the offline repository. Callers must only invoke this after a
crawl in which every library succeeded — see
<code>OfflineRepository::prune_stale_catalog</code> for why a partial crawl must not
sweep.</p>
<p>TRACES: UR-065 | DR-110</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_jray_actors" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#75-81">Source</a><h4 class="code-header">pub async fn <a href="#method.get_jray_actors" class="fn">get_jray_actors</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
t: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../online/struct.JRayActor.html" title="struct jellytau_lib::repository::online::JRayActor">JRayActor</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Query the JRay plugin for actors on screen at time <code>t</code>. Online-only
(the plugin lives on the Jellyfin server); empty when JRay isnt present.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_video_stream_url" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#89-98">Source</a><h4 class="code-header">pub async fn <a href="#method.get_video_stream_url" class="fn">get_video_stream_url</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
media_source_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
audio_stream_index: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i32.html">i32</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Get video stream URL. This method is online-only since offline playback
uses local file paths.</p>
<p>Takes no start position: the URL is an HLS playlist spanning the whole
item, and a position on it would 400 every segment — see
<code>OnlineRepository::get_video_stream_url</code>. Resume by seeking after load.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_audio_only_stream_url_for_video" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#104-119">Source</a><h4 class="code-header">pub async fn <a href="#method.get_audio_only_stream_url_for_video" class="fn">get_audio_only_stream_url_for_video</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
media_source_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
start_time_seconds: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>&gt;,
audio_stream_index: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i32.html">i32</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Get an audio-only stream URL for a video item (background-audio handoff).
Online-only, like <code>get_video_stream_url</code>.</p>
<p>TRACES: UR-040 | JA-032</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_album_tracks" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#136-153">Source</a><h4 class="code-header">pub async fn <a href="#method.get_album_tracks" class="fn">get_album_tracks</a>(
&amp;self,
album_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Every track of an album, asked of the <strong>server</strong> rather than the cache.</p>
<p>Deliberately not <code>get_items</code>, which is cache-first: it answers from SQLite
the moment the cache has any content. That is right for browsing and wrong
for deciding what to download, because a partial or unlinked cache then
decides how much of the album gets queued while the user is told the whole
album is downloading. Downloading is the one operation that must know the
albums <em>complete</em> contents.</p>
<p>Errors when the server cannot answer (offline); the caller falls back to
the local catalog and the rows are queued either way, resolving on
reconnect. Server results are written back to the cache, so browsing
benefits from the round trip too.</p>
<p>TRACES: UR-018, UR-055 | DR-173</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_items_unfiltered" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#165-174">Source</a><h4 class="code-header">pub async fn <a href="#method.get_items_unfiltered" class="fn">get_items_unfiltered</a>(
&amp;self,
parent_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Immediate children of a container with the users browsing exclusions
<strong>not</strong> applied.</p>
<p>Exists for the exclusion picker in settings. Everything else in this
repository hides what the user has hidden, which would make the setting
one-way: a folder already excluded would vanish from the list of folders
to exclude and could never be un-hidden. Server-first so the picker sees
the real library, falling back to the cache when unreachable.</p>
<p>TRACES: UR-076 | DR-209</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.search_cache_only" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#181-191">Source</a><h4 class="code-header">pub async fn <a href="#method.search_cache_only" class="fn">search_cache_only</a>(
&amp;self,
query: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.SearchOptions.html" title="struct jellytau_lib::repository::types::SearchOptions">SearchOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Search only the local SQLite cache (downloaded content).</p>
<p>Fast (100ms timeout) — used to render instant results before the server
responds. Returns an empty result rather than erroring on timeout so the
caller can still fall through to the server.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_favorites_cache_only" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#197-206">Source</a><h4 class="code-header">pub async fn <a href="#method.get_favorites_cache_only" class="fn">get_favorites_cache_only</a>(
&amp;self,
scope: <a class="enum" href="../types/enum.SearchScope.html" title="enum jellytau_lib::repository::types::SearchScope">SearchScope</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Favourites held locally, without touching the server. Backs the instant
leg of the two-phase favourites read in the command layer.</p>
<p>TRACES: UR-067 | DR-115</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_favorites_server_only" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#213-227">Source</a><h4 class="code-header">pub async fn <a href="#method.get_favorites_server_only" class="fn">get_favorites_server_only</a>(
&amp;self,
scope: <a class="enum" href="../types/enum.SearchScope.html" title="enum jellytau_lib::repository::types::SearchScope">SearchScope</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Favourites straight from the server, persisted to the cache on the way
through — which is also what mirrors their favourite flags into
<code>user_data</code> (DR-114), so the next offline read agrees with the server.</p>
<p>TRACES: UR-067 | DR-115</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_items_from_server" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#237-247">Source</a><h4 class="code-header">pub async fn <a href="#method.cache_items_from_server" class="fn">cache_items_from_server</a>(
&amp;self,
parent_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Fetch a folders items from the live server and persist them to the
offline cache synchronously (unlike <code>get_items</code>, which saves in a
fire-and-forget background task after a 100ms cache race).</p>
<p>Used by the full-catalog pre-sync (<code>sync_full_catalog</code>) to deterministically
walk every library while online so the whole catalog is browsable — greyed
out — offline. Returns the items fetched so the caller can recurse into
containers. Server-only: errors if unreachable.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_downloaded_items" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#257-267">Source</a><h4 class="code-header">pub async fn <a href="#method.get_downloaded_items" class="fn">get_downloaded_items</a>(
&amp;self,
parent_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Browse downloaded content only — the dedicated Downloads surface.</p>
<p>Bypasses the cache/server merge entirely and reads the offline repository
directly, so an empty result is authoritative (“nothing downloaded here”)
and never falls through to the server (DR-080). Available online too — a
user who is reachable still wants to browse whats on the device.</p>
<p>TRACES: UR-055 | DR-082, DR-083</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_downloaded_libraries" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#272-274">Source</a><h4 class="code-header">pub async fn <a href="#method.get_downloaded_libraries" class="fn">get_downloaded_libraries</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.Library.html" title="struct jellytau_lib::repository::types::Library">Library</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Libraries that contain downloaded content (offline-only, authoritative).</p>
<p>TRACES: UR-055 | DR-082</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_download_disk_usage" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#279-281">Source</a><h4 class="code-header">pub async fn <a href="#method.get_download_disk_usage" class="fn">get_download_disk_usage</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.DownloadDiskUsage.html" title="struct jellytau_lib::repository::types::DownloadDiskUsage">DownloadDiskUsage</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>On-disk usage of downloaded content, for the disk-usage display.</p>
<p>TRACES: UR-056 | DR-085</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.search_server_only" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#284-293">Source</a><h4 class="code-header">pub async fn <a href="#method.search_server_only" class="fn">search_server_only</a>(
&amp;self,
query: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.SearchOptions.html" title="struct jellytau_lib::repository::types::SearchOptions">SearchOptions</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Search only the live Jellyfin server (full library).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.merge_search_results" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#300-343">Source</a><h4 class="code-header">pub fn <a href="#method.merge_search_results" class="fn">merge_search_results</a>(
cache: <a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>,
server: <a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>,
) -&gt; <a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a></h4></section></summary><div class="docblock"><p>Merge cache and server search results into a single de-duplicated list.</p>
<p>Ordering: local (cached/downloaded) items first, then server-only items
appended. On a duplicate <code>id</code>, the servers item wins (fresher, more
complete metadata) but keeps the local items earlier position.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.parallel_race" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#364-393">Source</a><h4 class="code-header">async fn <a href="#method.parallel_race" class="fn">parallel_race</a>&lt;T, F1, F2&gt;(
&amp;self,
cache_future: F1,
server_future: F2,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;<div class="where">where
T: <a class="trait" href="../types/trait.MeaningfulContent.html" title="trait jellytau_lib::repository::types::MeaningfulContent">MeaningfulContent</a> + <a class="trait" href="../exclusions/trait.ExcludeHidden.html" title="trait jellytau_lib::repository::exclusions::ExcludeHidden">ExcludeHidden</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,
F1: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
F2: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Cache-first query: try cache, fall back to server on miss.</p>
<ol>
<li>Check cache (100ms timeout applied by caller via cache_with_timeout)</li>
<li>If cache has meaningful content → return immediately (fast path)</li>
<li>If cache is empty/stale → query server (fresh data)</li>
<li>If server fails → return cache even if empty (offline fallback)</li>
</ol>
<p>Both legs are passed through <a href="../exclusions/trait.ExcludeHidden.html" title="trait jellytau_lib::repository::exclusions::ExcludeHidden"><code>ExcludeHidden</code></a> before the “does the cache
have content?” question is asked. This is the single place the cache and
server results of a cache-first query converge, so applying the users
browsing exclusions here covers every query built on it at once — and
filtering <em>before</em> the content check is what makes a cache page holding
nothing but hidden items fall through to the server instead of being
served as an empty listing.</p>
<p>@req: UR-002 - Access media when online or offline
@req: DR-013 - Repository pattern for online/offline data access</p>
<p>TRACES: UR-002, UR-076 | DR-013, DR-209</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.race_with_refresh" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#409-436">Source</a><h4 class="code-header">async fn <a href="#method.race_with_refresh" class="fn">race_with_refresh</a>&lt;T, F1, F2, R&gt;(
&amp;self,
cache_future: F1,
server_future: F2,
on_cache_hit: R,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;<div class="where">where
T: <a class="trait" href="../types/trait.MeaningfulContent.html" title="trait jellytau_lib::repository::types::MeaningfulContent">MeaningfulContent</a> + <a class="trait" href="../exclusions/trait.ExcludeHidden.html" title="trait jellytau_lib::repository::exclusions::ExcludeHidden">ExcludeHidden</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,
F1: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
F2: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
R: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(),</div></h4></section></summary><div class="docblock"><p><a href="struct.HybridRepository.html#method.parallel_race" title="method jellytau_lib::repository::hybrid::HybridRepository::parallel_race"><code>Self::parallel_race</code></a>, plus a callback fired on the fast path so the
caller can refresh the cache in the background.</p>
<p>A plain cache hit answers from data that may be arbitrarily old, which
is right for the <em>response</em> and wrong for what it leaves behind: per-user
state (watch positions, favourites) only reaches the local tables when a
server result is cached, so a surface that always hits cache never learns
what another device did. <code>get_items</code> had a bespoke version of this; this
is the same idea, reusable.</p>
<p>The callback runs only on a cache hit — on a miss the server result is
already being fetched and cached by the normal path.</p>
<p>TRACES: UR-002, UR-025, UR-076 | DR-155, DR-209</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_with_timeout" class="method"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#441-452">Source</a><h4 class="code-header">async fn <a href="#method.cache_with_timeout" class="fn">cache_with_timeout</a>&lt;T&gt;(
&amp;self,
future: impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;</h4></section></summary><div class="docblock"><p>Simple timeout wrapper for cache queries (100ms timeout)</p>
<p>@req: DR-013 - Repository pattern (cache-first with timeout)</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MediaRepository-for-HybridRepository" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#456-1196">Source</a><a href="#impl-MediaRepository-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../trait.MediaRepository.html" title="trait jellytau_lib::repository::MediaRepository">MediaRepository</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.get_item" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#636-670">Source</a><a href="#method.get_item" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_item" class="fn">get_item</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>A single item, cache-first — and, on a cache hit, refreshed in the
background so the stored copy keeps up with the server.</p>
<p>The background refresh is what carries per-user state home: caching an
item runs <code>mirror_user_data</code>, which is the only path by which a watch
position set on another device reaches the local <code>user_data</code> row the
resume check reads. Without it a cache hit returned this devices own
stale position forever and cross-device resume silently did nothing —
<code>get_items</code> already refreshes this way, so browsing a season worked
while opening the episode directly did not.</p>
<p>The refreshed value lands for the <em>next</em> read rather than this one: the
point of the cache-first race is to answer immediately.</p>
<p>TRACES: UR-025, UR-002 | DR-155 | UT-152</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_favorites" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1033-1065">Source</a><a href="#method.get_favorites" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_favorites" class="fn">get_favorites</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
scope: <a class="enum" href="../types/enum.SearchScope.html" title="enum jellytau_lib::repository::types::SearchScope">SearchScope</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>TRACES: UR-067 | DR-115</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_libraries" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#457-500">Source</a><a href="#method.get_libraries" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_libraries" class="fn">get_libraries</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.Library.html" title="struct jellytau_lib::repository::types::Library">Library</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class='docblock'>Get all libraries <a href="../trait.MediaRepository.html#tymethod.get_libraries">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_items" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#502-619">Source</a><a href="#method.get_items" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_items" class="fn">get_items</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
parent_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get items in a library or parent <a href="../trait.MediaRepository.html#tymethod.get_items">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_latest_items" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#672-690">Source</a><a href="#method.get_latest_items" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_latest_items" class="fn">get_latest_items</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
parent_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get latest items in a library <a href="../trait.MediaRepository.html#tymethod.get_latest_items">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_resume_items" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#692-716">Source</a><a href="#method.get_resume_items" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_resume_items" class="fn">get_resume_items</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
parent_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get resume items (continue watching/listening) <a href="../trait.MediaRepository.html#tymethod.get_resume_items">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_next_up_episodes" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#718-728">Source</a><a href="#method.get_next_up_episodes" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_next_up_episodes" class="fn">get_next_up_episodes</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
series_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get next up episodes <a href="../trait.MediaRepository.html#tymethod.get_next_up_episodes">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_recently_played_audio" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#730-744">Source</a><a href="#method.get_recently_played_audio" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_recently_played_audio" class="fn">get_recently_played_audio</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class='docblock'>Get recently played audio</div></details><details class="toggle method-toggle" open><summary><section id="method.get_resume_movies" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#746-757">Source</a><a href="#method.get_resume_movies" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_resume_movies" class="fn">get_resume_movies</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class='docblock'>Get resume movies</div></details><details class="toggle method-toggle" open><summary><section id="method.get_rediscover_albums" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#759-782">Source</a><a href="#method.get_rediscover_albums" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_rediscover_albums" class="fn">get_rediscover_albums</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
parent_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get albums the user has played, but not recently (“rediscover” / havent
listened to in a while). Returns albums sorted by least-recently played
first, optionally restricted to a parent library.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_genres" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#784-840">Source</a><a href="#method.get_genres" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_genres" class="fn">get_genres</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
parent_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.Genre.html" title="struct jellytau_lib::repository::types::Genre">Genre</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get genres</div></details><details class="toggle method-toggle" open><summary><section id="method.search" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#842-859">Source</a><a href="#method.search" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.search" class="fn">search</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
query: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.SearchOptions.html" title="struct jellytau_lib::repository::types::SearchOptions">SearchOptions</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Search for items <a href="../trait.MediaRepository.html#tymethod.search">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_playback_info" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#861-864">Source</a><a href="#method.get_playback_info" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_playback_info" class="fn">get_playback_info</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.PlaybackInfo.html" title="struct jellytau_lib::repository::types::PlaybackInfo">PlaybackInfo</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get playback info for streaming <a href="../trait.MediaRepository.html#tymethod.get_playback_info">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_audio_stream_url" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#866-869">Source</a><a href="#method.get_audio_stream_url" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_audio_stream_url" class="fn">get_audio_stream_url</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get audio stream URL for a track <a href="../trait.MediaRepository.html#tymethod.get_audio_stream_url">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_audio_only_stream_url_for_video-1" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#871-887">Source</a><a href="#method.get_audio_only_stream_url_for_video-1" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_audio_only_stream_url_for_video" class="fn">get_audio_only_stream_url_for_video</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
media_source_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
start_time_seconds: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>&gt;,
audio_stream_index: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i32.html">i32</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Get an audio-only stream URL for a <em>video</em> item (background-audio handoff). <a href="../trait.MediaRepository.html#tymethod.get_audio_only_stream_url_for_video">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_live_tv_channels" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#889-895">Source</a><a href="#method.get_live_tv_channels" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_live_tv_channels" class="fn">get_live_tv_channels</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class='docblock'>Get Live TV channels (broadcast / IPTV) for browsing.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_channels" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#897-903">Source</a><a href="#method.get_channels" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_channels" class="fn">get_channels</a>&lt;'life0, 'async_trait&gt;(
&amp;'life0 self,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,</div></h4></section></summary><div class='docblock'>Get the root list of plugin “Channels” (Jellyfin Channels feature).
Drill-down into a channel reuses <code>get_items(channel_id, ...)</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.open_live_stream" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#905-908">Source</a><a href="#method.open_live_stream" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.open_live_stream" class="fn">open_live_stream</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.LiveStreamInfo.html" title="struct jellytau_lib::repository::types::LiveStreamInfo">LiveStreamInfo</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Open a live stream (Live TV channel or live channel item) for playback. <a href="../trait.MediaRepository.html#tymethod.open_live_stream">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.report_playback_start" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#910-919">Source</a><a href="#method.report_playback_start" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.report_playback_start" class="fn">report_playback_start</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
position_ticks: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i64.html">i64</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Report playback start <a href="../trait.MediaRepository.html#tymethod.report_playback_start">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.report_playback_progress" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#921-930">Source</a><a href="#method.report_playback_progress" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.report_playback_progress" class="fn">report_playback_progress</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
position_ticks: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i64.html">i64</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Report playback progress <a href="../trait.MediaRepository.html#tymethod.report_playback_progress">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.report_playback_stopped" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#932-941">Source</a><a href="#method.report_playback_stopped" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.report_playback_stopped" class="fn">report_playback_stopped</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
position_ticks: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i64.html">i64</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Report playback stopped <a href="../trait.MediaRepository.html#tymethod.report_playback_stopped">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_image_url" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#943-951">Source</a><a href="#method.get_image_url" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_image_url" class="fn">get_image_url</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
image_type: <a class="enum" href="../types/enum.ImageType.html" title="enum jellytau_lib::repository::types::ImageType">ImageType</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.ImageOptions.html" title="struct jellytau_lib::repository::types::ImageOptions">ImageOptions</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Get image URL (synchronous - just constructs URL)</div></details><details class="toggle method-toggle" open><summary><section id="method.get_subtitle_url" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#953-963">Source</a><a href="#method.get_subtitle_url" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_subtitle_url" class="fn">get_subtitle_url</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
media_source_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
stream_index: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.i32.html">i32</a>,
format: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Get subtitle URL (synchronous - just constructs URL)
Called by frontend via Tauri invoke (getSubtitleUrl in VideoPlayer.svelte)</div></details><details class="toggle method-toggle" open><summary><section id="method.get_video_download_url" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#965-975">Source</a><a href="#method.get_video_download_url" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_video_download_url" class="fn">get_video_download_url</a>(
&amp;self,
item_id: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
quality: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
media_source_id: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
source_audio_codec: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Build the URL a video download is fetched from. Synchronous — it only
constructs a URL, so it stays testable without a server. Reach it through
<a href="../fn.resolve_video_download_url.html" title="fn jellytau_lib::repository::resolve_video_download_url"><code>resolve_video_download_url</code></a> rather than calling it directly. <a href="../trait.MediaRepository.html#tymethod.get_video_download_url">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.mark_favorite" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#977-980">Source</a><a href="#method.mark_favorite" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.mark_favorite" class="fn">mark_favorite</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Mark item as favorite</div></details><details class="toggle method-toggle" open><summary><section id="method.unmark_favorite" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#982-985">Source</a><a href="#method.unmark_favorite" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.unmark_favorite" class="fn">unmark_favorite</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Unmark item as favorite</div></details><details class="toggle method-toggle" open><summary><section id="method.clear_watch_history" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#987-990">Source</a><a href="#method.clear_watch_history" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.clear_watch_history" class="fn">clear_watch_history</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Erase the viewers watch history for an item: clear its played flag and
its resume position. On a container (series, season) this applies to
everything inside it, so a series is returned to “never watched” and
reopens on its premiere. <a href="../trait.MediaRepository.html#tymethod.clear_watch_history">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.mark_played" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#992-995">Source</a><a href="#method.mark_played" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.mark_played" class="fn">mark_played</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Mark an item played — the inverse of <code>clear_watch_history</code>. Needed by the
sync-queue drain, which replays <code>mark_played</code> rows queued while the
server was unreachable; reporting a stop at a made-up position was the
previous stand-in and does not set the played flag reliably. <a href="../trait.MediaRepository.html#tymethod.mark_played">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_person" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#997-1009">Source</a><a href="#method.get_person" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_person" class="fn">get_person</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
person_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get person details</div></details><details class="toggle method-toggle" open><summary><section id="method.get_items_by_person" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1011-1030">Source</a><a href="#method.get_items_by_person" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_items_by_person" class="fn">get_items_by_person</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
person_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
options: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../types/struct.GetItemsOptions.html" title="struct jellytau_lib::repository::types::GetItemsOptions">GetItemsOptions</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get items by person (filmography)</div></details><details class="toggle method-toggle" open><summary><section id="method.get_similar_items" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1067-1083">Source</a><a href="#method.get_similar_items" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_similar_items" class="fn">get_similar_items</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
item_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
limit: <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.usize.html">usize</a>&gt;,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.SearchResult.html" title="struct jellytau_lib::repository::types::SearchResult">SearchResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get similar/related items for a movie or show <a href="../trait.MediaRepository.html#tymethod.get_similar_items">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.create_playlist" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1087-1094">Source</a><a href="#method.create_playlist" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.create_playlist" class="fn">create_playlist</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
name: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
item_ids: &amp;'life2 [<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../types/struct.PlaylistCreatedResult.html" title="struct jellytau_lib::repository::types::PlaylistCreatedResult">PlaylistCreatedResult</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Create a new playlist on the server <a href="../trait.MediaRepository.html#tymethod.create_playlist">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.delete_playlist" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1096-1099">Source</a><a href="#method.delete_playlist" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.delete_playlist" class="fn">delete_playlist</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Delete a playlist <a href="../trait.MediaRepository.html#tymethod.delete_playlist">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.rename_playlist" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1101-1104">Source</a><a href="#method.rename_playlist" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.rename_playlist" class="fn">rename_playlist</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
name: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Rename a playlist <a href="../trait.MediaRepository.html#tymethod.rename_playlist">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.get_playlist_items" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1106-1163">Source</a><a href="#method.get_playlist_items" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.get_playlist_items" class="fn">get_playlist_items</a>&lt;'life0, 'life1, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="../types/struct.PlaylistEntry.html" title="struct jellytau_lib::repository::types::PlaylistEntry">PlaylistEntry</a>&gt;, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Get playlist items with PlaylistItemId (needed for remove/reorder) <a href="../trait.MediaRepository.html#tymethod.get_playlist_items">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.add_to_playlist" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1165-1172">Source</a><a href="#method.add_to_playlist" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.add_to_playlist" class="fn">add_to_playlist</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
item_ids: &amp;'life2 [<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Add items to a playlist <a href="../trait.MediaRepository.html#tymethod.add_to_playlist">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.remove_from_playlist" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1174-1183">Source</a><a href="#method.remove_from_playlist" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.remove_from_playlist" class="fn">remove_from_playlist</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
entry_ids: &amp;'life2 [<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Remove items from a playlist using entry IDs (PlaylistItemId, NOT media item IDs) <a href="../trait.MediaRepository.html#tymethod.remove_from_playlist">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.move_playlist_item" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/repository/hybrid.rs.html#1185-1195">Source</a><a href="#method.move_playlist_item" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.MediaRepository.html#tymethod.move_playlist_item" class="fn">move_playlist_item</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
playlist_id: &amp;'life1 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
item_id: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a>,
new_index: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.unit.html">()</a>, <a class="enum" href="../types/enum.RepoError.html" title="enum jellytau_lib::repository::types::RepoError">RepoError</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Move a playlist item to a new position <a href="../trait.MediaRepository.html#tymethod.move_playlist_item">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-HybridRepository" class="impl"><a href="#impl-Freeze-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-RefUnwindSafe-for-HybridRepository" class="impl"><a href="#impl-RefUnwindSafe-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-Send-for-HybridRepository" class="impl"><a href="#impl-Send-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-Sync-for-HybridRepository" class="impl"><a href="#impl-Sync-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-Unpin-for-HybridRepository" class="impl"><a href="#impl-Unpin-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-UnsafeUnpin-for-HybridRepository" class="impl"><a href="#impl-UnsafeUnpin-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.UnsafeUnpin.html" title="trait core::marker::UnsafeUnpin">UnsafeUnpin</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section><section id="impl-UnwindSafe-for-HybridRepository" class="impl"><a href="#impl-UnwindSafe-for-HybridRepository" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.HybridRepository.html" title="struct jellytau_lib::repository::hybrid::HybridRepository">HybridRepository</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/any.rs.html#141">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/any.rs.html#142">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.97.1/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.97.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#786">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#789">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#768-770">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#778">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-PolicyExt-for-T" class="impl"><a href="#impl-PolicyExt-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; PolicyExt for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.and" class="method trait-impl"><a href="#method.and" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and</a>&lt;P, B, E&gt;(self, other: P) -&gt; And&lt;T, P&gt;<div class="where">where
T: Policy&lt;B, E&gt;,
P: Policy&lt;B, E&gt;,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] only if <code>self</code> and <code>other</code> return
<code>Action::Follow</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or" class="method trait-impl"><a href="#method.or" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or</a>&lt;P, B, E&gt;(self, other: P) -&gt; Or&lt;T, P&gt;<div class="where">where
T: Policy&lt;B, E&gt;,
P: Policy&lt;B, E&gt;,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] if either <code>self</code> or <code>other</code> returns
<code>Action::Follow</code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same-for-T" class="impl"><a class="src rightside" href="https://docs.rs/typenum/1.19.0/src/typenum/type_operators.rs.html#34">Source</a><a href="#impl-Same-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/typenum/1.19.0/typenum/type_operators/trait.Same.html" title="trait typenum::type_operators::Same">Same</a> for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a class="src rightside" href="https://docs.rs/typenum/1.19.0/src/typenum/type_operators.rs.html#35">Source</a><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://docs.rs/typenum/1.19.0/typenum/type_operators/trait.Same.html#associatedtype.Output" class="associatedtype">Output</a> = T</h4></section></summary><div class='docblock'>Should always be <code>Self</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#828-830">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#832">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#835">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#812-814">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#816">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/convert/mod.rs.html#819">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.97.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-T" class="impl"><a href="#impl-VZip%3CV%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;V, T&gt; VZip&lt;V&gt; for T<div class="where">where
V: MultiLane&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details></div></section></div></main></body></html>