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 {
match self {
Mode::Ber => true,
_ => false,
}
}
pub fn is_cer(self) -> bool {
match self {
Mode::Cer => true,
_ => false
}
}
pub fn is_der(self) -> bool {
match self {
Mode::Der => true,
_ => false
}
}
}
impl Default for Mode {
fn default() -> Self {
Mode::Ber
}
}