SYMBOL INDEX (76 symbols across 10 files) FILE: feather/build.rs function main (line 1) | fn main() { FILE: feather/src/database.rs type HistoryEntry (line 11) | pub struct HistoryEntry { method new (line 20) | pub fn new( type HistoryDB (line 36) | pub struct HistoryDB { method new (line 52) | pub fn new() -> Result { method add_entry (line 67) | pub fn add_entry(&self, entry: &HistoryEntry) -> Result<(), HistoryErr... method limit_history_size (line 77) | pub fn limit_history_size(&self, max_size: usize) -> Result<(), Histor... method get_history (line 87) | pub fn get_history(&self) -> Result, HistoryError> { method delete_entry (line 100) | pub fn delete_entry(&self, song_id: &str) -> Result<(), HistoryError> { method clear_history (line 106) | pub fn clear_history(&self) -> Result<(), HistoryError> { method get_last_played_song (line 112) | pub fn get_last_played_song(&self) -> Result, HistoryEr... type HistoryError (line 42) | pub enum HistoryError { FILE: feather/src/lib.rs type ArtistName (line 6) | pub type ArtistName = String; type SongName (line 7) | pub type SongName = String; type SongId (line 8) | pub type SongId = String; type SongUrl (line 9) | pub type SongUrl = String; type PlaylistName (line 10) | pub type PlaylistName = String; type PlaylistId (line 11) | pub type PlaylistId = String; type ChannelName (line 12) | pub type ChannelName = String; FILE: feather/src/player.rs type Player (line 7) | pub struct Player { method new (line 31) | pub fn new(cookies: Option) -> Result { method play (line 63) | pub fn play(&self, url: &str) -> Result<(), MpvError> { method pause (line 72) | pub fn pause(&self) -> Result<(), MpvError> { method unpause (line 78) | pub fn unpause(&self) -> Result<(), MpvError> { method play_pause (line 84) | pub fn play_pause(&self) -> Result<(), MpvError> { method seek_forward (line 94) | pub fn seek_forward(&self) -> Result<(), MpvError> { method seek_backword (line 100) | pub fn seek_backword(&self) -> Result<(), MpvError> { method get_current_time (line 106) | pub fn get_current_time(&self) -> String { method duration (line 114) | pub fn duration(&self) -> String { method is_playing (line 122) | pub fn is_playing(&self) -> Result { type MpvError (line 14) | pub enum MpvError { FILE: feather/src/yt.rs type YoutubeClient (line 11) | pub struct YoutubeClient { method new (line 17) | pub fn new() -> Self { method search (line 28) | pub async fn search( method fetch_song_url (line 52) | pub async fn fetch_song_url(&self, id: &SongId) -> Result, cookies: Option) -> Result... method play_music (line 93) | pub async fn play_music(&self, song: Song) -> Result<(), BackendError> { type Song (line 24) | pub struct Song { method new (line 40) | pub fn new(song_name: SongName, song_id: SongId, artist_name: Vec Self { type BackendError (line 51) | pub enum BackendError { FILE: feather_frontend/src/history.rs type History (line 15) | pub struct History { method new (line 27) | pub fn new( method handle_keystrokes (line 44) | pub fn handle_keystrokes(&mut self, key: KeyEvent) { method select_next (line 78) | fn select_next(&mut self) { method select_previous (line 86) | fn select_previous(&mut self) { method render (line 92) | pub fn render(&mut self, area: Rect, buf: &mut Buffer) { FILE: feather_frontend/src/main.rs function main (line 19) | async fn main() -> Result<()> { type State (line 29) | enum State { type App (line 40) | struct App<'a> { function new (line 55) | fn new() -> Self { function handle_global_keystrokes (line 76) | fn handle_global_keystrokes(&mut self, key: KeyEvent) { function render (line 114) | async fn render(mut self, mut terminal: DefaultTerminal) { type TopBar (line 208) | struct TopBar; method new (line 211) | fn new() -> Self { method render (line 214) | fn render(&mut self, area: Rect, buf: &mut Buffer, state: &State) { type UserPlaylist (line 224) | struct UserPlaylist {} type CurrentPlayingPlaylist (line 227) | struct CurrentPlayingPlaylist {} FILE: feather_frontend/src/player.rs type SongState (line 13) | enum SongState { type SongDetails (line 21) | pub struct SongDetails { type SongPlayer (line 27) | pub struct SongPlayer { method new (line 35) | pub fn new(backend: Arc, rx: mpsc::Receiver) -> Self { method observe_time (line 47) | fn observe_time(&self) { method handle_keystrokes (line 72) | pub fn handle_keystrokes(&mut self, key: KeyEvent) { method check_playing (line 95) | fn check_playing(&mut self) { method render (line 160) | pub fn render(&mut self, area: Rect, buf: &mut Buffer) { FILE: feather_frontend/src/search.rs type SearchState (line 22) | enum SearchState { type Search (line 27) | pub struct Search<'a> { function new (line 45) | pub fn new(backend: Arc, tx_player: mpsc::Sender) -> Self { function handle_keystrokes (line 65) | pub fn handle_keystrokes(&mut self, key: KeyEvent) { function change_state (line 136) | pub fn change_state(&mut self) { function render (line 144) | pub fn render(&mut self, area: Rect, buf: &mut Buffer) {