diff --git a/src/task/handler.rs b/src/task/handler.rs index b2a0c33..7a0c6d4 100644 --- a/src/task/handler.rs +++ b/src/task/handler.rs @@ -47,6 +47,23 @@ impl IntoEffect>, Error> } } +impl IntoEffect>, Error> for [Task; N] { + fn into_effect(self, _: &System) -> Effect>, Error> { + Effect::of(self.into()) + } +} + +impl IntoEffect>, Error> + for Result<[Task; N], E> +{ + fn into_effect(self, _: &System) -> Effect>, Error> { + Effect::from( + self.map_err(|e| Error::Other(Box::new(e))) + .map(|a| a.into()), + ) + } +} + macro_rules! impl_action_handler { ( $first:ident, $($ty:ident),*