use crate::ber::EncodingRules;
#[derive(Clone, Copy, Debug)]
pub struct DecoderOptions {
pub(crate) encoding_rules: EncodingRules,
pub(crate) remaining_depth: usize,
}
impl DecoderOptions {
#[must_use]
pub const fn ber() -> Self {
Self {
encoding_rules: EncodingRules::Ber,
remaining_depth: 128,
}
}
#[must_use]
pub const fn cer() -> Self {
Self {
encoding_rules: EncodingRules::Cer,
remaining_depth: 128,
}
}
#[must_use]
pub const fn der() -> Self {
Self {
encoding_rules: EncodingRules::Der,
remaining_depth: 128,
}
}
#[must_use]
pub fn current_codec(&self) -> crate::Codec {
match self.encoding_rules {
EncodingRules::Ber => crate::Codec::Ber,
EncodingRules::Cer => crate::Codec::Cer,
EncodingRules::Der => crate::Codec::Der,
}
}
}