1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
use std::marker::PhantomData;

use crate::data::Value;
use crate::data::wrapper::Wrapper;

#[repr(C)]
pub struct VMGenericVec {
    pub inner: Vec<Value>
}

#[repr(transparent)]
pub struct VMVec<T: 'static> {
    pub inner: VMGenericVec,
    _phantom: PhantomData<T>
}

pub struct VMVecRef<T: 'static> {
    pub ptr: *mut Wrapper<()>,
    _phantom: PhantomData<T>
}