aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrinputsourcearray.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/xrinputsourcearray.rs')
-rw-r--r--components/script/dom/xrinputsourcearray.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/xrinputsourcearray.rs b/components/script/dom/xrinputsourcearray.rs
index bf63e38e073..b0565940373 100644
--- a/components/script/dom/xrinputsourcearray.rs
+++ b/components/script/dom/xrinputsourcearray.rs
@@ -4,6 +4,7 @@
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::XRInputSourceArrayBinding;
+use crate::dom::bindings::codegen::Bindings::XRInputSourceArrayBinding::XRInputSourceArrayMethods;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
@@ -46,3 +47,18 @@ impl XRInputSourceArray {
});
}
}
+
+impl XRInputSourceArrayMethods for XRInputSourceArray {
+ /// https://immersive-web.github.io/webxr/#dom-xrinputsourcearray-length
+ fn Length(&self) -> u32 {
+ self.input_sources.borrow().len() as u32
+ }
+
+ /// https://immersive-web.github.io/webxr/#xrinputsourcearray
+ fn IndexedGetter(&self, n: u32) -> Option<DomRoot<XRInputSource>> {
+ self.input_sources
+ .borrow()
+ .get(n as usize)
+ .map(|x| DomRoot::from_ref(&**x))
+ }
+}