1use crate::ber::EncodingRules;
2
3#[derive(Clone, Copy, Debug)]
5pub struct EncoderOptions {
6 pub(crate) encoding_rules: EncodingRules,
7}
8
9impl EncoderOptions {
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 #[must_use]
34 pub fn current_codec(&self) -> crate::Codec {
35 match self.encoding_rules {
36 EncodingRules::Ber => crate::Codec::Ber,
37 EncodingRules::Cer => crate::Codec::Cer,
38 EncodingRules::Der => crate::Codec::Der,
39 }
40 }
41}