use structure;
pub mod integer;
pub mod sequence;
pub mod octetstring;
pub mod boolean;
pub mod null;
pub use self::integer::Integer;
pub use self::sequence::{Sequence, SequenceOf, SetOf};
pub use self::octetstring::OctetString;
pub use self::boolean::Boolean;
pub use self::null::Null;
pub trait ASNTag {
fn into_structure(self) -> structure::StructureTag;
}
#[derive(Clone, Debug)]
pub enum Tag {
Integer(integer::Integer),
Sequence(sequence::Sequence),
OctetString(octetstring::OctetString),
Boolean(boolean::Boolean),
Null(null::Null),
StructureTag(structure::StructureTag),
}
impl ASNTag for Tag {
fn into_structure(self) -> structure::StructureTag {
match self {
Tag::Integer(i) => i.into_structure(),
Tag::Sequence(i) => i.into_structure(),
Tag::OctetString(i) => i.into_structure(),
Tag::Boolean(i) => i.into_structure(),
Tag::Null(i) => i.into_structure(),
Tag::StructureTag(s) => s
}
}
}