pub type Result = std::result::Result; #[derive(Debug, thiserror::Error)] pub enum Error { #[error("Failed to parse osc address")] AddressParseError(String), } pub trait AddressParseResult { fn address_part_result(self, context: &'static str) -> Result; } impl AddressParseResult for std::result::Result { fn address_part_result(self, context: &'static str) -> Result { self.map_err(|e| { Error::AddressParseError(format!( "failed to parse number in address part {}: {}", context, e )) }) } }