1 use crate::runtime::vm::VMGcRef; 2 use crate::{ 3 store::{AutoAssertNoGc, StoreContextMut, StoreOpaque}, 4 ArrayType, AsContext, AsContextMut, GcRefImpl, Result, Rooted, Val, I31, 5 }; 6 7 /// Support for `ArrayRefPre` disabled at compile time because the `gc` cargo 8 /// feature was not enabled. 9 pub enum ArrayRefPre {} 10 11 /// Support for `arrayref` disabled at compile time because the `gc` cargo feature 12 /// was not enabled. 13 pub enum ArrayRef {} 14 15 impl GcRefImpl for ArrayRef {} 16 17 impl ArrayRef { 18 pub(crate) fn from_cloned_gc_ref( 19 _store: &mut AutoAssertNoGc<'_>, 20 _gc_ref: VMGcRef, 21 ) -> Rooted<Self> { 22 unreachable!() 23 } 24 25 pub fn ty(&self, _store: impl AsContext) -> Result<ArrayType> { 26 match *self {} 27 } 28 29 pub fn matches_ty(&self, _store: impl AsContext, _ty: &ArrayType) -> Result<bool> { 30 match *self {} 31 } 32 33 pub(crate) fn _matches_ty(&self, _store: &StoreOpaque, _ty: &ArrayType) -> Result<bool> { 34 match *self {} 35 } 36 37 pub fn len(&self, _store: impl AsContext) -> Result<u32> { 38 match *self {} 39 } 40 41 pub fn elems<'a, T: 'a>( 42 &self, 43 _store: impl Into<StoreContextMut<'a, T>>, 44 ) -> Result<impl ExactSizeIterator<Item = Val> + 'a + '_> { 45 match *self {} 46 Ok([].into_iter()) 47 } 48 49 pub fn get(&self, _store: impl AsContextMut, _index: usize) -> Result<Val> { 50 match *self {} 51 } 52 53 pub fn set(&self, _store: impl AsContextMut, _index: usize, _value: Val) -> Result<()> { 54 match *self {} 55 } 56 } 57