Test generics and other things

This commit is contained in:
Werner
2022-05-22 13:41:48 -03:00
parent acb22d7ce6
commit ced258e5c5
16 changed files with 283 additions and 32 deletions

48
Source/Examples/Stack.rs Normal file
View File

@ -0,0 +1,48 @@
use crate::*;
#[derive(Reflect)]
pub struct Stack<T>
where
T: Reflect,
{
inner: Vec<T>,
}
impl<T> Default for Stack<T>
where
T: Reflect,
{
fn default() -> Self {
Self { inner: Vec::new() }
}
}
impl<T> Stack<T>
where
T: Reflect,
{
#[function]
pub fn New() -> Self {
Self::default()
}
#[function]
pub fn Push(&mut self, element: T) {
self.inner.push(element);
}
#[function]
pub fn Peek(&mut self) -> Option<&T> {
self.inner.last()
}
#[function]
pub fn PeekMut(&mut self) -> Option<&mut T> {
self.inner.last_mut()
}
#[function]
pub fn Pop(&mut self) -> Option<T> {
self.inner.pop()
}
}