Crate async_mpd

Source
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§

cmd
MPD commands

Structs§

DatabaseVersion
Directory
Directory on the server
Filter
Abstraction over search filter
MpdClient
Mpd Client
Playlist
Playlist on the server
Stats
Mpd database statistics
Status
Mpd status response
Track
Track

Enums§

Error
Error
FilterExpr
Filter expression used by search function
State
Player status
Subsystem
Subsystem
Tag
Track tags
WrappedResponse
A Enum-wrapped response

Traits§

ResponseHandler
Response Handler for Cmd
ToFilterExpr