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 50 51 52 53 54 55 56 57 58 59
use super::ToJs; use crate::{Array, Ctx, Function, Object, Result, String, Value}; use std::string::String as StdString; impl<'js> ToJs<'js> for Value<'js> { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(self) } } impl<'js> ToJs<'js> for String<'js> { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::String(self)) } } impl<'js> ToJs<'js> for Object<'js> { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::Object(self)) } } impl<'js> ToJs<'js> for Function<'js> { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::Function(self)) } } impl<'js> ToJs<'js> for Array<'js> { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::Array(self)) } } impl<'js> ToJs<'js> for StdString { fn to_js(self, ctx: Ctx<'js>) -> Result<Value<'js>> { let s = String::from_str(ctx, self.as_str())?; Ok(Value::String(s)) } } impl<'js, 'a> ToJs<'js> for &'a str { fn to_js(self, ctx: Ctx<'js>) -> Result<Value<'js>> { let s = String::from_str(ctx, self)?; Ok(Value::String(s)) } } impl<'js> ToJs<'js> for i32 { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::Int(self)) } } impl<'js> ToJs<'js> for () { fn to_js(self, _: Ctx<'js>) -> Result<Value<'js>> { Ok(Value::Undefined) } }