1use rquickjs::{Type, Value};
2
3#[inline(always)]
4pub fn cast_to_string(value: &Value) -> String {
5 match value.type_of() {
6 Type::Uninitialized => String::from("<uninitialized>"),
7 Type::Undefined => String::from("<undefined>"),
8 Type::Null => String::from("<null>"),
9 Type::Bool => value.as_bool().unwrap().to_string(),
10 Type::Int => value.as_int().unwrap().to_string(),
11 Type::Float => value.as_float().unwrap().to_string(),
12 Type::String => value.as_string().unwrap().to_string().unwrap(),
13 Type::Symbol => format!("{:?}", value.as_symbol().unwrap()).to_string(),
14 Type::Array => format!("{:?}", value.as_array().unwrap()).to_string(),
15 Type::Constructor => format!("{:?}", value.as_constructor().unwrap()).to_string(),
16 Type::Function => format!("{:?}", value.as_function().unwrap()).to_string(),
17 Type::Exception => format!("{:?}", value.as_exception().unwrap()).to_string(),
18 Type::Object => format!("{:?}", value.as_object().unwrap()).to_string(),
19 Type::Module => String::from("<module>"),
20 Type::BigInt => format!("{:?}", value.as_big_int().unwrap()).to_string(),
21 Type::Unknown => String::from("<unknown>"),
22 }
23}