1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright (c) 2017, Marty Mills <daggerbot@gmail.com>
// This software is available under the terms of the zlib license.
// See COPYING.md for more information.

use pascii;
use text::FallbackValue;

/// Code Page 437 character.
#[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct Char (u8);

impl Char {
    pub fn as_byte (self) -> u8 { self.0 }
}

impl FallbackValue for Char {
    fn fallback_value () -> Char { Char(0x7f) }
}

impl From<u8> for Char {
    fn from (byte: u8) -> Char { Char(byte) }
}

impl From<pascii::Char> for Char {
    fn from (pascii: pascii::Char) -> Char { Char(pascii as u8) }
}

impl Into<u8> for Char {
    fn into (self) -> u8 { self.0 }
}