| //@ edition:2021 |
| |
| type TranslateFn = Box<dyn Fn(String, String) -> String>; |
| |
| pub struct DeviceCluster { |
| devices: Vec<Device>, |
| } |
| |
| impl DeviceCluster { |
| pub async fn do_something(&mut self) -> Result<String, Box<dyn std::error::Error>> { |
| let mut last_error: Box<dyn std::error::Error>; |
| |
| for device in &mut self.devices { |
| match device.do_something().await { |
| Ok(info) => { |
| return Ok(info); |
| } |
| Err(e) => {} |
| } |
| } |
| |
| Err(last_error) |
| //~^ ERROR used binding `last_error` isn't initialized |
| } |
| } |
| |
| pub struct Device { |
| translate_fn: Option<TranslateFn>, |
| } |
| |
| impl Device { |
| pub async fn do_something(&mut self) -> Result<String, Box<dyn std::error::Error>> { |
| Ok(String::from("")) |
| } |
| } |
| |
| fn main() {} |