MusicPlayer

Struct MusicPlayer 

Source
pub struct MusicPlayer { /* private fields */ }

Implementations§

Source§

impl MusicPlayer

Source

pub fn new( db: Arc<Surreal<Db>>, settings: Arc<Settings>, audio_kernel: Arc<AudioKernelSender>, event_publisher: Arc<Sender<Message>>, terminator: Terminator, interrupt: InterruptReceiver, ) -> Self

Source

pub async fn publish( &self, message: impl Into<Message> + Send + Sync + Debug, ) -> Result<(), UdpError>

Publish a message to all listeners.

§Errors

Returns an error if the message could not be sent or encoded.

Trait Implementations§

Source§

impl Clone for MusicPlayer

Source§

fn clone(&self) -> MusicPlayer

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MusicPlayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl MusicPlayer for MusicPlayer

Source§

fn library_rescan<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

rescans the music library, only error is if a rescan is already in progress.

Source§

fn library_rescan_in_progress<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<InProgressResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Check if a rescan is in progress.

Source§

fn library_analyze<'async_trait>( self: Arc<Self>, request: Request<LibraryAnalyzeRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Analyze the music library, only error is if an analysis is already in progress.

Source§

fn library_analyze_in_progress<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<InProgressResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Check if an analysis is in progress.

Source§

fn library_recluster<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Recluster the music library, only error is if a recluster is already in progress.

Source§

fn library_recluster_in_progress<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<InProgressResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Check if a recluster is in progress.

Source§

fn library_brief<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<LibraryBrief>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Returns brief information about the music library.

Source§

fn library_full<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<LibraryFull>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Returns full information about the music library. (all songs, artists, albums, etc.)

Source§

fn library_health<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<LibraryHealth>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Returns information about the health of the music library (are there any missing files, etc.)

Source§

fn library_song_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get a song by its ID.

Source§

fn library_song_get_by_path<'async_trait>( self: Arc<Self>, request: Request<Path>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get a song by its file path.

Source§

fn library_song_get_artists<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get the artists of a song.

Source§

fn rand_artist<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get a random artist

Source§

fn rand_album<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get a random album

Source§

fn rand_song<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Get a random song

Source§

fn search<'async_trait>( self: Arc<Self>, request: Request<SearchRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SearchResult>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

returns a list of artists, albums, and songs matching the given search query.

Source§

fn search_artist<'async_trait>( self: Arc<Self>, request: Request<SearchRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

returns a list of artists matching the given search query.

Source§

fn search_album<'async_trait>( self: Arc<Self>, request: Request<SearchRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

returns a list of albums matching the given search query.

Source§

fn search_song<'async_trait>( self: Arc<Self>, request: Request<SearchRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

returns a list of songs matching the given search query.

Source§

fn playback_toggle<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

toggles playback (play/pause)

Source§

fn playback_play<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

starts playback (unpause).

Source§

fn playback_pause<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

pause playback.

Source§

fn playback_stop<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

stop playback.

Source§

fn playback_restart<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

restart the current song.

Source§

fn playback_skip_forward<'async_trait>( self: Arc<Self>, request: Request<PlaybackSkipRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

skip forward by the given amount of songs

Source§

fn playback_skip_backward<'async_trait>( self: Arc<Self>, request: Request<PlaybackSkipRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

go backwards by the given amount of songs.

Source§

fn playback_clear_player<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

stop playback. (clears the queue and stops playback)

Source§

fn playback_clear<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

clear the queue.

Source§

fn playback_seek<'async_trait>( self: Arc<Self>, request: Request<PlaybackSeekRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

seek forwards, backwards, or to an absolute second in the current song.

Source§

fn playback_repeat<'async_trait>( self: Arc<Self>, request: Request<PlaybackRepeatRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

set the repeat mode.

Source§

fn playback_shuffle<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Shuffle the current queue, then start playing from the 1st Song in the queue.

Source§

fn playback_volume<'async_trait>( self: Arc<Self>, request: Request<PlaybackVolumeSetRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

set the volume to the given value The value 1.0 is the “normal” volume (unfiltered input). Any value other than 1.0 will multiply each sample by this value.

Source§

fn playback_volume_up<'async_trait>( self: Arc<Self>, request: Request<PlaybackVolumeAdjustRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

increase the volume by the given amount

Source§

fn playback_volume_down<'async_trait>( self: Arc<Self>, request: Request<PlaybackVolumeAdjustRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

decrease the volume by the given amount

Source§

fn playback_toggle_mute<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

toggle the volume mute.

Source§

fn playback_mute<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

mute the volume.

Source§

fn playback_unmute<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

unmute the volume.

Source§

fn queue_add<'async_trait>( self: Arc<Self>, request: Request<RecordId>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

add a song to the queue. (if the queue is empty, it will start playing the song.)

Source§

fn queue_add_list<'async_trait>( self: Arc<Self>, request: Request<RecordIdList>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

add a list of things to the queue. (if the queue is empty, it will start playing the first thing in the list.)

Source§

fn queue_set_index<'async_trait>( self: Arc<Self>, request: Request<QueueSetIndexRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

set the current song to a queue index. if the index is out of bounds, it will be clamped to the nearest valid index.

Source§

fn queue_remove_range<'async_trait>( self: Arc<Self>, request: Request<QueueRemoveRangeRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

remove a range of songs from the queue. if the range is out of bounds, it will be clamped to the nearest valid range.

Source§

fn playlist_get_or_create<'async_trait>( self: Arc<Self>, request: Request<PlaylistName>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordId>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

create a new playlist. if a playlist with the same name already exists, this will return that playlist’s id in the error variant

Source§

fn playlist_remove<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

remove a playlist.

Source§

fn playlist_clone<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordId>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

clone a playlist. (creates a new playlist with the same name (append “ (copy)“) and contents as the given playlist.) returns the id of the new playlist

Source§

fn playlist_remove_songs<'async_trait>( self: Arc<Self>, request: Request<PlaylistRemoveSongsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

remove a list of songs from a playlist. if the songs are not in the playlist, this will do nothing.

Source§

fn playlist_add<'async_trait>( self: Arc<Self>, request: Request<PlaylistAddRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Add a thing to a playlist. If the thing is something that has songs (an album, artist, etc.), it will add all the songs.

Source§

fn playlist_add_list<'async_trait>( self: Arc<Self>, request: Request<PlaylistAddListRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Add a list of things to a playlist. If the things are something that have songs (an album, artist, etc.), it will add all the songs.

Source§

fn playlist_rename<'async_trait>( self: Arc<Self>, request: Request<PlaylistRenameRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<PlaylistBrief>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Rename a playlist.

Source§

fn playlist_export<'async_trait>( self: Arc<Self>, request: Request<PlaylistExportRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Export a playlist to a .m3u file

Source§

fn playlist_import<'async_trait>( self: Arc<Self>, request: Request<PlaylistImportRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordId>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Import a playlist from a .m3u file

Source§

fn collection_freeze<'async_trait>( self: Arc<Self>, request: Request<CollectionFreezeRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordId>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Collections: freeze a collection (convert it to a playlist).

Source§

fn radio_get_similar<'async_trait>( self: Arc<Self>, request: Request<RadioSimilarRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Radio: get the n most similar songs to the given things.

Source§

fn radio_get_similar_ids<'async_trait>( self: Arc<Self>, request: Request<RadioSimilarRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordIdList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Radio: get the ids of the n most similar songs to the given things.

Source§

fn dynamic_playlist_create<'async_trait>( self: Arc<Self>, request: Request<DynamicPlaylistCreateRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<RecordId>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Dynamic Playlists: create a new DP with the given name and query

Source§

fn dynamic_playlist_update<'async_trait>( self: Arc<Self>, request: Request<DynamicPlaylistUpdateRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DynamicPlaylist>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Dynamic Playlists: update a DP

Source§

fn dynamic_playlist_remove<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Dynamic Playlists: remove a DP

Source§

fn dynamic_playlist_export<'async_trait>( self: Arc<Self>, request: Request<Path>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Dynamic Playlists: export dynamic playlists to a csv file

Source§

fn dynamic_playlist_import<'async_trait>( self: Arc<Self>, request: Request<Path>, ) -> Pin<Box<dyn Future<Output = Result<Response<DynamicPlaylistList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Dynamic Playlists: import dynamic playlists from a csv file

Source§

fn register_listener<'async_trait>( self: Arc<Self>, request: Request<RegisterListenerRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Miscellaneous
Source§

fn ping<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<PingResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn daemon_shutdown<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<()>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_artists<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_albums<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_songs<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_playlists<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<PlaylistList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_collections<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<CollectionList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_dynamic_playlists<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<DynamicPlaylistList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_song_get_album<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_song_get_playlists<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<PlaylistList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_song_get_collections<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<CollectionList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_album_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_album_get_artists<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_album_get_songs<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_artist_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_artist_get_songs<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_artist_get_albums<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_playlist_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<PlaylistOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_playlist_get_by_name<'async_trait>( self: Arc<Self>, request: Request<PlaylistName>, ) -> Pin<Box<dyn Future<Output = Result<Response<PlaylistOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_playlist_get_songs<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_collection_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<CollectionOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_collection_get_songs<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_dynamic_playlist_get<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<DynamicPlaylistOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn library_dynamic_playlist_get_songs<'async_trait>( self: Arc<Self>, request: Request<Ulid>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefList>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn state_audio<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<StateAudioResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

State inspection
Source§

fn current_artists<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<ArtistBriefListOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn current_album<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<AlbumBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn current_song<'async_trait>( self: Arc<Self>, __arg1: Request<()>, ) -> Pin<Box<dyn Future<Output = Result<Response<SongBriefOption>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

unsafe fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool

Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,