1use crate::ber::EncodingRules;
2
3#[derive(Clone, Copy, Debug)]
5pub struct DecoderOptions {
6 pub(crate) encoding_rules: EncodingRules,
7}
8
9impl DecoderOptions {
10 #[must_use]
12 pub const fn ber() -> Self {
13 Self {
14 encoding_rules: EncodingRules::Ber,
15 }
16 }
17
18 #[must_use]
20 pub const fn cer() -> Self {
21 Self {
22 encoding_rules: EncodingRules::Cer,
23 }
24 }
25
26 #[must_use]
28 pub const fn der() -> Self {
29 Self {
30 encoding_rules: EncodingRules::Der,
31 }
32 }
33
34 #[must_use]
36 pub fn current_codec(&self) -> crate::Codec {
37 match self.encoding_rules {
38 EncodingRules::Ber => crate::Codec::Ber,
39 EncodingRules::Cer => crate::Codec::Cer,
40 EncodingRules::Der => crate::Codec::Der,
41 }
42 }
43}