pub struct Object { /* private fields */ }Expand description
ECMAScript ordinary object backed by an emlite::Val.
Implementations§
Source§impl Object
impl Object
Sourcepub fn new() -> Object
pub fn new() -> Object
Create a brand‑new empty object (same as {} in JavaScript).
Examples found in repository?
3fn main() {
4 emlite::init();
5 // Create a new JS object
6 let obj = Object::new();
7 println!("Created Object: {:?}", obj);
8
9 // Set properties
10 obj.set("foo", &Any::from(123));
11 obj.set("bar", &Any::from("baz"));
12 println!("Object after setting properties: {:?}", obj);
13
14 // Get properties (Object::get expects &Any)
15 let foo_key = Any::from("foo");
16 let bar_key = Any::from("bar");
17 let foo = obj.get(&foo_key);
18 let bar = obj.get(&bar_key);
19 println!("foo: {:?}, bar: {:?}", foo, bar);
20 Console::get().log(&[foo, bar]);
21}Sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
=== undefined – distinguishes from null.
Sourcepub fn has_own_property(&self, prop: &str) -> bool
pub fn has_own_property(&self, prop: &str) -> bool
Object.prototype.hasOwnProperty.call(obj, prop)
Returns true if the property exists directly on the object
(enumerable or not). Inherited properties through the prototype chain
return false.
Sourcepub fn set<V: Into<Val>>(&self, item: &str, val: V)
pub fn set<V: Into<Val>>(&self, item: &str, val: V)
Examples found in repository?
3fn main() {
4 emlite::init();
5 // Create a new JS object
6 let obj = Object::new();
7 println!("Created Object: {:?}", obj);
8
9 // Set properties
10 obj.set("foo", &Any::from(123));
11 obj.set("bar", &Any::from("baz"));
12 println!("Object after setting properties: {:?}", obj);
13
14 // Get properties (Object::get expects &Any)
15 let foo_key = Any::from("foo");
16 let bar_key = Any::from("bar");
17 let foo = obj.get(&foo_key);
18 let bar = obj.get(&bar_key);
19 println!("foo: {:?}, bar: {:?}", foo, bar);
20 Console::get().log(&[foo, bar]);
21}Sourcepub fn get<T: Into<Val>>(&self, item: T) -> Any
pub fn get<T: Into<Val>>(&self, item: T) -> Any
Examples found in repository?
3fn main() {
4 emlite::init();
5 // Create a new JS object
6 let obj = Object::new();
7 println!("Created Object: {:?}", obj);
8
9 // Set properties
10 obj.set("foo", &Any::from(123));
11 obj.set("bar", &Any::from("baz"));
12 println!("Object after setting properties: {:?}", obj);
13
14 // Get properties (Object::get expects &Any)
15 let foo_key = Any::from("foo");
16 let bar_key = Any::from("bar");
17 let foo = obj.get(&foo_key);
18 let bar = obj.get(&bar_key);
19 println!("foo: {:?}, bar: {:?}", foo, bar);
20 Console::get().log(&[foo, bar]);
21}Sourcepub fn instance() -> Val
pub fn instance() -> Val
Gets the Object constructor function @returns emlite::Val representing the Object constructor
Sourcepub fn create<P: Into<Val>>(prototype: P) -> Val
pub fn create<P: Into<Val>>(prototype: P) -> Val
Creates an object with the specified prototype object and properties @param prototype the object to use as the prototype, or null for no prototype @returns a new object with the specified prototype
Sourcepub fn create_with_properties<P: Into<Val>, R: Into<Val>>(
prototype: P,
properties: R,
) -> Val
pub fn create_with_properties<P: Into<Val>, R: Into<Val>>( prototype: P, properties: R, ) -> Val
Creates an object with the specified prototype object and properties @param prototype the object to use as the prototype, or null for no prototype @param properties an object whose enumerable own properties specify property descriptors @returns a new object with the specified prototype and properties
Sourcepub fn set_prototype_of<O: Into<Val>, P: Into<Val>>(obj: O, prototype: P) -> Val
pub fn set_prototype_of<O: Into<Val>, P: Into<Val>>(obj: O, prototype: P) -> Val
Sets the prototype (i.e., the internal [[Prototype]] property) of a specified object @param obj the object which is to have its prototype set @param prototype the object’s new prototype (an object or null) @returns the specified object
Methods from Deref<Target = Any>§
Sourcepub fn has_own_property(&self, prop: &str) -> bool
pub fn has_own_property(&self, prop: &str) -> bool
Checks whether a non-inherited property prop exists
Sourcepub fn at<T>(&self, idx: T) -> Val
pub fn at<T>(&self, idx: T) -> Val
Gets the element at index idx. Assumes the underlying js type is indexable
Sourcepub fn to_vec<V>(&self) -> Vec<V>where
V: FromVal,
pub fn to_vec<V>(&self) -> Vec<V>where
V: FromVal,
Converts the underlying js array to a Vec of V
Sourcepub fn call(&self, f: &str, args: &[Val]) -> Val
pub fn call(&self, f: &str, args: &[Val]) -> Val
Calls the method f with args, can return an undefined js value
Sourcepub fn new(&self, args: &[Val]) -> Val
pub fn new(&self, args: &[Val]) -> Val
Calls the object’s constructor with args constructing a new object
Sourcepub fn invoke(&self, args: &[Val]) -> Val
pub fn invoke(&self, args: &[Val]) -> Val
Invokes the function object with args, can return an undefined js value
Sourcepub fn instanceof(&self, v: Val) -> bool
pub fn instanceof(&self, v: Val) -> bool
Checks whether this Val is an instanceof v
pub fn is_number(&self) -> bool
pub fn is_bool(&self) -> bool
pub fn is_string(&self) -> bool
pub fn is_null(&self) -> bool
pub fn is_undefined(&self) -> bool
pub fn is_error(&self) -> bool
pub fn is_function(&self) -> bool
Sourcepub fn as_<T>(&self) -> Twhere
T: FromVal,
pub fn as_<T>(&self) -> Twhere
T: FromVal,
Examples found in repository?
3fn main() {
4 emlite::init();
5 // Create Any from different Rust types
6 let num = Any::from(123);
7 let text = Any::from("hello");
8 let boolean = Any::from(true);
9 println!("Any from int: {:?}", num);
10 println!("Any from str: {:?}", text);
11 println!("Any from bool: {:?}", boolean);
12 Console::get().log(&[num.clone(), text.clone(), boolean.clone()]);
13
14 // Convert Any back to Rust types using as_::<T>()
15 let n: i32 = num.as_();
16 let s: Option<String> = text.as_();
17 let b: bool = boolean.as_();
18 println!("Extracted i32: {}", n);
19 println!("Extracted String: {:?}", s);
20 println!("Extracted bool: {}", b);
21}More examples
4fn main() {
5 emlite::init();
6
7 // 0-arg closure returning a number
8 let c0 = Closure::bind0(|| 42);
9 let f0: Function = (&c0).into();
10 let r0 = f0.call(&Any::undefined(), &[]).unwrap().as_::<i32>();
11 Console::get().log(&[Any::from(r0)]);
12
13 // 1-arg closure: add 1
14 let c1 = Closure::bind1(|x: i32| x + 1);
15 let f1: Function = (&c1).into();
16 let r1 = f1
17 .call(&Any::undefined(), &[Any::from(9)])
18 .unwrap()
19 .as_::<i32>();
20 Console::get().log(&[Any::from(r1)]);
21
22 // 2-arg closure: sum
23 let c2 = Closure::bind2(|a: i32, b: i32| a + b);
24 let f2: Function = (&c2).into();
25 let r2 = f2
26 .call(&Any::undefined(), &[Any::from(2), Any::from(3)])
27 .unwrap()
28 .as_::<i32>();
29 Console::get().log(&[Any::from(r2)]);
30
31 // 3-arg closure: format string
32 let c3 = Closure::bind3(|a: i32, b: i32, c: i32| format!("{}-{}-{}", a, b, c));
33 let f3: Function = (&c3).into();
34 let r3 = f3
35 .call(
36 &Any::undefined(),
37 &[Any::from(1), Any::from(2), Any::from(3)],
38 )
39 .unwrap()
40 .as_::<Option<String>>()
41 .unwrap();
42 Console::get().log(&[Any::from(r3)]);
43
44 // 4-arg closure: sum of four
45 let c4 = Closure::bind4(|a: i32, b: i32, c: i32, d: i32| a + b + c + d);
46 let f4: Function = (&c4).into();
47 let r4 = f4
48 .call(
49 &Any::undefined(),
50 &[Any::from(1), Any::from(2), Any::from(3), Any::from(4)],
51 )
52 .unwrap()
53 .as_::<i32>();
54 Console::get().log(&[Any::from(r4)]);
55}Trait Implementations§
Source§impl DynCast for Object
impl DynCast for Object
Source§fn instanceof(val: &Any) -> bool
fn instanceof(val: &Any) -> bool
val instanceof ThisType.Source§fn unchecked_from_val(v: Any) -> Self
fn unchecked_from_val(v: Any) -> Self
Val into Self.Source§fn unchecked_from_val_ref(v: &Any) -> &Self
fn unchecked_from_val_ref(v: &Any) -> &Self
&Val into &Self.Source§fn unchecked_from_val_mut(v: &mut Any) -> &mut Self
fn unchecked_from_val_mut(v: &mut Any) -> &mut Self
&mut Val into &mut Self.fn has_type<T>(&self) -> boolwhere
T: DynCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: DynCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: DynCast,
fn dyn_mut<T>(&mut self) -> Option<&mut T>where
T: DynCast,
fn unchecked_into<T>(self) -> Twhere
T: DynCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: DynCast,
fn unchecked_mut<T>(&mut self) -> &mut Twhere
T: DynCast,
fn is_instance_of<T>(&self) -> boolwhere
T: DynCast,
Source§fn is_type_of(val: &Val) -> bool
fn is_type_of(val: &Val) -> bool
instanceof.