vanadin_tasks/
js.rs

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}