discid 0.5.0

Bindings for MusicBrainz libdiscid
Documentation
# Rust bindings for MusicBrainz libdiscid
[![crates.io](https://img.shields.io/crates/v/discid.svg)](https://crates.io/crates/discid)
[![Documentation](https://docs.rs/discid/badge.svg)](https://docs.rs/discid)
[![License](https://img.shields.io/crates/l/discid.svg)](https://crates.io/crates/discid)
[![builds.sr.ht status](https://builds.sr.ht/~phw/rust-discid/commits/main/.svg)](https://builds.sr.ht/~phw/rust-discid/commits/main/?)

## About
discid provides Rust bindings for the MusicBrainz DiscID library [libdiscid](http://musicbrainz.org/doc/libdiscid).
It allows calculating DiscIDs (MusicBrainz and freedb) for Audio CDs. Additionally
the library can extract the MCN/UPC/EAN and the ISRCs from disc.

## Requirements
- libdiscid >= 0.6.0

## Usage

### Read only the TOC

```rust no_run
use discid::DiscId;

fn main() {
  // Specifying the device is optional. If set to `None` a platform
  // specific default will be used.
  let device = Some("/dev/cdrom");
  let disc = DiscId::read(device).expect("Reading disc failed");
  println!("ID: {}", disc.id());
}
```

### Read the TOC and ISRCs

```rust no_run
use discid::{DiscId, Features};

fn main() {
  let disc = DiscId::read_features(None, Features::ISRC).expect("Reading disc failed");
  println!("Disc ID: {}", disc.id());

  for track in disc.tracks() {
    println!("Track #{} ISRC: {}", track.number, track.isrc);
  }
}
```

See the [API documentation](https://docs.rs/discid) for details.
Additional examples are available in the
[examples/](https://git.sr.ht/~phw/rust-discid/tree/main/item/examples) directory.

## Contribute
The source code for rust-discid is available on
[SourceHut](https://git.sr.ht/~phw/rust-discid).

Please report any issues on the
[issue tracker](https://todo.sr.ht/~phw/discid-bindings).

Patches can be submitted to the [mailing list](https://lists.sr.ht/~phw/musicbrainz).
You can clone the repository directly on SourceHut and submit your changes
with the "Prepare patchset" button. Please see SourceHut's
[documentation for sending patches upstream](https://man.sr.ht/git.sr.ht/#sending-patches-upstream)
for details.

## License
rust-discid Copyright (c) 2019-2023 by Philipp Wolfer <ph.wolfer@gmail.com>

rust-discid is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

See [LICENSE](./LICENSE) for details.