Is there a better way to do error handling than this? ``` spi.transaction(&mut [ Operation::Write(&[b1, b2]), Operation::TransferInPlace(&mut buf) ]).await.map_err(|e| -> Errors{Errors::IOError})?; ``` ``` #[derive(Clone, Copy, Debug)] pub enum Errors{ PinError, IOError, ReadError, } ``` I have seen what appears to be a more common approach with generics in the enum, but that not only makes the return type of the function kind of bloated, but also makes it complicated when a function say isn't using SPI, but I still need it for the generic enum. I'm probably not describing it the best. Basically I like the way I am doing it with map_err, it just feels like I am not doing it right with the unused parameter of the closure?