Files
jellytau/api/jellytau_lib/player/events/enum.PlayerStatusEvent.html
T

222 lines
90 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="Events emitted by the player backend to the frontend via Tauri events."><title>PlayerStatusEvent in jellytau_lib::player::events - 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 enum"><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="#">PlayerStatusEvent</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Player<wbr>Status<wbr>Event</a></h2><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.Buffering" title="Buffering">Buffering</a></li><li><a href="#variant.ControlCommand" title="ControlCommand">ControlCommand</a></li><li><a href="#variant.CountdownTick" title="CountdownTick">CountdownTick</a></li><li><a href="#variant.Error" title="Error">Error</a></li><li><a href="#variant.MediaLoaded" title="MediaLoaded">MediaLoaded</a></li><li><a href="#variant.PlaybackEnded" title="PlaybackEnded">PlaybackEnded</a></li><li><a href="#variant.PlaybackModeChanged" title="PlaybackModeChanged">PlaybackModeChanged</a></li><li><a href="#variant.PositionUpdate" title="PositionUpdate">PositionUpdate</a></li><li><a href="#variant.QueueChanged" title="QueueChanged">QueueChanged</a></li><li><a href="#variant.RemoteDisconnectRequested" title="RemoteDisconnectRequested">RemoteDisconnectRequested</a></li><li><a href="#variant.SessionChanged" title="SessionChanged">SessionChanged</a></li><li><a href="#variant.SessionsUpdated" title="SessionsUpdated">SessionsUpdated</a></li><li><a href="#variant.ShowNextEpisodePopup" title="ShowNextEpisodePopup">ShowNextEpisodePopup</a></li><li><a href="#variant.SleepTimerChanged" title="SleepTimerChanged">SleepTimerChanged</a></li><li><a href="#variant.SleepTimerExpired" title="SleepTimerExpired">SleepTimerExpired</a></li><li><a href="#variant.StateChanged" title="StateChanged">StateChanged</a></li><li><a href="#variant.VolumeChanged" title="VolumeChanged">VolumeChanged</a></li><li><a href="#variant.WebviewAudioLoad" title="WebviewAudioLoad">WebviewAudioLoad</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-PlayerStatusEvent" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-PlayerStatusEvent" title="Debug">Debug</a></li><li><a href="#impl-Deserialize%3C'de%3E-for-PlayerStatusEvent" title="Deserialize&#60;&#39;de&#62;">Deserialize&#60;&#39;de&#62;</a></li><li><a href="#impl-Event-for-PlayerStatusEvent" title="Event">Event</a></li><li><a href="#impl-Flatten-for-PlayerStatusEvent" title="Flatten">Flatten</a></li><li><a href="#impl-NamedType-for-PlayerStatusEvent" title="NamedType">NamedType</a></li><li><a href="#impl-Serialize-for-PlayerStatusEvent" title="Serialize">Serialize</a></li><li><a href="#impl-Type-for-PlayerStatusEvent" title="Type">Type</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-PlayerStatusEvent" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-PlayerStatusEvent" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PlayerStatusEvent" title="Send">Send</a></li><li><a href="#impl-Sync-for-PlayerStatusEvent" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-PlayerStatusEvent" title="Unpin">Unpin</a></li><li><a href="#impl-UnsafeUnpin-for-PlayerStatusEvent" title="UnsafeUnpin">UnsafeUnpin</a></li><li><a href="#impl-UnwindSafe-for-PlayerStatusEvent" title="UnwindSafe">UnwindSafe</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-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-CommandArg%3C'de,+R%3E-for-D" title="CommandArg&#60;&#39;de, R&#62;">CommandArg&#60;&#39;de, R&#62;</a></li><li><a href="#impl-DeserializeOwned-for-T" title="DeserializeOwned">DeserializeOwned</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-FunctionArg-for-T" title="FunctionArg">FunctionArg</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-IpcResponse-for-T" title="IpcResponse">IpcResponse</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-ScopeObject-for-T" title="ScopeObject">ScopeObject</a></li><li><a href="#impl-Serialize-for-T" title="Serialize">Serialize</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</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-UserEvent-for-T" title="UserEvent">UserEvent</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>player::<wbr>events</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">player</a>::<wbr><a href="index.html">events</a></div><h1>Enum <span class="enum">Player<wbr>Status<wbr>Event</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/player/events.rs.html#39-184">Source</a> </span></div><pre class="rust item-decl"><code>pub enum PlayerStatusEvent {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 18 variants</span></summary> PositionUpdate {
position: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>,
duration: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>,
},
StateChanged {
state: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
media_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;<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;,
},
MediaLoaded {
duration: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>,
},
PlaybackEnded,
Buffering {
percent: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u8.html">u8</a>,
},
Error {
message: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
recoverable: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
},
VolumeChanged {
volume: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f32.html">f32</a>,
muted: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
},
SleepTimerChanged {
mode: <a class="enum" href="../sleep_timer/enum.SleepTimerMode.html" title="enum jellytau_lib::player::sleep_timer::SleepTimerMode">SleepTimerMode</a>,
remaining_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a>,
},
SleepTimerExpired,
ShowNextEpisodePopup {
current_episode: <a class="struct" href="../../repository/types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>,
next_episode: <a class="struct" href="../../repository/types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a>,
countdown_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a>,
auto_advance: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
},
CountdownTick {
remaining_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a>,
},
QueueChanged {
items: <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="../media/struct.MediaItem.html" title="struct jellytau_lib::player::media::MediaItem">MediaItem</a>&gt;,
current_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.usize.html">usize</a>&gt;,
shuffle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
repeat: <a class="enum" href="../queue/enum.RepeatMode.html" title="enum jellytau_lib::player::queue::RepeatMode">RepeatMode</a>,
has_next: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
has_previous: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
},
SessionChanged {
session: <a class="enum" href="../session/enum.MediaSessionType.html" title="enum jellytau_lib::player::session::MediaSessionType">MediaSessionType</a>,
},
SessionsUpdated {
sessions: <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="../../jellyfin/client/struct.SessionInfo.html" title="struct jellytau_lib::jellyfin::client::SessionInfo">SessionInfo</a>&gt;,
},
PlaybackModeChanged {
mode: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
session_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;<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;,
},
RemoteDisconnectRequested,
ControlCommand {
action: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
position: <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;,
},
WebviewAudioLoad {
url: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
media_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;<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;,
position: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a>,
autoplay: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
},
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Events emitted by the player backend to the frontend via Tauri events.</p>
<p>These are distinct from <code>PlayerEvent</code> in state.rs, which handles internal
state machine transitions.</p>
<p>TRACES: UR-005, UR-019, UR-023, UR-026 | DR-001, DR-028, DR-047</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.PositionUpdate" class="variant"><a href="#variant.PositionUpdate" class="anchor">§</a><h3 class="code-header">PositionUpdate</h3></section><div class="docblock"><p>Playback position updated (emitted periodically during playback)</p>
</div><div class="sub-variant" id="variant.PositionUpdate.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PositionUpdate.field.position" class="section-header"><a href="#variant.PositionUpdate.field.position" class="anchor field">§</a><code>position: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a></code></span><div class="docblock"><p>Current position in seconds</p>
</div></div><div class="sub-variant-field"><span id="variant.PositionUpdate.field.duration" class="section-header"><a href="#variant.PositionUpdate.field.duration" class="anchor field">§</a><code>duration: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a></code></span><div class="docblock"><p>Total duration in seconds</p>
</div></div></div><section id="variant.StateChanged" class="variant"><a href="#variant.StateChanged" class="anchor">§</a><h3 class="code-header">StateChanged</h3></section><div class="docblock"><p>Player state changed</p>
</div><div class="sub-variant" id="variant.StateChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.StateChanged.field.state" class="section-header"><a href="#variant.StateChanged.field.state" class="anchor field">§</a><code>state: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>New state: “playing”, “paused”, “stopped”, “loading”, “idle”</p>
</div></div><div class="sub-variant-field"><span id="variant.StateChanged.field.media_id" class="section-header"><a href="#variant.StateChanged.field.media_id" class="anchor field">§</a><code>media_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;<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;</code></span><div class="docblock"><p>ID of the current media item, if any</p>
</div></div></div><section id="variant.MediaLoaded" class="variant"><a href="#variant.MediaLoaded" class="anchor">§</a><h3 class="code-header">MediaLoaded</h3></section><div class="docblock"><p>Media has finished loading and is ready to play</p>
</div><div class="sub-variant" id="variant.MediaLoaded.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.MediaLoaded.field.duration" class="section-header"><a href="#variant.MediaLoaded.field.duration" class="anchor field">§</a><code>duration: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a></code></span><div class="docblock"><p>Total duration in seconds</p>
</div></div></div><section id="variant.PlaybackEnded" class="variant"><a href="#variant.PlaybackEnded" class="anchor">§</a><h3 class="code-header">PlaybackEnded</h3></section><div class="docblock"><p>Playback has ended naturally (reached end of media)</p>
</div><section id="variant.Buffering" class="variant"><a href="#variant.Buffering" class="anchor">§</a><h3 class="code-header">Buffering</h3></section><div class="docblock"><p>Buffering state changed</p>
</div><div class="sub-variant" id="variant.Buffering.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Buffering.field.percent" class="section-header"><a href="#variant.Buffering.field.percent" class="anchor field">§</a><code>percent: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u8.html">u8</a></code></span><div class="docblock"><p>Buffering progress (0-100)</p>
</div></div></div><section id="variant.Error" class="variant"><a href="#variant.Error" class="anchor">§</a><h3 class="code-header">Error</h3></section><div class="docblock"><p>An error occurred during playback</p>
</div><div class="sub-variant" id="variant.Error.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Error.field.message" class="section-header"><a href="#variant.Error.field.message" class="anchor field">§</a><code>message: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Error message</p>
</div></div><div class="sub-variant-field"><span id="variant.Error.field.recoverable" class="section-header"><a href="#variant.Error.field.recoverable" class="anchor field">§</a><code>recoverable: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether the error is recoverable</p>
</div></div></div><section id="variant.VolumeChanged" class="variant"><a href="#variant.VolumeChanged" class="anchor">§</a><h3 class="code-header">VolumeChanged</h3></section><div class="docblock"><p>Volume changed</p>
</div><div class="sub-variant" id="variant.VolumeChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.VolumeChanged.field.volume" class="section-header"><a href="#variant.VolumeChanged.field.volume" class="anchor field">§</a><code>volume: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f32.html">f32</a></code></span><div class="docblock"><p>New volume level (0.0-1.0)</p>
</div></div><div class="sub-variant-field"><span id="variant.VolumeChanged.field.muted" class="section-header"><a href="#variant.VolumeChanged.field.muted" class="anchor field">§</a><code>muted: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether audio is muted</p>
</div></div></div><section id="variant.SleepTimerChanged" class="variant"><a href="#variant.SleepTimerChanged" class="anchor">§</a><h3 class="code-header">SleepTimerChanged</h3></section><div class="docblock"><p>Sleep timer state changed</p>
</div><div class="sub-variant" id="variant.SleepTimerChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SleepTimerChanged.field.mode" class="section-header"><a href="#variant.SleepTimerChanged.field.mode" class="anchor field">§</a><code>mode: <a class="enum" href="../sleep_timer/enum.SleepTimerMode.html" title="enum jellytau_lib::player::sleep_timer::SleepTimerMode">SleepTimerMode</a></code></span><div class="docblock"><p>Sleep timer mode</p>
</div></div><div class="sub-variant-field"><span id="variant.SleepTimerChanged.field.remaining_seconds" class="section-header"><a href="#variant.SleepTimerChanged.field.remaining_seconds" class="anchor field">§</a><code>remaining_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Remaining seconds (for time-based timer)</p>
</div></div></div><section id="variant.SleepTimerExpired" class="variant"><a href="#variant.SleepTimerExpired" class="anchor">§</a><h3 class="code-header">SleepTimerExpired</h3></section><div class="docblock"><p>Time-based sleep timer expired: playback must stop. The backend stops
its own (MPV/ExoPlayer) playback, but HTML5 video on Linux plays in the
webview outside the backends control — the frontend pauses it on this
event.</p>
</div><section id="variant.ShowNextEpisodePopup" class="variant"><a href="#variant.ShowNextEpisodePopup" class="anchor">§</a><h3 class="code-header">ShowNextEpisodePopup</h3></section><div class="docblock"><p>Show next episode popup with countdown</p>
</div><div class="sub-variant" id="variant.ShowNextEpisodePopup.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ShowNextEpisodePopup.field.current_episode" class="section-header"><a href="#variant.ShowNextEpisodePopup.field.current_episode" class="anchor field">§</a><code>current_episode: <a class="struct" href="../../repository/types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a></code></span><div class="docblock"><p>Current episode that just finished</p>
</div></div><div class="sub-variant-field"><span id="variant.ShowNextEpisodePopup.field.next_episode" class="section-header"><a href="#variant.ShowNextEpisodePopup.field.next_episode" class="anchor field">§</a><code>next_episode: <a class="struct" href="../../repository/types/struct.MediaItem.html" title="struct jellytau_lib::repository::types::MediaItem">MediaItem</a></code></span><div class="docblock"><p>Next episode to play</p>
</div></div><div class="sub-variant-field"><span id="variant.ShowNextEpisodePopup.field.countdown_seconds" class="section-header"><a href="#variant.ShowNextEpisodePopup.field.countdown_seconds" class="anchor field">§</a><code>countdown_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Countdown duration in seconds</p>
</div></div><div class="sub-variant-field"><span id="variant.ShowNextEpisodePopup.field.auto_advance" class="section-header"><a href="#variant.ShowNextEpisodePopup.field.auto_advance" class="anchor field">§</a><code>auto_advance: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to auto-advance when countdown reaches 0</p>
</div></div></div><section id="variant.CountdownTick" class="variant"><a href="#variant.CountdownTick" class="anchor">§</a><h3 class="code-header">CountdownTick</h3></section><div class="docblock"><p>Countdown tick (emitted every second during autoplay countdown)</p>
</div><div class="sub-variant" id="variant.CountdownTick.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.CountdownTick.field.remaining_seconds" class="section-header"><a href="#variant.CountdownTick.field.remaining_seconds" class="anchor field">§</a><code>remaining_seconds: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Remaining seconds in countdown</p>
</div></div></div><section id="variant.QueueChanged" class="variant"><a href="#variant.QueueChanged" class="anchor">§</a><h3 class="code-header">QueueChanged</h3></section><div class="docblock"><p>Queue changed (items added, removed, reordered, or playback mode changed)</p>
</div><div class="sub-variant" id="variant.QueueChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.QueueChanged.field.items" class="section-header"><a href="#variant.QueueChanged.field.items" class="anchor field">§</a><code>items: <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="../media/struct.MediaItem.html" title="struct jellytau_lib::player::media::MediaItem">MediaItem</a>&gt;</code></span><div class="docblock"><p>All items in the queue</p>
</div></div><div class="sub-variant-field"><span id="variant.QueueChanged.field.current_index" class="section-header"><a href="#variant.QueueChanged.field.current_index" class="anchor field">§</a><code>current_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.usize.html">usize</a>&gt;</code></span><div class="docblock"><p>Current item index</p>
</div></div><div class="sub-variant-field"><span id="variant.QueueChanged.field.shuffle" class="section-header"><a href="#variant.QueueChanged.field.shuffle" class="anchor field">§</a><code>shuffle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether shuffle is enabled</p>
</div></div><div class="sub-variant-field"><span id="variant.QueueChanged.field.repeat" class="section-header"><a href="#variant.QueueChanged.field.repeat" class="anchor field">§</a><code>repeat: <a class="enum" href="../queue/enum.RepeatMode.html" title="enum jellytau_lib::player::queue::RepeatMode">RepeatMode</a></code></span><div class="docblock"><p>Current repeat mode</p>
</div></div><div class="sub-variant-field"><span id="variant.QueueChanged.field.has_next" class="section-header"><a href="#variant.QueueChanged.field.has_next" class="anchor field">§</a><code>has_next: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether theres a next track available</p>
</div></div><div class="sub-variant-field"><span id="variant.QueueChanged.field.has_previous" class="section-header"><a href="#variant.QueueChanged.field.has_previous" class="anchor field">§</a><code>has_previous: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether theres a previous track available</p>
</div></div></div><section id="variant.SessionChanged" class="variant"><a href="#variant.SessionChanged" class="anchor">§</a><h3 class="code-header">SessionChanged</h3></section><div class="docblock"><p>Media session changed (activity context changed: Audio/Movie/TvShow/Idle)</p>
</div><div class="sub-variant" id="variant.SessionChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SessionChanged.field.session" class="section-header"><a href="#variant.SessionChanged.field.session" class="anchor field">§</a><code>session: <a class="enum" href="../session/enum.MediaSessionType.html" title="enum jellytau_lib::player::session::MediaSessionType">MediaSessionType</a></code></span><div class="docblock"><p>Current session state</p>
</div></div></div><section id="variant.SessionsUpdated" class="variant"><a href="#variant.SessionsUpdated" class="anchor">§</a><h3 class="code-header">SessionsUpdated</h3></section><div class="docblock"><p>Remote sessions updated (for cast/remote control UI)</p>
</div><div class="sub-variant" id="variant.SessionsUpdated.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.SessionsUpdated.field.sessions" class="section-header"><a href="#variant.SessionsUpdated.field.sessions" class="anchor field">§</a><code>sessions: <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="../../jellyfin/client/struct.SessionInfo.html" title="struct jellytau_lib::jellyfin::client::SessionInfo">SessionInfo</a>&gt;</code></span><div class="docblock"><p>All active controllable sessions from Jellyfin</p>
</div></div></div><section id="variant.PlaybackModeChanged" class="variant"><a href="#variant.PlaybackModeChanged" class="anchor">§</a><h3 class="code-header">PlaybackModeChanged</h3></section><div class="docblock"><p>The authoritative playback mode changed in the Rust backend.</p>
<p>The Rust <code>PlaybackModeManager</code> is the single source of truth for which
device playback commands route to (local vs a remote session). The
frontend keeps a mirror store for the UI; without this event that mirror
drifts out of sync (e.g. a mode transition happens inside a transfer or a
local stop that the frontend never learns about), and controls then route
to the wrong device — the classic “it keeps playing on the remote” bug.
The frontend reconciles its store to this payload whenever it fires.</p>
</div><div class="sub-variant" id="variant.PlaybackModeChanged.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.PlaybackModeChanged.field.mode" class="section-header"><a href="#variant.PlaybackModeChanged.field.mode" class="anchor field">§</a><code>mode: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>New mode: “local”, “remote”, or “idle”.</p>
</div></div><div class="sub-variant-field"><span id="variant.PlaybackModeChanged.field.session_id" class="section-header"><a href="#variant.PlaybackModeChanged.field.session_id" class="anchor field">§</a><code>session_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;<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;</code></span><div class="docblock"><p>Session id when <code>mode == "remote"</code>, otherwise <code>None</code>.</p>
</div></div></div><section id="variant.RemoteDisconnectRequested" class="variant"><a href="#variant.RemoteDisconnectRequested" class="anchor">§</a><h3 class="code-header">RemoteDisconnectRequested</h3></section><div class="docblock"><p>The user asked to disconnect from the remote session and resume locally.</p>
<p>Emitted when the lockscreen Stop button is pressed while casting. The
frontend owns the two-step remote-&gt;local transfer (it must reload the
media item locally), so the native side only signals intent here.</p>
</div><section id="variant.ControlCommand" class="variant"><a href="#variant.ControlCommand" class="anchor">§</a><h3 class="code-header">ControlCommand</h3></section><div class="docblock"><p>Backend-originated control command targeting the active frontend player
adapter (the HTML5 <video> that lives in the webview, which Rust cannot
drive directly). Emitted by control paths like the sleep timer, lockscreen,
or remote so they can pause/play/seek/stop the webview element.
<code>playerEvents.ts</code> routes this to the active PlayerAdapter via the facade.</p>
</div><div class="sub-variant" id="variant.ControlCommand.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.ControlCommand.field.action" class="section-header"><a href="#variant.ControlCommand.field.action" class="anchor field">§</a><code>action: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>One of: “play”, “pause”, “stop”, “seek”.</p>
</div></div><div class="sub-variant-field"><span id="variant.ControlCommand.field.position" class="section-header"><a href="#variant.ControlCommand.field.position" class="anchor field">§</a><code>position: <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;</code></span><div class="docblock"><p>Target position in seconds (only meaningful for “seek”).</p>
</div></div></div><section id="variant.WebviewAudioLoad" class="variant"><a href="#variant.WebviewAudioLoad" class="anchor">§</a><h3 class="code-header">WebviewAudioLoad</h3></section><div class="docblock"><p>Ask the frontend webview <code>&lt;audio&gt;</code> element to load and play a stream.</p>
<p>Emitted by <code>WebviewAudioBackend</code> on platforms with no native audio
backend (e.g. Windows): audio-only playback is rendered by an <code>&lt;audio&gt;</code>
element in the webview, mirroring how all video already renders through
the webview <code>&lt;video&gt;</code>. The element then reports its state/position back
through the <code>player_report_*</code> commands, so the Rust controller stays the
single source of truth. Subsequent play/pause/seek/stop reach the element
via <code>ControlCommand</code>.</p>
</div><div class="sub-variant" id="variant.WebviewAudioLoad.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.WebviewAudioLoad.field.url" class="section-header"><a href="#variant.WebviewAudioLoad.field.url" class="anchor field">§</a><code>url: <a class="struct" href="https://doc.rust-lang.org/1.97.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></span><div class="docblock"><p>Stream URL for the <code>&lt;audio&gt;</code> element to play.</p>
</div></div><div class="sub-variant-field"><span id="variant.WebviewAudioLoad.field.media_id" class="section-header"><a href="#variant.WebviewAudioLoad.field.media_id" class="anchor field">§</a><code>media_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;<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;</code></span><div class="docblock"><p>Jellyfin item id, used as the media_id when reporting state back.</p>
</div></div><div class="sub-variant-field"><span id="variant.WebviewAudioLoad.field.position" class="section-header"><a href="#variant.WebviewAudioLoad.field.position" class="anchor field">§</a><code>position: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.f64.html">f64</a></code></span><div class="docblock"><p>Resume position in seconds (0 = start from the beginning).</p>
</div></div><div class="sub-variant-field"><span id="variant.WebviewAudioLoad.field.autoplay" class="section-header"><a href="#variant.WebviewAudioLoad.field.autoplay" class="anchor field">§</a><code>autoplay: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to begin playing immediately after loading.</p>
</div></div></div></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-Clone-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Clone-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0, const unstable">1.0.0 (const: <a href="https://github.com/rust-lang/rust/issues/142757" title="Tracking issue for const_clone">unstable</a>)</span> · <a class="src" href="https://doc.rust-lang.org/1.97.1/src/core/clone.rs.html#245-247">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Debug-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.97.1/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.97.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.97.1/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deserialize%3C'de%3E-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Deserialize%3C'de%3E-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl&lt;'de&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html" title="trait serde_core::de::Deserialize">Deserialize</a>&lt;'de&gt; for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize" class="fn">deserialize</a>&lt;__D&gt;(__deserializer: __D) -&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;Self, __D::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html#associatedtype.Error" title="type serde_core::de::Deserializer::Error">Error</a>&gt;<div class="where">where
__D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Event-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Event-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl Event for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.NAME" class="associatedconstant trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#associatedconstant.NAME" class="anchor">§</a><h4 class="code-header">const <a class="constant">NAME</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.str.html">str</a> = &quot;player-status-event&quot;</h4></section></summary><div class='docblock'>The unique name for this event. Derived from the structs name via the <a href="macro@crate::Event"><code>Event</code></a> derive macro.</div></details><details class="toggle method-toggle" open><summary><section id="method.listen" class="method trait-impl"><a href="#method.listen" class="anchor">§</a><h4 class="code-header">fn <a class="fn">listen</a>&lt;F, R, H&gt;(handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, handler: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a><div class="where">where
R: Runtime,
H: Listener&lt;R&gt; + Manager&lt;R&gt;,
F: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(TypedEvent&lt;Self&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> + 'static,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a>,</div></h4></section></summary><div class='docblock'>Listen to an emitted event on this manager.</div></details><details class="toggle method-toggle" open><summary><section id="method.listen_any" class="method trait-impl"><a href="#method.listen_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">listen_any</a>&lt;F, R, H&gt;(handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, handler: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a><div class="where">where
R: Runtime,
H: Listener&lt;R&gt; + Manager&lt;R&gt;,
F: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(TypedEvent&lt;Self&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> + 'static,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a>,</div></h4></section></summary><div class='docblock'>Listen to an emitted event to any <a href="EventTarget">target</a>.</div></details><details class="toggle method-toggle" open><summary><section id="method.once" class="method trait-impl"><a href="#method.once" class="anchor">§</a><h4 class="code-header">fn <a class="fn">once</a>&lt;F, R, H&gt;(handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, handler: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a><div class="where">where
R: Runtime,
H: Listener&lt;R&gt; + Manager&lt;R&gt;,
F: <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>(TypedEvent&lt;Self&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> + 'static,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a>,</div></h4></section></summary><div class='docblock'>Listen to an event on this manager only once.</div></details><details class="toggle method-toggle" open><summary><section id="method.once_any" class="method trait-impl"><a href="#method.once_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">once_any</a>&lt;F, R, H&gt;(handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, handler: F) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u32.html">u32</a><div class="where">where
R: Runtime,
H: Listener&lt;R&gt; + Manager&lt;R&gt;,
F: <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>(TypedEvent&lt;Self&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> + 'static,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a>,</div></h4></section></summary><div class='docblock'>Listens once to an emitted event to any <a href="EventTarget">target</a> . <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.emit" class="method trait-impl"><a href="#method.emit" class="anchor">§</a><h4 class="code-header">fn <a class="fn">emit</a>&lt;R, H&gt;(&amp;self, handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</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.unit.html">()</a>, Error&gt;<div class="where">where
R: Runtime,
H: Emitter&lt;R&gt; + Manager&lt;R&gt;,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</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>,</div></h4></section></summary><div class='docblock'>Emits an event to all <a href="EventTarget">targets</a>.</div></details><details class="toggle method-toggle" open><summary><section id="method.emit_to" class="method trait-impl"><a href="#method.emit_to" class="anchor">§</a><h4 class="code-header">fn <a class="fn">emit_to</a>&lt;R, H, I&gt;(&amp;self, handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, target: I) -&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.unit.html">()</a>, Error&gt;<div class="where">where
R: Runtime,
H: Emitter&lt;R&gt; + Manager&lt;R&gt;,
I: <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;EventTarget&gt;,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</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>,</div></h4></section></summary><div class='docblock'>Emits an event to all <a href="EventTarget">targets</a> matching the given target.</div></details><details class="toggle method-toggle" open><summary><section id="method.emit_filter" class="method trait-impl"><a href="#method.emit_filter" class="anchor">§</a><h4 class="code-header">fn <a class="fn">emit_filter</a>&lt;F, R, H&gt;(&amp;self, handle: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.reference.html">&amp;H</a>, filter: F) -&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.unit.html">()</a>, Error&gt;<div class="where">where
R: Runtime,
H: Emitter&lt;R&gt; + Manager&lt;R&gt;,
F: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&amp;EventTarget) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.bool.html">bool</a>,
Self: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</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>,</div></h4></section></summary><div class='docblock'>Emits an event to all <a href="EventTarget">targets</a> based on the given filter.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-NamedType-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-NamedType-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl NamedType for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><section id="method.sid" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.sid" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sid</a>() -&gt; SpectaID</h4></section><details class="toggle method-toggle" open><summary><section id="method.named_data_type" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.named_data_type" class="anchor">§</a><h4 class="code-header">fn <a class="fn">named_data_type</a>(
type_map: &amp;mut TypeCollection,
generics: &amp;[DataType],
) -&gt; NamedDataType</h4></section></summary><div class='docblock'>this is equivalent to [Type::inline] but returns a [NamedDataType] instead.</div></details><details class="toggle method-toggle" open><summary><section id="method.definition_named_data_type" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.definition_named_data_type" class="anchor">§</a><h4 class="code-header">fn <a class="fn">definition_named_data_type</a>(type_map: &amp;mut TypeCollection) -&gt; NamedDataType</h4></section></summary><div class='docblock'>this is equivalent to [Type::definition] but returns a [NamedDataType] instead.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Serialize-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</a> for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.serialize" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize" class="fn">serialize</a>&lt;__S&gt;(&amp;self, __serializer: __S) -&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;__S::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html#associatedtype.Ok" title="type serde_core::ser::Serializer::Ok">Ok</a>, __S::<a class="associatedtype" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html#associatedtype.Error" title="type serde_core::ser::Serializer::Error">Error</a>&gt;<div class="where">where
__S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Type-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Type-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl Type for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.inline" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.inline" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inline</a>(type_map: &amp;mut TypeCollection, generics: Generics&lt;'_&gt;) -&gt; DataType</h4></section></summary><div class='docblock'>Returns the definition of a type using the provided generics. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.reference" class="method trait-impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#method.reference" class="anchor">§</a><h4 class="code-header">fn <a class="fn">reference</a>(type_map: &amp;mut TypeCollection, generics: &amp;[DataType]) -&gt; Reference</h4></section></summary><div class='docblock'>Generates a datatype corresponding to a reference to this type,
as determined by its category. Getting a reference to a type implies that
it should belong in the type map (since it has to be referenced from somewhere),
so the output of <a href="crate::Type::definition"><code>definition</code></a> will be put into the type map.</div></details></div></details><section id="impl-Flatten-for-PlayerStatusEvent" class="impl"><a class="src rightside" href="../../../src/jellytau_lib/player/events.rs.html#24">Source</a><a href="#impl-Flatten-for-PlayerStatusEvent" class="anchor">§</a><h3 class="code-header">impl Flatten for <a class="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section></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-PlayerStatusEvent" class="impl"><a href="#impl-Freeze-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-RefUnwindSafe-for-PlayerStatusEvent" class="impl"><a href="#impl-RefUnwindSafe-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-Send-for-PlayerStatusEvent" class="impl"><a href="#impl-Send-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-Sync-for-PlayerStatusEvent" class="impl"><a href="#impl-Sync-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-Unpin-for-PlayerStatusEvent" class="impl"><a href="#impl-Unpin-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-UnsafeUnpin-for-PlayerStatusEvent" class="impl"><a href="#impl-UnsafeUnpin-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a></h3></section><section id="impl-UnwindSafe-for-PlayerStatusEvent" class="impl"><a href="#impl-UnwindSafe-for-PlayerStatusEvent" 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="enum" href="enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</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-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/clone.rs.html#547">Source</a><a href="#impl-CloneToUninit-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/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/core/clone.rs.html#549">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dest: <a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.97.1/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dest</code>. <a href="https://doc.rust-lang.org/1.97.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CommandArg%3C'de,+R%3E-for-D" class="impl"><a href="#impl-CommandArg%3C'de,+R%3E-for-D" class="anchor">§</a><h3 class="code-header">impl&lt;'de, D, R&gt; CommandArg&lt;'de, R&gt; for D<div class="where">where
D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html" title="trait serde_core::de::Deserialize">Deserialize</a>&lt;'de&gt;,
R: Runtime,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_command" class="method trait-impl"><a href="#method.from_command" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_command</a>(command: CommandItem&lt;'de, R&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;D, InvokeError&gt;</h4></section></summary><div class='docblock'>Derives an instance of <code>Self</code> from the [<code>CommandItem</code>]. <a>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-FunctionArg-for-T" class="impl"><a href="#impl-FunctionArg-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; FunctionArg for T<div class="where">where
T: Type,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_datatype" class="method trait-impl"><a href="#method.to_datatype" class="anchor">§</a><h4 class="code-header">fn <a class="fn">to_datatype</a>(type_map: &amp;mut TypeCollection) -&gt; <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;DataType&gt;</h4></section></summary><div class='docblock'>Gets the type of an argument as a [<code>DataType</code>]. <a>Read more</a></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-IpcResponse-for-T" class="impl"><a href="#impl-IpcResponse-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; IpcResponse for T<div class="where">where
T: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.body" class="method trait-impl"><a href="#method.body" class="anchor">§</a><h4 class="code-header">fn <a class="fn">body</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;InvokeResponseBody, Error&gt;</h4></section></summary><div class='docblock'>Resolve the IPC response body.</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-ScopeObject-for-T" class="impl"><a href="#impl-ScopeObject-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; ScopeObject for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a> + 'static,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-2" class="associatedtype trait-impl"><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Error</a> = <a class="struct" href="https://docs.rs/serde_json/1.0.148/serde_json/error/struct.Error.html" title="struct serde_json::error::Error">Error</a></h4></section></summary><div class='docblock'>The error type.</div></details><details class="toggle method-toggle" open><summary><section id="method.deserialize-1" class="method trait-impl"><a href="#method.deserialize-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">deserialize</a>&lt;R&gt;(
_app: &amp;AppHandle&lt;R&gt;,
raw: Value,
) -&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 ScopeObject&gt;::Error&gt;<div class="where">where
R: Runtime,</div></h4></section></summary><div class='docblock'>Deserialize the raw scope value.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Serialize-for-T" class="impl"><a class="src rightside" href="https://docs.rs/erased-serde/0.4.9/src/erased_serde/ser.rs.html#233-235">Source</a><a href="#impl-Serialize-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/trait.Serialize.html" title="trait erased_serde::ser::Serialize">Serialize</a> for T<div class="where">where
T: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::ser::Serialize">Serialize</a> + ?<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"><section id="method.erased_serialize" class="method trait-impl"><a class="src rightside" href="https://docs.rs/erased-serde/0.4.9/src/erased_serde/ser.rs.html#237">Source</a><a href="#method.erased_serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/trait.Serialize.html#tymethod.erased_serialize" class="fn">erased_serialize</a>(&amp;self, serializer: &amp;mut dyn <a class="trait" href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/trait.Serializer.html" title="trait erased_serde::ser::Serializer">Serializer</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.unit.html">()</a>, <a class="struct" href="https://docs.rs/erased-serde/0.4.9/erased_serde/error/struct.Error.html" title="struct erased_serde::error::Error">Error</a>&gt;</h4></section><section id="method.do_erased_serialize" class="method trait-impl"><a class="src rightside" href="https://docs.rs/erased-serde/0.4.9/src/erased_serde/ser.rs.html#245">Source</a><a href="#method.do_erased_serialize" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/trait.Serialize.html#tymethod.do_erased_serialize" class="fn">do_erased_serialize</a>(
&amp;self,
serializer: &amp;mut dyn <a class="trait" href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/trait.Serializer.html" title="trait erased_serde::ser::Serializer">Serializer</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.unit.html">()</a>, <a class="enum" href="https://docs.rs/erased-serde/0.4.9/erased_serde/ser/enum.ErrorImpl.html" title="enum erased_serde::ser::ErrorImpl">ErrorImpl</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/alloc/borrow.rs.html#72-74">Source</a><a href="#impl-ToOwned-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/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/alloc/borrow.rs.html#76">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.97.1/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/alloc/borrow.rs.html#77">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.97.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.97.1/src/alloc/borrow.rs.html#81">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.97.1/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <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'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.97.1/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></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><section id="impl-DeserializeOwned-for-T" class="impl"><a class="src rightside" href="https://docs.rs/serde_core/1.0.228/src/serde_core/de/mod.rs.html#633">Source</a><a href="#impl-DeserializeOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html" title="trait serde_core::de::DeserializeOwned">DeserializeOwned</a> for T<div class="where">where
T: for&lt;'de&gt; <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html" title="trait serde_core::de::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section><section id="impl-UserEvent-for-T" class="impl"><a href="#impl-UserEvent-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; UserEvent for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.97.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</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,</div></h3></section></div></section></div></main></body></html>