Crate musicbrainz_rs

Crate musicbrainz_rs 

Source
Expand description

MusicBrainz rust is a utility crate for the the MusicBrainz API. It strives to provide a simple and easy to use API to query the Musicbrainz database.

All query are performed via a builder pattern fashioned syntax on musicbrainz entities available in the entity module.

§Example

The most simple usage would be to lookup an entity, knowing its Musicbrainz ID.

use musicbrainz_rs::entity::artist::Artist;
use musicbrainz_rs::prelude::*;

#[tokio::main]
async fn main() -> Result<(), Error> {

   let nirvana = Artist::fetch()
       .id("5b11f4ce-a62d-471e-81fc-a69a8278c7da")
       .execute()
        .await;

   assert_eq!(nirvana?.name, "Nirvana".to_string());
   Ok(())
}
fn main() -> Result<(), Error> {

   let nirvana = Artist::fetch()
       .id("5b11f4ce-a62d-471e-81fc-a69a8278c7da")
       .execute();

   assert_eq!(nirvana?.name, "Nirvana".to_string());
   Ok(())
}

Note that you need to either directly to bring the Fetch trait in scope or use the prelude module to make the fetch method accessible.

Re-exports§

pub use crate::api::api_request::ApiRequest;
pub use crate::api::browse_query::Browse;
pub use crate::api::browse_query::BrowseQuery;
pub use crate::api::coverart_query::FetchCoverart;
pub use crate::api::coverart_query::FetchCoverartQuery;
pub use crate::api::fetch_query::Fetch;
pub use crate::api::fetch_query::FetchQuery;
pub use crate::api::search_query::Search;
pub use crate::api::search_query::SearchQuery;
pub use crate::client::MusicBrainzClient;
pub use crate::error::Error;

Modules§

api
All the configurations for API queries / fetching
chrono
Chrono Re-export
client
Configure the HTTP client global state
config
Configure the HTTP client global state
entity
All Musicbrainz entities
error
Crate errors;
extra_endpoints
fetching
prelude
Brings trait and type needed to perform any API query in scope

Traits§

APIPath
Provide the entity HTTP api path, do not use this trait directly