use crate::decode;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum Mode {
Ber,
Cer,
Der,
}
impl Mode {
pub fn decode<S, F, T>(self, source: S, op: F) -> Result<T, S::Err>
where
S: decode::Source,
F: FnOnce(&mut decode::Constructed<S>) -> Result<T, S::Err>
{
decode::Constructed::decode(source, self, op)
}
pub fn is_ber(self) -> bool {
matches!(self, Mode::Ber)
}
pub fn is_cer(self) -> bool {
matches!(self, Mode::Cer)
}
pub fn is_der(self) -> bool {
matches!(self, Mode::Der)
}
}
impl Default for Mode {
fn default() -> Self {
Mode::Ber
}
}