Implement utilities for MultiValue
This commit is contained in:
parent
04ba93137c
commit
c20eb20a59
18
src/value.rs
18
src/value.rs
|
@ -1,4 +1,5 @@
|
||||||
use std::iter::{self, FromIterator};
|
use std::iter::{self, FromIterator};
|
||||||
|
use std::ops::Index;
|
||||||
use std::os::raw::c_void;
|
use std::os::raw::c_void;
|
||||||
use std::{ptr, slice, str, vec};
|
use std::{ptr, slice, str, vec};
|
||||||
|
|
||||||
|
@ -242,6 +243,15 @@ impl<'a, 'lua> IntoIterator for &'a MultiValue<'lua> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'lua> Index<usize> for MultiValue<'lua> {
|
||||||
|
type Output = Value<'lua>;
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn index(&self, index: usize) -> &Self::Output {
|
||||||
|
&self.0[self.0.len() - index - 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<'lua> MultiValue<'lua> {
|
impl<'lua> MultiValue<'lua> {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn from_vec(mut v: Vec<Value<'lua>>) -> MultiValue<'lua> {
|
pub fn from_vec(mut v: Vec<Value<'lua>>) -> MultiValue<'lua> {
|
||||||
|
@ -262,13 +272,13 @@ impl<'lua> MultiValue<'lua> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub(crate) fn push_front(&mut self, value: Value<'lua>) {
|
pub fn pop_front(&mut self) -> Option<Value<'lua>> {
|
||||||
self.0.push(value);
|
self.0.pop()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub(crate) fn pop_front(&mut self) -> Option<Value<'lua>> {
|
pub fn push_front(&mut self, value: Value<'lua>) {
|
||||||
self.0.pop()
|
self.0.push(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|
Loading…
Reference in New Issue