use super::JsValue;
use crate::JsVariant;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Type {
Undefined,
Null,
Boolean,
Number,
String,
Symbol,
BigInt,
Object,
}
impl JsValue {
#[must_use]
pub fn get_type(&self) -> Type {
match self.variant() {
JsVariant::Float64(_) | JsVariant::Integer32(_) => Type::Number,
JsVariant::String(_) => Type::String,
JsVariant::Boolean(_) => Type::Boolean,
JsVariant::Symbol(_) => Type::Symbol,
JsVariant::Null => Type::Null,
JsVariant::Undefined => Type::Undefined,
JsVariant::BigInt(_) => Type::BigInt,
JsVariant::Object(_) => Type::Object,
}
}
}