Skip to main content

lber_serde/structures/
boolean.rs

1use std::default;
2use structure;
3use universal;
4
5use super::ASNTag;
6use common::TagClass;
7
8/// Boolean value.
9#[derive(Clone, Copy, Debug, PartialEq)]
10pub struct Boolean {
11    pub id: u64,
12    pub class: TagClass,
13    pub inner: bool,
14}
15
16impl ASNTag for Boolean {
17    fn into_structure(self) -> structure::StructureTag {
18        structure::StructureTag {
19            id: self.id,
20            class: self.class,
21            payload: structure::PL::P(if self.inner { vec![0xFF] } else { vec![0x00] }),
22        }
23    }
24}
25
26impl default::Default for Boolean {
27    fn default() -> Self {
28        Boolean {
29            id: universal::Types::Boolean as u64,
30            class: TagClass::Universal,
31            inner: false,
32        }
33    }
34}