#[cfg(feature = "flac")]
use flac_sys::{FLAC__StreamEncoderState, FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OK, FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_UNINITIALIZED,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OGG_ERROR, FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA, FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_CLIENT_ERROR,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_IO_ERROR, FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_FRAMING_ERROR,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR};
#[cfg(feature = "libflac-nobuild")]
use libflac_sys::{FLAC__StreamEncoderState,
FLAC__STREAM_ENCODER_OK as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OK,
FLAC__STREAM_ENCODER_UNINITIALIZED as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_UNINITIALIZED,
FLAC__STREAM_ENCODER_OGG_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OGG_ERROR,
FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR,
FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA,
FLAC__STREAM_ENCODER_CLIENT_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_CLIENT_ERROR,
FLAC__STREAM_ENCODER_IO_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_IO_ERROR,
FLAC__STREAM_ENCODER_FRAMING_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_FRAMING_ERROR,
FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR as FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR};
use std::convert::TryFrom;
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord)]
#[repr(u32)]
pub enum FlacEncoderState {
Ok = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OK,
Uninitialized = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_UNINITIALIZED,
OggError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OGG_ERROR,
VerifyDecoderError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR,
VerifyMismatchInAudioData = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA,
ClientError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_CLIENT_ERROR,
IoError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_IO_ERROR,
FramingError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_FRAMING_ERROR,
MemoryAllocationError = FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR,
}
impl Into<FLAC__StreamEncoderState> for FlacEncoderState {
fn into(self) -> FLAC__StreamEncoderState {
self as FLAC__StreamEncoderState
}
}
impl TryFrom<FLAC__StreamEncoderState> for FlacEncoderState {
type Error = ();
#[allow(non_upper_case_globals)]
fn try_from(raw: FLAC__StreamEncoderState) -> Result<FlacEncoderState, ()> {
Ok(match raw {
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OK => FlacEncoderState::Ok,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_UNINITIALIZED => FlacEncoderState::Uninitialized,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_OGG_ERROR => FlacEncoderState::OggError,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR => FlacEncoderState::VerifyDecoderError,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA => FlacEncoderState::VerifyMismatchInAudioData,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_CLIENT_ERROR => FlacEncoderState::ClientError,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_IO_ERROR => FlacEncoderState::IoError,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_FRAMING_ERROR => FlacEncoderState::FramingError,
FLAC__StreamEncoderState_FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR => FlacEncoderState::MemoryAllocationError,
_ => return Err(()),
})
}
}