fix all errors in pattern in pattern

This commit is contained in:
jane 2021-12-02 19:01:16 -05:00
parent 1f155bd231
commit 3a00c4bb09

View file

@ -6,17 +6,17 @@ use std::{
type ParseError = Box<dyn std::error::Error>;
trait Pattern<'a> {
pub fn execute(&self, values: &'a mut [RawColor]);
pub fn parse(args: Vec<String>) -> Result<Self, ParseError> where Self: Sized;
pub trait Pattern<'a> {
fn execute(&self, values: &'a mut [RawColor]);
fn parse(args: Vec<String>) -> Result<Self, ParseError> where Self: Sized;
}
impl<'a> TryFrom<Vec<String>> for Box<dyn Pattern<'a>> {
type Error = ParseError;
fn try_from(s: Vec<String>) -> Result<Self, Error> {
fn try_from(s: Vec<String>) -> Result<Self, Self::Error> {
match s[0].as_str() {
"unit" => Unit::parse(s),
"val" => Value::parse(s),
"unit" => Ok(Box::new(Unit::parse(s).unwrap()) as Box<dyn Pattern>),
"val" => Ok(Box::new(Value::parse(s).unwrap()) as Box<dyn Pattern>),
_ => Err("No Match".into())
}
}
@ -88,7 +88,7 @@ impl<'a> Pattern<'a> for Value {
})
}
},
Err(e) => Err(e)
Err(e) => Err(Box::new(e))
}
}
}