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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
use crate::ruby::value_type::{self, *};
#[repr(u8)]
#[derive(Debug, PartialEq, Eq, Hash)]
#[allow(missing_docs)]
pub enum Ty {
None = NONE as u8,
Object = OBJECT as u8,
Class = CLASS as u8,
Module = MODULE as u8,
Float = FLOAT as u8,
String = STRING as u8,
Regexp = REGEXP as u8,
Array = ARRAY as u8,
Hash = HASH as u8,
Struct = STRUCT as u8,
Bignum = BIGNUM as u8,
File = FILE as u8,
Data = DATA as u8,
Match = MATCH as u8,
Complex = COMPLEX as u8,
Rational = RATIONAL as u8,
Nil = NIL as u8,
True = TRUE as u8,
False = FALSE as u8,
Symbol = SYMBOL as u8,
Fixnum = FIXNUM as u8,
Undef = UNDEF as u8,
IMemo = IMEMO as u8,
Node = NODE as u8,
IClass = ICLASS as u8,
Zombie = ZOMBIE as u8,
_Mask = MASK as u8,
}
impl From<value_type> for Ty {
#[inline]
fn from(ty: value_type) -> Self {
unsafe { std::mem::transmute(ty as u8) }
}
}
impl From<Ty> for value_type {
#[inline]
fn from(ty: Ty) -> Self {
unsafe { std::mem::transmute(ty as u32) }
}
}