pub(crate) struct RootedLispStack<'a> {
vec: Rt<Vec<Slot<Gc<ObjectType<'a>>>>>,
current: Frame,
frames: Rt<Vec<FrameStore<'a>>>,
}
Expand description
Automatically derived from LispStack via #[derive(Trace)]
Fields§
§vec: Rt<Vec<Slot<Gc<ObjectType<'a>>>>>
§current: Frame
§frames: Rt<Vec<FrameStore<'a>>>
Implementations§
Source§impl<'a> RootedLispStack<'a>
impl<'a> RootedLispStack<'a>
pub(crate) fn push_bytecode_frame( &mut self, start: usize, depth: usize, func: &ByteFn, pc: usize, )
pub(crate) fn push_frame(&mut self, arg_cnt: usize)
Sourcepub(crate) fn pop_frame(&mut self)
pub(crate) fn pop_frame(&mut self)
Remove all the stack variables in the current frame and switch to the previous one
pub(crate) fn get_bytecode_frame( &self, idx: usize, ) -> Option<(&Rt<Slot<&'a ByteFn>>, usize)>
pub(crate) fn prev_bytecode_frame( &self, ) -> Option<(&Rt<Slot<&'a ByteFn>>, usize)>
pub(crate) fn current_frame(&self) -> usize
pub(crate) fn unwind_frames(&mut self, frame: usize)
pub(crate) fn len(&self) -> usize
pub(crate) fn set_depth(&mut self, depth: usize)
pub(crate) fn set_arg_count(&mut self, arg_cnt: u16, rest: bool)
pub(crate) fn push<T: IntoRoot<Slot<Gc<ObjectType<'a>>>>>(&mut self, value: T)
pub(crate) fn pop<'ob>(&mut self, cx: &'ob Context<'_>) -> Gc<ObjectType<'ob>>
pub(crate) fn top(&mut self) -> &mut Rt<Slot<Gc<ObjectType<'a>>>>
pub(crate) fn offset_end(&self, i: usize) -> usize
pub(crate) fn push_ref(&mut self, i: impl Into<i32>, cx: &Context<'_>)
pub(crate) fn set_ref(&mut self, i: impl Into<usize>)
pub(crate) fn fill_extra_args(&mut self, fill_args: u16)
pub(crate) fn remove_top(&mut self, i: usize)
pub(crate) fn truncate(&mut self, len: usize)
pub(crate) fn extend_from_slice(&mut self, src: &[Gc<ObjectType<'_>>])
pub(crate) fn extend_as_vec_from_within(&mut self, src: impl RangeBounds<usize>)
pub(crate) fn frames<'b>(&'b self) -> &'b [Rt<Slot<Gc<ObjectType<'a>>>>]
pub(crate) fn arg_count(&self) -> usize
pub(crate) fn current_args(&self) -> &[Rt<Slot<Gc<ObjectType<'a>>>>]
pub(crate) fn arg_slice( &self, arg_slice: ArgSlice, ) -> &[Rt<Slot<Gc<ObjectType<'a>>>>]
Trait Implementations§
Source§impl<'a> Index<usize> for RootedLispStack<'a>
impl<'a> Index<usize> for RootedLispStack<'a>
Auto Trait Implementations§
impl<'a> Freeze for RootedLispStack<'a>
impl<'a> !RefUnwindSafe for RootedLispStack<'a>
impl<'a> !Send for RootedLispStack<'a>
impl<'a> !Sync for RootedLispStack<'a>
impl<'a> !Unpin for RootedLispStack<'a>
impl<'a> !UnwindSafe for RootedLispStack<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more