SYMBOL INDEX (440 symbols across 43 files) FILE: src/app.rs constant LIBRARY_OPTIONS (line 32) | pub const LIBRARY_OPTIONS: [&str; 6] = [ constant DEFAULT_ROUTE (line 41) | const DEFAULT_ROUTE: Route = Route { type ScrollableResultPages (line 48) | pub struct ScrollableResultPages { function new (line 54) | pub fn new() -> ScrollableResultPages { function get_results (line 61) | pub fn get_results(&self, at_index: Option) -> Option<&T> { function get_mut_results (line 65) | pub fn get_mut_results(&mut self, at_index: Option) -> Option<&mu... function add_pages (line 69) | pub fn add_pages(&mut self, new_pages: T) { type SpotifyResultAndSelectedIndex (line 77) | pub struct SpotifyResultAndSelectedIndex { type Library (line 83) | pub struct Library { type SearchResultBlock (line 94) | pub enum SearchResultBlock { type ArtistBlock (line 104) | pub enum ArtistBlock { type DialogContext (line 112) | pub enum DialogContext { type ActiveBlock (line 118) | pub enum ActiveBlock { type RouteId (line 144) | pub enum RouteId { type Route (line 165) | pub struct Route { type TrackTableContext (line 173) | pub enum TrackTableContext { type AlbumTableContext (line 184) | pub enum AlbumTableContext { type EpisodeTableContext (line 190) | pub enum EpisodeTableContext { type RecommendationsContext (line 196) | pub enum RecommendationsContext { type SearchResult (line 201) | pub struct SearchResult { type TrackTable (line 217) | pub struct TrackTable { type SelectedShow (line 224) | pub struct SelectedShow { type SelectedFullShow (line 229) | pub struct SelectedFullShow { type SelectedAlbum (line 234) | pub struct SelectedAlbum { type SelectedFullAlbum (line 241) | pub struct SelectedFullAlbum { type Artist (line 247) | pub struct Artist { type App (line 259) | pub struct App { method new (line 419) | pub fn new( method dispatch (line 433) | pub fn dispatch(&mut self, action: IoEvent) { method apply_seek (line 445) | fn apply_seek(&mut self, seek_ms: u32) { method poll_current_playback (line 465) | fn poll_current_playback(&mut self) { method update_on_tick (line 484) | pub fn update_on_tick(&mut self) { method seek_forwards (line 517) | pub fn seek_forwards(&mut self) { method seek_backwards (line 541) | pub fn seek_backwards(&mut self) { method get_recommendations_for_seed (line 554) | pub fn get_recommendations_for_seed( method get_recommendations_for_track_id (line 569) | pub fn get_recommendations_for_track_id(&mut self, id: String) { method increase_volume (line 574) | pub fn increase_volume(&mut self) { method decrease_volume (line 588) | pub fn decrease_volume(&mut self) { method handle_error (line 602) | pub fn handle_error(&mut self, e: anyhow::Error) { method toggle_playback (line 607) | pub fn toggle_playback(&mut self) { method previous_track (line 619) | pub fn previous_track(&mut self) { method push_navigation_stack (line 629) | pub fn push_navigation_stack(&mut self, next_route_id: RouteId, next_a... method pop_navigation_stack (line 644) | pub fn pop_navigation_stack(&mut self) -> Option { method get_current_route (line 652) | pub fn get_current_route(&self) -> &Route { method get_current_route_mut (line 657) | fn get_current_route_mut(&mut self) -> &mut Route { method set_current_route_state (line 661) | pub fn set_current_route_state( method copy_song_url (line 675) | pub fn copy_song_url(&mut self) { method copy_album_url (line 706) | pub fn copy_album_url(&mut self) { method set_saved_tracks_to_table (line 737) | pub fn set_saved_tracks_to_table(&mut self, saved_track_page: &Page Option { method calculate_help_menu_offset (line 1184) | pub fn calculate_help_menu_offset(&mut self) { method default (line 330) | fn default() -> Self { FILE: src/banner.rs constant BANNER (line 1) | pub const BANNER: &str = " FILE: src/cli/clap.rs function device_arg (line 3) | fn device_arg() -> Arg<'static, 'static> { function format_arg (line 12) | fn format_arg() -> Arg<'static, 'static> { function playback_subcommand (line 26) | pub fn playback_subcommand() -> App<'static, 'static> { function play_subcommand (line 179) | pub fn play_subcommand() -> App<'static, 'static> { function list_subcommand (line 271) | pub fn list_subcommand() -> App<'static, 'static> { function search_subcommand (line 319) | pub fn search_subcommand() -> App<'static, 'static> { FILE: src/cli/cli_app.rs type CliApp (line 10) | pub struct CliApp<'a> { function new (line 20) | pub fn new(net: Network<'a>, config: UserConfig) -> Self { function is_a_saved_track (line 24) | async fn is_a_saved_track(&mut self, id: &str) -> bool { function format_output (line 35) | pub fn format_output(&self, mut format: String, values: Vec) -> ... function toggle_playback (line 47) | pub async fn toggle_playback(&mut self) { function share_track_or_episode (line 63) | pub async fn share_track_or_episode(&mut self) -> Result { function share_album_or_show (line 88) | pub async fn share_album_or_show(&mut self) -> Result { function set_device (line 112) | pub async fn set_device(&mut self, name: String) -> Result<()> { function update_query_limits (line 137) | pub async fn update_query_limits(&mut self, max: String) -> Result<()> { function volume (line 154) | pub async fn volume(&mut self, vol: String) -> Result<()> { function jump (line 172) | pub async fn jump(&mut self, d: &JumpDirection) { function list (line 180) | pub async fn list(&mut self, item: Type, format: &str) -> String { function transfer_playback (line 253) | pub async fn transfer_playback(&mut self, device: &str) -> Result<()> { function seek (line 276) | pub async fn seek(&mut self, seconds_str: String) -> Result<()> { function mark (line 339) | pub async fn mark(&mut self, flag: Flag) -> Result<()> { function get_status (line 393) | pub async fn get_status(&mut self, format: String) -> Result { function play_uri (line 451) | pub async fn play_uri(&mut self, uri: String, queue: bool, random: bool) { function play (line 503) | pub async fn play(&mut self, name: String, item: Type, queue: bool, rand... function query (line 566) | pub async fn query(&mut self, search: String, format: String, item: Type... FILE: src/cli/handle.rs function handle_matches (line 13) | pub async fn handle_matches( FILE: src/cli/util.rs type Type (line 14) | pub enum Type { method play_from_matches (line 25) | pub fn play_from_matches(m: &ArgMatches<'_>) -> Self { method search_from_matches (line 43) | pub fn search_from_matches(m: &ArgMatches<'_>) -> Self { method list_from_matches (line 61) | pub fn list_from_matches(m: &ArgMatches<'_>) -> Self { type Flag (line 80) | pub enum Flag { method from_matches (line 90) | pub fn from_matches(m: &ArgMatches<'_>) -> Vec { type JumpDirection (line 112) | pub enum JumpDirection { method from_matches (line 118) | pub fn from_matches(m: &ArgMatches<'_>) -> (Self, u64) { type FormatType (line 135) | pub enum FormatType { type Format (line 146) | pub enum Format { method from_type (line 171) | pub fn from_type(t: FormatType) -> Vec { method inner (line 207) | pub fn inner(&self, conf: UserConfig) -> String { method get_placeholder (line 258) | pub fn get_placeholder(&self) -> &str { function join_artists (line 162) | pub fn join_artists(a: Vec) -> String { FILE: src/config.rs constant DEFAULT_PORT (line 10) | const DEFAULT_PORT: u16 = 8888; constant FILE_NAME (line 11) | const FILE_NAME: &str = "client.yml"; constant CONFIG_DIR (line 12) | const CONFIG_DIR: &str = ".config"; constant APP_CONFIG_DIR (line 13) | const APP_CONFIG_DIR: &str = "spotify-tui"; constant TOKEN_CACHE_FILE (line 14) | const TOKEN_CACHE_FILE: &str = ".spotify_token_cache.json"; type ClientConfig (line 17) | pub struct ClientConfig { method new (line 31) | pub fn new() -> ClientConfig { method get_redirect_uri (line 40) | pub fn get_redirect_uri(&self) -> String { method get_port (line 44) | pub fn get_port(&self) -> u16 { method get_or_build_paths (line 48) | pub fn get_or_build_paths(&self) -> Result { method set_device_id (line 77) | pub fn set_device_id(&mut self, device_id: String) -> Result<()> { method load_config (line 91) | pub fn load_config(&mut self) -> Result<()> { method get_client_key_from_input (line 159) | fn get_client_key_from_input(type_label: &'static str) -> Result Result<()> { type ConfigPaths (line 25) | pub struct ConfigPaths { FILE: src/event/events.rs type EventConfig (line 7) | pub struct EventConfig { method default (line 15) | fn default() -> EventConfig { type Event (line 24) | pub enum Event { type Events (line 33) | pub struct Events { method new (line 41) | pub fn new(tick_rate: u64) -> Events { method with_config (line 49) | pub fn with_config(config: EventConfig) -> Events { method next (line 73) | pub fn next(&self) -> Result, mpsc::RecvError> { FILE: src/event/key.rs type Key (line 6) | pub enum Key { method from_f (line 78) | pub fn from_f(n: u8) -> Key { method fmt (line 99) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method from (line 124) | fn from(key_event: event::KeyEvent) -> Self { FILE: src/handlers/album_list.rs function handler (line 7) | pub fn handler(key: Key, app: &mut App) { function on_left_press (line 66) | fn on_left_press() { function on_esc (line 80) | fn on_esc() { FILE: src/handlers/album_tracks.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { function handle_high_event (line 109) | fn handle_high_event(app: &mut App) { function handle_middle_event (line 124) | fn handle_middle_event(app: &mut App) { function handle_low_event (line 143) | fn handle_low_event(app: &mut App) { function handle_recommended_tracks (line 162) | fn handle_recommended_tracks(app: &mut App) { function handle_save_event (line 200) | fn handle_save_event(app: &mut App) { function handle_save_album_event (line 232) | fn handle_save_album_event(app: &mut App) { function on_left_press (line 256) | fn on_left_press() { function on_esc (line 270) | fn on_esc() { FILE: src/handlers/analysis.rs function handler (line 3) | pub fn handler(_key: Key, _app: &mut App) {} FILE: src/handlers/artist.rs function handle_down_press_on_selected_block (line 6) | fn handle_down_press_on_selected_block(app: &mut App) { function handle_down_press_on_hovered_block (line 35) | fn handle_down_press_on_hovered_block(app: &mut App) { function handle_up_press_on_selected_block (line 52) | fn handle_up_press_on_selected_block(app: &mut App) { function handle_up_press_on_hovered_block (line 81) | fn handle_up_press_on_hovered_block(app: &mut App) { function handle_high_press_on_selected_block (line 98) | fn handle_high_press_on_selected_block(app: &mut App) { function handle_middle_press_on_selected_block (line 118) | fn handle_middle_press_on_selected_block(app: &mut App) { function handle_low_press_on_selected_block (line 138) | fn handle_low_press_on_selected_block(app: &mut App) { function handle_recommend_event_on_selected_block (line 158) | fn handle_recommend_event_on_selected_block(app: &mut App) { function handle_enter_event_on_selected_block (line 186) | fn handle_enter_event_on_selected_block(app: &mut App) { function handle_enter_event_on_hovered_block (line 224) | fn handle_enter_event_on_hovered_block(app: &mut App) { function handler (line 235) | pub fn handler(key: Key, app: &mut App) { function on_esc (line 328) | fn on_esc() { FILE: src/handlers/artist_albums.rs function handler (line 7) | pub fn handler(key: Key, app: &mut App) { function on_left_press (line 51) | fn on_left_press() { function on_esc (line 65) | fn on_esc() { FILE: src/handlers/artists.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/basic_view.rs function handler (line 4) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/common_key_events.rs function down_event (line 4) | pub fn down_event(key: Key) -> bool { function up_event (line 8) | pub fn up_event(key: Key) -> bool { function left_event (line 12) | pub fn left_event(key: Key) -> bool { function right_event (line 16) | pub fn right_event(key: Key) -> bool { function high_event (line 20) | pub fn high_event(key: Key) -> bool { function middle_event (line 24) | pub fn middle_event(key: Key) -> bool { function low_event (line 28) | pub fn low_event(key: Key) -> bool { function on_down_press_handler (line 32) | pub fn on_down_press_handler(selection_data: &[T], selection_index: O... function on_up_press_handler (line 49) | pub fn on_up_press_handler(selection_data: &[T], selection_index: Opt... function on_high_press_handler (line 65) | pub fn on_high_press_handler() -> usize { function on_middle_press_handler (line 69) | pub fn on_middle_press_handler(selection_data: &[T]) -> usize { function on_low_press_handler (line 77) | pub fn on_low_press_handler(selection_data: &[T]) -> usize { function handle_right_event (line 81) | pub fn handle_right_event(app: &mut App) { function handle_left_event (line 143) | pub fn handle_left_event(app: &mut App) { function test_on_down_press_handler (line 153) | fn test_on_down_press_handler() { function test_on_up_press_handler (line 168) | fn test_on_up_press_handler() { FILE: src/handlers/dialog.rs function handler (line 4) | pub fn handler(key: Key, app: &mut App) { function handle_playlist_dialog (line 27) | fn handle_playlist_dialog(app: &mut App) { function handle_playlist_search_dialog (line 31) | fn handle_playlist_search_dialog(app: &mut App) { FILE: src/handlers/empty.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { function on_enter (line 68) | fn on_enter() { function on_down_press (line 81) | fn on_down_press() { function on_up_press (line 96) | fn on_up_press() { function on_left_press (line 109) | fn on_left_press() { function on_right_press (line 130) | fn on_right_press() { FILE: src/handlers/episode_table.rs function handler (line 9) | pub fn handler(key: Key, app: &mut App) { function jump_to_end (line 60) | fn jump_to_end(app: &mut App) { function on_enter (line 67) | fn on_enter(app: &mut App) { function handle_prev_event (line 82) | fn handle_prev_event(app: &mut App) { function handle_next_event (line 86) | fn handle_next_event(app: &mut App) { function handle_follow_event (line 103) | fn handle_follow_event(app: &mut App) { function handle_unfollow_event (line 107) | fn handle_unfollow_event(app: &mut App) { function jump_to_start (line 111) | fn jump_to_start(app: &mut App) { function toggle_sort_by_date (line 115) | fn toggle_sort_by_date(app: &mut App) { FILE: src/handlers/error_screen.rs function handler (line 3) | pub fn handler(_key: Key, _app: &mut App) {} FILE: src/handlers/help_menu.rs type Direction (line 5) | enum Direction { function handler (line 10) | pub fn handler(key: Key, app: &mut App) { function move_page (line 28) | fn move_page(direction: Direction, app: &mut App) { FILE: src/handlers/home.rs constant LARGE_SCROLL (line 4) | const LARGE_SCROLL: u16 = 10; constant SMALL_SCROLL (line 5) | const SMALL_SCROLL: u16 = 1; function handler (line 7) | pub fn handler(key: Key, app: &mut App) { function on_small_down_press (line 37) | fn on_small_down_press() { function on_small_up_press (line 48) | fn on_small_up_press() { function on_large_down_press (line 67) | fn on_large_down_press() { function on_large_up_press (line 78) | fn on_large_up_press() { FILE: src/handlers/input.rs function handler (line 10) | pub fn handler(key: Key, app: &mut App) { function process_input (line 97) | fn process_input(app: &mut App, input: String) { function spotify_resource_id (line 117) | fn spotify_resource_id(base: &str, uri: &str, sep: &str, resource_type: ... function attempt_process_uri (line 130) | fn attempt_process_uri(app: &mut App, input: &str, base: &str, sep: &str... function compute_character_width (line 165) | fn compute_character_width(character: char) -> u16 { function str_to_vec_char (line 176) | fn str_to_vec_char(s: &str) -> Vec { function test_compute_character_width_with_multiple_characters (line 181) | fn test_compute_character_width_with_multiple_characters() { function test_input_handler_clear_input_on_ctrl_l (line 188) | fn test_input_handler_clear_input_on_ctrl_l() { function test_input_handler_ctrl_u (line 199) | fn test_input_handler_ctrl_u() { function test_input_handler_ctrl_k (line 214) | fn test_input_handler_ctrl_k() { function test_input_handler_ctrl_w (line 233) | fn test_input_handler_ctrl_w() { function test_input_handler_esc_back_to_playlist (line 272) | fn test_input_handler_esc_back_to_playlist() { function test_input_handler_on_enter_text (line 283) | fn test_input_handler_on_enter_text() { function test_input_handler_backspace (line 296) | fn test_input_handler_backspace() { function test_input_handler_delete (line 321) | fn test_input_handler_delete() { function test_input_handler_left_event (line 347) | fn test_input_handler_left_event() { function test_input_handler_on_enter_text_non_english_char (line 375) | fn test_input_handler_on_enter_text_non_english_char() { function test_input_handler_on_enter_text_wide_char (line 388) | fn test_input_handler_on_enter_text_wide_char() { constant URI_BASE (line 405) | const URI_BASE: &str = "spotify:"; constant URL_BASE (line 406) | const URL_BASE: &str = "https://open.spotify.com/"; function check_uri_parse (line 408) | fn check_uri_parse(expected_id: &str, parsed: (String, bool)) { function run_test_for_id_and_resource_type (line 413) | fn run_test_for_id_and_resource_type(id: &str, resource_type: &str) { function artist (line 435) | fn artist() { function album (line 441) | fn album() { function playlist (line 447) | fn playlist() { function show (line 453) | fn show() { function track (line 459) | fn track() { function invalid_format_doesnt_match (line 465) | fn invalid_format_doesnt_match() { function parse_with_query_parameters (line 480) | fn parse_with_query_parameters() { function mismatched_resource_types_do_not_match (line 499) | fn mismatched_resource_types_do_not_match() { FILE: src/handlers/library.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/made_for_you.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/mod.rs function handle_app (line 32) | pub fn handle_app(key: Key, app: &mut App) { function handle_block_events (line 102) | fn handle_block_events(key: Key, app: &mut App) { function handle_escape (line 174) | fn handle_escape(app: &mut App) { function handle_jump_to_context (line 198) | fn handle_jump_to_context(app: &mut App) { function handle_jump_to_album (line 213) | fn handle_jump_to_album(app: &mut App) { function handle_jump_to_artist_album (line 230) | fn handle_jump_to_artist_album(app: &mut App) { FILE: src/handlers/playbar.rs function handler (line 9) | pub fn handler(key: Key, app: &mut App) { function on_left_press (line 40) | fn on_left_press() { FILE: src/handlers/playlist.rs function handler (line 9) | pub fn handler(key: Key, app: &mut App) { function test (line 94) | fn test() {} FILE: src/handlers/podcasts.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/recently_played.rs function handler (line 4) | pub fn handler(key: Key, app: &mut App) { function on_left_press (line 97) | fn on_left_press() { function on_esc (line 111) | fn on_esc() { FILE: src/handlers/search_results.rs function handle_down_press_on_selected_block (line 11) | fn handle_down_press_on_selected_block(app: &mut App) { function handle_down_press_on_hovered_block (line 63) | fn handle_down_press_on_hovered_block(app: &mut App) { function handle_up_press_on_selected_block (line 84) | fn handle_up_press_on_selected_block(app: &mut App) { function handle_up_press_on_hovered_block (line 136) | fn handle_up_press_on_hovered_block(app: &mut App) { function handle_high_press_on_selected_block (line 157) | fn handle_high_press_on_selected_block(app: &mut App) { function handle_middle_press_on_selected_block (line 193) | fn handle_middle_press_on_selected_block(app: &mut App) { function handle_low_press_on_selected_block (line 229) | fn handle_low_press_on_selected_block(app: &mut App) { function handle_add_item_to_queue (line 265) | fn handle_add_item_to_queue(app: &mut App) { function handle_enter_event_on_selected_block (line 286) | fn handle_enter_event_on_selected_block(app: &mut App) { function handle_enter_event_on_hovered_block (line 349) | fn handle_enter_event_on_hovered_block(app: &mut App) { function handle_recommended_tracks (line 385) | fn handle_recommended_tracks(app: &mut App) { function handler (line 420) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/select_device.rs function handler (line 8) | pub fn handler(key: Key, app: &mut App) { FILE: src/handlers/track_table.rs function handler (line 10) | pub fn handler(key: Key, app: &mut App) { function play_random_song (line 157) | fn play_random_song(app: &mut App) { function handle_save_track_event (line 256) | fn handle_save_track_event(app: &mut App) { function handle_recommended_tracks (line 266) | fn handle_recommended_tracks(app: &mut App) { function jump_to_end (line 278) | fn jump_to_end(app: &mut App) { function on_enter (line 311) | fn on_enter(app: &mut App) { function on_queue (line 417) | fn on_queue(app: &mut App) { function jump_to_start (line 468) | fn jump_to_start(app: &mut App) { FILE: src/main.rs constant SCOPES (line 51) | const SCOPES: [&str; 14] = [ function get_token_auto (line 69) | pub async fn get_token_auto(spotify_oauth: &mut SpotifyOAuth, port: u16)... function close_application (line 88) | fn close_application() -> Result<()> { function panic_hook (line 95) | fn panic_hook(info: &PanicInfo<'_>) { function main (line 124) | async fn main() -> Result<()> { function start_tokio (line 261) | async fn start_tokio<'a>(io_rx: std::sync::mpsc::Receiver, netw... function start_ui (line 267) | async fn start_ui(user_config: UserConfig, app: &Arc>) -> Res... FILE: src/network.rs type IoEvent (line 35) | pub enum IoEvent { function get_spotify (line 93) | pub fn get_spotify(token_info: TokenInfo) -> (Spotify, SystemTime) { type Network (line 117) | pub struct Network<'a> { function new (line 127) | pub fn new( function handle_network_event (line 144) | pub async fn handle_network_event(&mut self, io_event: IoEvent) { function handle_error (line 311) | async fn handle_error(&mut self, e: anyhow::Error) { function get_user (line 316) | async fn get_user(&mut self) { function get_devices (line 328) | async fn get_devices(&mut self) { function get_current_playback (line 340) | async fn get_current_playback(&mut self) { function current_user_saved_tracks_contains (line 380) | async fn current_user_saved_tracks_contains(&mut self, ids: Vec) { function get_playlist_tracks (line 403) | async fn get_playlist_tracks(&mut self, playlist_id: String, playlist_of... function set_playlist_tracks_to_table (line 424) | async fn set_playlist_tracks_to_table(&mut self, playlist_track_page: &P... function set_tracks_to_table (line 437) | async fn set_tracks_to_table(&mut self, tracks: Vec) { function set_artists_to_table (line 450) | async fn set_artists_to_table(&mut self, artists: Vec) { function get_made_for_you_playlist_tracks (line 455) | async fn get_made_for_you_playlist_tracks( function get_current_user_saved_shows (line 484) | async fn get_current_user_saved_shows(&mut self, offset: Option) { function current_user_saved_shows_contains (line 503) | async fn current_user_saved_shows_contains(&mut self, show_ids: Vec) { function get_show (line 545) | async fn get_show(&mut self, show_id: String) { function get_current_show_episodes (line 563) | async fn get_current_show_episodes(&mut self, show_id: String, offset: O... function get_search_results (line 581) | async fn get_search_results(&mut self, search_term: String, country: Opt... function get_current_user_saved_tracks (line 684) | async fn get_current_user_saved_tracks(&mut self, offset: Option) { function start_playback (line 714) | async fn start_playback( function seek (line 762) | async fn seek(&mut self, position_ms: u32) { function next_track (line 782) | async fn next_track(&mut self) { function previous_track (line 797) | async fn previous_track(&mut self) { function shuffle (line 812) | async fn shuffle(&mut self, shuffle_state: bool) { function repeat (line 832) | async fn repeat(&mut self, repeat_state: RepeatState) { function pause_playback (line 855) | async fn pause_playback(&mut self) { function change_volume (line 870) | async fn change_volume(&mut self, volume_percent: u8) { function get_artist (line 888) | async fn get_artist( function get_album_tracks (line 940) | async fn get_album_tracks(&mut self, album: Box) { function get_recommendations_for_seed (line 972) | async fn get_recommendations_for_seed( function extract_recommended_tracks (line 1024) | async fn extract_recommended_tracks( function get_recommendations_for_track_id (line 1045) | async fn get_recommendations_for_track_id(&mut self, id: String, country... function toggle_save_track (line 1054) | async fn toggle_save_track(&mut self, track_id: String) { function get_followed_artists (line 1098) | async fn get_followed_artists(&mut self, after: Option) { function user_artist_check_follow (line 1115) | async fn user_artist_check_follow(&mut self, artist_ids: Vec) { function get_current_user_saved_albums (line 1128) | async fn get_current_user_saved_albums(&mut self, offset: Option) { function current_user_saved_albums_contains (line 1147) | async fn current_user_saved_albums_contains(&mut self, album_ids: Vec) { function user_follow_artists (line 1240) | async fn user_follow_artists(&mut self, artist_ids: Vec) { function user_follow_playlist (line 1255) | async fn user_follow_playlist( function user_unfollow_playlist (line 1275) | async fn user_unfollow_playlist(&mut self, user_id: String, playlist_id:... function made_for_you_search_and_add (line 1290) | async fn made_for_you_search_and_add(&mut self, search_string: String, c... function get_audio_analysis (line 1337) | async fn get_audio_analysis(&mut self, uri: String) { function get_current_user_playlists (line 1349) | async fn get_current_user_playlists(&mut self) { function get_recently_played (line 1368) | async fn get_recently_played(&mut self) { function get_album (line 1393) | async fn get_album(&mut self, album_id: String) { function get_album_for_track (line 1413) | async fn get_album_for_track(&mut self, track_id: String) { function transfert_playback_to_device (line 1446) | async fn transfert_playback_to_device(&mut self, device_id: String) { function refresh_authentication (line 1468) | async fn refresh_authentication(&mut self) { function add_item_to_queue (line 1480) | async fn add_item_to_queue(&mut self, item: String) { FILE: src/redirect_uri.rs function redirect_uri_web_server (line 7) | pub fn redirect_uri_web_server(spotify_oauth: &mut SpotifyOAuth, port: u... function handle_connection (line 35) | fn handle_connection(mut stream: TcpStream) -> Option { function respond_with_success (line 60) | fn respond_with_success(mut stream: TcpStream) { function respond_with_error (line 69) | fn respond_with_error(error_message: String, mut stream: TcpStream) { FILE: src/ui/audio_analysis.rs constant PITCHES (line 11) | const PITCHES: [&str; 12] = [ function draw (line 15) | pub fn draw(f: &mut Frame, app: &App) FILE: src/ui/help.rs function get_help_docs (line 3) | pub fn get_help_docs(key_bindings: &KeyBindings) -> Vec> { FILE: src/ui/mod.rs type TableId (line 29) | pub enum TableId { type ColumnId (line 41) | pub enum ColumnId { method default (line 48) | fn default() -> Self { type TableHeader (line 53) | pub struct TableHeader<'a> { function get_index (line 59) | pub fn get_index(&self, id: ColumnId) -> Option { type TableHeaderItem (line 65) | pub struct TableHeaderItem<'a> { type TableItem (line 71) | pub struct TableItem { function draw_help_menu (line 76) | pub fn draw_help_menu(f: &mut Frame, app: &App) function draw_input_and_help_box (line 123) | pub fn draw_input_and_help_box(f: &mut Frame, app: &App, layout_ch... function draw_main_layout (line 179) | pub fn draw_main_layout(f: &mut Frame, app: &App) function draw_routes (line 225) | pub fn draw_routes(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_library_block (line 283) | pub fn draw_library_block(f: &mut Frame, app: &App, layout_chunk: ... function draw_playlist_block (line 303) | pub fn draw_playlist_block(f: &mut Frame, app: &App, layout_chunk:... function draw_user_block (line 330) | pub fn draw_user_block(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_search_results (line 364) | pub fn draw_search_results(f: &mut Frame, app: &App, layout_chunk:... type AlbumUi (line 547) | struct AlbumUi { function draw_artist_table (line 553) | pub fn draw_artist_table(f: &mut Frame, app: &App, layout_chunk: R... function draw_podcast_table (line 591) | pub fn draw_podcast_table(f: &mut Frame, app: &App, layout_chunk: ... function draw_album_table (line 643) | pub fn draw_album_table(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_recommendations_table (line 755) | pub fn draw_recommendations_table(f: &mut Frame, app: &App, layout... function draw_song_table (line 834) | pub fn draw_song_table(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_basic_view (line 902) | pub fn draw_basic_view(f: &mut Frame, app: &App) function draw_playbar (line 925) | pub fn draw_playbar(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_error_screen (line 1060) | pub fn draw_error_screen(f: &mut Frame, app: &App) function draw_home (line 1121) | fn draw_home(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_artist_albums (line 1182) | fn draw_artist_albums(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_device_list (line 1286) | pub fn draw_device_list(f: &mut Frame, app: &App) function draw_album_list (line 1354) | pub fn draw_album_list(f: &mut Frame, app: &App, layout_chunk: Rect) function draw_show_episodes (line 1418) | pub fn draw_show_episodes(f: &mut Frame, app: &App, layout_chunk: ... function draw_made_for_you (line 1529) | pub fn draw_made_for_you(f: &mut Frame, app: &App, layout_chunk: R... function draw_recently_played_table (line 1570) | pub fn draw_recently_played_table(f: &mut Frame, app: &App, layout... function draw_selectable_list (line 1637) | fn draw_selectable_list( function draw_dialog (line 1675) | fn draw_dialog(f: &mut Frame, app: &App) function draw_table (line 1752) | fn draw_table( FILE: src/ui/util.rs constant BASIC_VIEW_HEIGHT (line 6) | pub const BASIC_VIEW_HEIGHT: u16 = 6; constant SMALL_TERMINAL_WIDTH (line 7) | pub const SMALL_TERMINAL_WIDTH: u16 = 150; constant SMALL_TERMINAL_HEIGHT (line 8) | pub const SMALL_TERMINAL_HEIGHT: u16 = 45; function get_search_results_highlight_state (line 10) | pub fn get_search_results_highlight_state( function get_artist_highlight_state (line 22) | pub fn get_artist_highlight_state(app: &App, block_to_match: ArtistBlock... function get_color (line 34) | pub fn get_color((is_active, is_hovered): (bool, bool), theme: Theme) ->... function create_artist_string (line 42) | pub fn create_artist_string(artists: &[SimplifiedArtist]) -> String { function millis_to_minutes (line 50) | pub fn millis_to_minutes(millis: u128) -> String { function display_track_progress (line 66) | pub fn display_track_progress(progress: u128, track_duration: u32) -> St... function get_percentage_width (line 75) | pub fn get_percentage_width(width: u16, percentage: f32) -> u16 { function get_track_progress_percentage (line 82) | pub fn get_track_progress_percentage(song_progress_ms: u128, track_durat... function get_main_layout_margin (line 90) | pub fn get_main_layout_margin(app: &App) -> u16 { function millis_to_minutes_test (line 103) | fn millis_to_minutes_test() { function display_track_progress_test (line 113) | fn display_track_progress_test() { function get_track_progress_percentage_test (line 126) | fn get_track_progress_percentage_test() { FILE: src/user_config.rs constant FILE_NAME (line 10) | const FILE_NAME: &str = "config.yml"; constant CONFIG_DIR (line 11) | const CONFIG_DIR: &str = ".config"; constant APP_CONFIG_DIR (line 12) | const APP_CONFIG_DIR: &str = "spotify-tui"; type UserTheme (line 15) | pub struct UserTheme { type Theme (line 33) | pub struct Theme { method default (line 53) | fn default() -> Self { function parse_key (line 75) | fn parse_key(key: String) -> Result { function check_reserved_keys (line 115) | fn check_reserved_keys(key: Key) -> Result<()> { type UserConfigPaths (line 144) | pub struct UserConfigPaths { type KeyBindingsString (line 149) | pub struct KeyBindingsString { type KeyBindings (line 179) | pub struct KeyBindings { type BehaviorConfigString (line 209) | pub struct BehaviorConfigString { type BehaviorConfig (line 226) | pub struct BehaviorConfig { type UserConfigString (line 243) | pub struct UserConfigString { type UserConfig (line 250) | pub struct UserConfig { method new (line 258) | pub fn new() -> UserConfig { method get_or_build_paths (line 308) | pub fn get_or_build_paths(&mut self) -> Result<()> { method load_keybindings (line 335) | pub fn load_keybindings(&mut self, keybindings: KeyBindingsString) -> ... method load_theme (line 375) | pub fn load_theme(&mut self, theme: UserTheme) -> Result<()> { method load_behaviorconfig (line 401) | pub fn load_behaviorconfig(&mut self, behavior_config: BehaviorConfigS... method load_config (line 467) | pub fn load_config(&mut self) -> Result<()> { method padded_liked_icon (line 501) | pub fn padded_liked_icon(&self) -> String { function parse_theme_item (line 506) | fn parse_theme_item(theme_item: &str) -> Result { function test_parse_key (line 546) | fn test_parse_key() { function parse_theme_item_test (line 559) | fn parse_theme_item_test() { function test_reserved_key (line 589) | fn test_reserved_key() { FILE: src/util.rs type Event (line 4) | pub enum Event { type Events (line 11) | pub struct Events { method new (line 31) | pub fn new() -> Events { method with_config (line 35) | pub fn with_config(config: Config) -> Events { method next (line 68) | pub fn next(&self) -> Result, mpsc::RecvError> { type Config (line 16) | pub struct Config { method default (line 22) | fn default() -> Config {