|
1 | | -use std::{any::type_name, error::Error, future::Future, marker::PhantomData, sync::Arc}; |
| 1 | +use std::{any::type_name, error::Error, marker::PhantomData, sync::Arc}; |
2 | 2 |
|
3 | 3 | use futures_util::future::BoxFuture; |
4 | 4 |
|
@@ -68,41 +68,40 @@ impl Chain { |
68 | 68 | self |
69 | 69 | } |
70 | 70 |
|
71 | | - fn handle_input(&self, input: HandlerInput) -> impl Future<Output = HandlerResult> + use<> { |
| 71 | + async fn handle_input(&self, input: HandlerInput) -> HandlerResult { |
72 | 72 | let handlers = self.handlers.clone(); |
73 | 73 | let strategy = self.strategy; |
74 | | - async move { |
75 | | - for handler in handlers.iter() { |
76 | | - let type_name = handler.get_type_name(); |
77 | | - log::debug!("Running '{}' handler...", type_name); |
78 | | - let result = handler.handle(input.clone()).await; |
79 | | - match result { |
80 | | - ChainResult::Done(result) => match strategy { |
81 | | - ChainStrategy::All => match result { |
82 | | - Ok(()) => { |
83 | | - log::debug!("[CONTINUE] Handler '{}' succeeded", type_name); |
84 | | - } |
85 | | - Err(err) => { |
86 | | - log::debug!("[STOP] Handler '{}' returned an error: {}", type_name, err); |
87 | | - return Err(err); |
88 | | - } |
89 | | - }, |
90 | | - ChainStrategy::FirstFound => { |
91 | | - log::debug!("[STOP] First found handler: '{}'", type_name); |
92 | | - return result; |
| 74 | + |
| 75 | + for handler in handlers.iter() { |
| 76 | + let type_name = handler.get_type_name(); |
| 77 | + log::debug!("Running '{}' handler...", type_name); |
| 78 | + let result = handler.handle(input.clone()).await; |
| 79 | + match result { |
| 80 | + ChainResult::Done(result) => match strategy { |
| 81 | + ChainStrategy::All => match result { |
| 82 | + Ok(()) => { |
| 83 | + log::debug!("[CONTINUE] Handler '{}' succeeded", type_name); |
| 84 | + } |
| 85 | + Err(err) => { |
| 86 | + log::debug!("[STOP] Handler '{}' returned an error: {}", type_name, err); |
| 87 | + return Err(err); |
93 | 88 | } |
94 | 89 | }, |
95 | | - ChainResult::Err(err) => { |
96 | | - log::debug!("[STOP] Could not convert input for '{}' handler: {}", type_name, err); |
97 | | - return Err(err); |
98 | | - } |
99 | | - ChainResult::Skipped => { |
100 | | - log::debug!("[CONTINUE] Input not found for '{}' handler", type_name); |
| 90 | + ChainStrategy::FirstFound => { |
| 91 | + log::debug!("[STOP] First found handler: '{}'", type_name); |
| 92 | + return result; |
101 | 93 | } |
| 94 | + }, |
| 95 | + ChainResult::Err(err) => { |
| 96 | + log::debug!("[STOP] Could not convert input for '{}' handler: {}", type_name, err); |
| 97 | + return Err(err); |
| 98 | + } |
| 99 | + ChainResult::Skipped => { |
| 100 | + log::debug!("[CONTINUE] Input not found for '{}' handler", type_name); |
102 | 101 | } |
103 | 102 | } |
104 | | - Ok(()) |
105 | 103 | } |
| 104 | + Ok(()) |
106 | 105 | } |
107 | 106 | } |
108 | 107 |
|
|
0 commit comments