This commit is contained in:
jane 2021-12-02 18:46:52 -05:00
parent 23e4aa8471
commit 1f155bd231
1 changed files with 4 additions and 3 deletions

View File

@ -8,11 +8,12 @@ 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>;
pub fn parse(args: Vec<String>) -> Result<Self, ParseError> where Self: Sized;
}
impl<'a> TryFrom<Vec<String>> for Box<dyn Pattern<'a>> {
fn try_from(s: Vec<String>) -> Result<Self, ParseError> {
type Error = ParseError;
fn try_from(s: Vec<String>) -> Result<Self, Error> {
match s[0].as_str() {
"unit" => Unit::parse(s),
"val" => Value::parse(s),