use crate::error::Result;
use crate::types::{Metadata, PlaybackStatus};

pub trait MediaPlayer {
    fn play(&self) -> Result<()>;
    fn pause(&self) -> Result<()>;
    fn play_pause(&self) -> Result<()>;
    fn stop(&self) -> Result<()>;
    fn next(&self) -> Result<()>;
    fn previous(&self) -> Result<()>;
    fn status(&self) -> Result<PlaybackStatus>;
    fn metadata(&self) -> Result<Metadata>;
}
