Add stubs for MathNumber.
This commit is contained in:
		
							parent
							
								
									d8b8c223f0
								
							
						
					
					
						commit
						0a2e1b007c
					
				| @ -5,6 +5,10 @@ use crate::renderer::errors::WalkError; | ||||
| use crate::renderer::DustRenderer; | ||||
| use std::any::Any; | ||||
| use std::ops::Add; | ||||
| use std::ops::Div; | ||||
| use std::ops::Mul; | ||||
| use std::ops::Rem; | ||||
| use std::ops::Sub; | ||||
| use std::rc::Rc; | ||||
| use std::{cmp::Ordering, fmt::Debug}; | ||||
| 
 | ||||
| @ -104,6 +108,38 @@ impl<'a> Add<&'a dyn ContextElement> for &'a dyn ContextElement { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl<'a> Sub<&'a dyn ContextElement> for &'a dyn ContextElement { | ||||
|     type Output = Option<IceResult<'a>>; | ||||
| 
 | ||||
|     fn sub(self, other: &'a dyn ContextElement) -> Self::Output { | ||||
|         self.math_subtract(other) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl<'a> Mul<&'a dyn ContextElement> for &'a dyn ContextElement { | ||||
|     type Output = Option<IceResult<'a>>; | ||||
| 
 | ||||
|     fn mul(self, other: &'a dyn ContextElement) -> Self::Output { | ||||
|         self.math_multiply(other) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl<'a> Div<&'a dyn ContextElement> for &'a dyn ContextElement { | ||||
|     type Output = Option<IceResult<'a>>; | ||||
| 
 | ||||
|     fn div(self, other: &'a dyn ContextElement) -> Self::Output { | ||||
|         self.math_divide(other) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl<'a> Rem<&'a dyn ContextElement> for &'a dyn ContextElement { | ||||
|     type Output = Option<IceResult<'a>>; | ||||
| 
 | ||||
|     fn rem(self, other: &'a dyn ContextElement) -> Self::Output { | ||||
|         self.math_modulus(other) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| pub trait FromContextElement { | ||||
|     fn from_context_element(&self) -> &dyn IntoContextElement; | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,10 @@ | ||||
| use crate::parser::OwnedLiteral; | ||||
| use std::convert::TryInto; | ||||
| use std::ops::Add; | ||||
| use std::ops::Div; | ||||
| use std::ops::Mul; | ||||
| use std::ops::Rem; | ||||
| use std::ops::Sub; | ||||
| 
 | ||||
| #[derive(Debug)] | ||||
| pub enum MathNumber { | ||||
| @ -44,6 +48,50 @@ impl Add<MathNumber> for MathNumber { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl Sub<MathNumber> for MathNumber { | ||||
|     type Output = Option<OwnedLiteral>; | ||||
| 
 | ||||
|     fn sub(self, other: MathNumber) -> Self::Output { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl Mul<MathNumber> for MathNumber { | ||||
|     type Output = Option<OwnedLiteral>; | ||||
| 
 | ||||
|     fn mul(self, other: MathNumber) -> Self::Output { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl Div<MathNumber> for MathNumber { | ||||
|     type Output = Option<OwnedLiteral>; | ||||
| 
 | ||||
|     fn div(self, other: MathNumber) -> Self::Output { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl Rem<MathNumber> for MathNumber { | ||||
|     type Output = Option<OwnedLiteral>; | ||||
| 
 | ||||
|     fn rem(self, other: MathNumber) -> Self::Output { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| impl MathNumber { | ||||
|     fn math_abs(&self) -> Option<OwnedLiteral> { | ||||
|         todo!() | ||||
|     } | ||||
|     fn math_floor(&self) -> Option<OwnedLiteral> { | ||||
|         todo!() | ||||
|     } | ||||
|     fn math_ceil(&self) -> Option<OwnedLiteral> { | ||||
|         todo!() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// For math operations that take in integers and return integers
 | ||||
| /// (add, subtract, multiply)
 | ||||
| pub fn math_ints<L, R, F>(left: L, right: R, operation: F) -> Option<OwnedLiteral> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander