aboutsummaryrefslogtreecommitdiff
path: root/src/utf8/types.rs
diff options
context:
space:
mode:
authorJoe Wilm <joe@jwilm.com>2016-09-17 17:02:29 -0700
committerJoe Wilm <joe@jwilm.com>2016-09-17 17:03:25 -0700
commit917080a5c27b3310daab135f9bfdbc531cb54186 (patch)
tree29e73dbde735185a6edbf0e7d3b1c354cf6a75b5 /src/utf8/types.rs
parent85388ab070fbc41c8cce3ffbfbcc0d1d917109e0 (diff)
downloadr-alacritty-vte-917080a5c27b3310daab135f9bfdbc531cb54186.tar.gz
r-alacritty-vte-917080a5c27b3310daab135f9bfdbc531cb54186.tar.bz2
r-alacritty-vte-917080a5c27b3310daab135f9bfdbc531cb54186.zip
Move utf8 parsing into separate crate
Diffstat (limited to 'src/utf8/types.rs')
-rw-r--r--src/utf8/types.rs77
1 files changed, 0 insertions, 77 deletions
diff --git a/src/utf8/types.rs b/src/utf8/types.rs
deleted file mode 100644
index 4c604f4..0000000
--- a/src/utf8/types.rs
+++ /dev/null
@@ -1,77 +0,0 @@
-//! Types supporting the UTF-8 parser
-#![allow(non_camel_case_types)]
-use std::mem;
-
-/// States the parser can be in.
-///
-/// There is a state for each initial input of the 3 and 4 byte sequences since
-/// the following bytes are subject to different conditions than a tail byte.
-#[allow(dead_code)]
-#[derive(Debug, Copy, Clone)]
-pub enum State {
- /// Ground state; expect anything
- Ground = 0,
- /// 3 tail bytes
- Tail3 = 1,
- /// 2 tail bytes
- Tail2 = 2,
- /// 1 tail byte
- Tail1 = 3,
- /// UTF8-3 starting with E0
- U3_2_e0 = 4,
- /// UTF8-3 starting with ED
- U3_2_ed = 5,
- /// UTF8-4 starting with F0
- Utf8_4_3_f0 = 6,
- /// UTF8-4 starting with F4
- Utf8_4_3_f4 = 7,
-}
-
-/// Action to take when receiving a byte
-#[allow(dead_code)]
-#[derive(Debug, Copy, Clone)]
-pub enum Action {
- /// Unexpected byte; sequence is invalid
- InvalidSequence = 0,
- /// Received valid 7-bit ASCII byte which can be directly emitted.
- EmitByte = 1,
- /// Set the bottom continuation byte
- SetByte1 = 2,
- /// Set the 2nd-from-last continuation byte
- SetByte2 = 3,
- /// Set the 2nd-from-last byte which is part of a two byte sequence
- SetByte2Top = 4,
- /// Set the 3rd-from-last continuation byte
- SetByte3 = 5,
- /// Set the 3rd-from-last byte which is part of a three byte sequence
- SetByte3Top = 6,
- /// Set the top byte of a four byte sequence.
- SetByte4 = 7,
-}
-
-/// Convert a state and action to a u8
-///
-/// State will be the bottom 4 bits and action the top 4
-#[inline]
-#[allow(dead_code)]
-pub fn pack(state: State, action: Action) -> u8 {
- ((action as u8) << 4) | (state as u8)
-}
-
-/// Convert a u8 to a state and action
-///
-/// # Unsafety
-///
-/// If this function is called with a byte that wasn't encoded with the `pack`
-/// function in this module, there is no guarantee that a valid state and action
-/// can be produced.
-#[inline]
-pub unsafe fn unpack(val: u8) -> (State, Action) {
- (
- // State is stored in bottom 4 bits
- mem::transmute(val & 0x0f),
-
- // Action is stored in top 4 bits
- mem::transmute(val >> 4),
- )
-}