mirror of
https://github.com/RustAudio/rodio
synced 2024-11-10 14:14:21 +00:00
No description
edc60950b6
Implementing the Display trait on a type, and calling self.to_string() in its implementation results in infinite recursion. The default implementation of ToString for sized types that implement Display relies on the Display trait in its implementation. Consequently, calling `self.to_string()` in the implementation of Display leads to infinite recursion. This failure has been directly observed on the DecoderError type, and the fix here is to move the logic for rendering the error as text out of `Error::description()` and into `impl Display`. As it stands, the `Error` trait provides a default implementation for `description()` based on the `Display` trait if provided, so this is a simple, clean change. The failure is presumed to exist for Mp4Type, as it follows a similar pattern of invoking `self.to_string()` in the `Display` implementation. The solution there is basically to reverse the logic for `from_str()`. |
||
---|---|---|
.github/workflows | ||
examples | ||
src | ||
tests | ||
.gitignore | ||
.rustfmt.toml | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
Audio playback library
Rust playback library.
- Playback is handled by cpal.
- MP3 decoding is handled by minimp3.
- WAV decoding is handled by hound.
- Vorbis decoding is handled by lewton.
- Flac decoding is handled by claxon.
- MP4 and AAC (both disabled by default) are handled by Symphonia.
Alternatively, Symphonia can be used to decode any of the other codecs above with the exception of Vorbis. See the docs for more details on backends.
Documentation
The documentation contains an introduction to the library.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0), or
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
License of your contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.