Skip to main content

selene_core/codec/
trait_impls.rs

1use std::str::FromStr;
2
3use crate::{codec::Codec, errors::CodecError};
4
5impl FromStr for Codec {
6    type Err = CodecError;
7
8    fn from_str(s: &str) -> Result<Self, Self::Err> {
9        match s {
10            "flac" => Ok(Codec::Flac),
11            "mp3" => Ok(Codec::Mp3),
12            "opus" => Ok(Codec::LibOpus),
13            "vorbis" => Ok(Codec::LibVorbis),
14            "pcm_s16le" => Ok(Codec::Pcms16le),
15            "pcm_s24le" => Ok(Codec::Pcms24le),
16            "pcm_s32le" => Ok(Codec::Pcms32le),
17            "pcm_f32le" => Ok(Codec::Pcmf32le),
18            _ => Err(CodecError::Unknown(s.to_owned())),
19        }
20    }
21}