Crate async_mpd[][src]

Expand description

crates.io version docs.rs

async-mpd

Runtime agnostic Mpd client library for Rust

Example:

use tokio as runtime;
// For async-std instead
//use async_std as runtime;
use async_mpd::{MpdClient, cmd};

#[runtime::main]
async fn main() -> Result<(), async_mpd::Error> {
    // Connect to server
    let mut mpd = MpdClient::new();
    mpd.connect("localhost:6600").await?;

    // Get all tracks in the play queue and display them
    let queue = mpd.queue().await?;
    for track in queue {
        println!("{:?} - {:?}", track.artist, track.title);
    }

    // Play track nr 2 in the queue
    mpd.playid(2).await?;

    // Get and print the current server status using the command api
    let status = mpd.exec(cmd::Status).await?;
    println!("{:?}", status);

    // Set the volume to 50%
    mpd.setvol(50).await?;

    Ok(())
}

Modules

MPD commands

Structs

Directory on the server

Abstraction over search filter

Mpd Client

Playlist on the server

Mpd database statistics

Mpd status response

Track

Enums

Error

Filter expression used by search function

Player status

Subsystem

Track tags

A Enum-wrapped response

Traits

Response Handler for Cmd