From a965955cf74317e96716fd64982b3f2ce0b9fddc Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Fri, 20 Oct 2023 21:51:05 +0200 Subject: [PATCH] Simplify extension request dispatch Instead of <*Backend as ExtensionImpl<*Extension>>::extension_request_serialized we can just write ExtensionImpl::<*Extension>::extension_request_serialized --- components/apps/src/dispatch.rs | 62 ++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/components/apps/src/dispatch.rs b/components/apps/src/dispatch.rs index 26951812..27bf144b 100644 --- a/components/apps/src/dispatch.rs +++ b/components/apps/src/dispatch.rs @@ -181,44 +181,50 @@ impl ExtensionDispatch for Dispatch { Backend::SoftwareRsa => Err(TrussedError::RequestNotAvailable), #[cfg(feature = "backend-staging")] Backend::Staging => match extension { - Extension::Chunked => >::extension_request_serialized( - &mut self.staging, - &mut ctx.core, - &mut ctx.backends.staging, - request, - resources, - ), - Extension::WrapKeyToFile => >::extension_request_serialized( - &mut self.staging, - &mut ctx.core, - &mut ctx.backends.staging, - request, - resources, - ), + Extension::Chunked => { + ExtensionImpl::::extension_request_serialized( + &mut self.staging, + &mut ctx.core, + &mut ctx.backends.staging, + request, + resources, + ) + } + Extension::WrapKeyToFile => { + ExtensionImpl::::extension_request_serialized( + &mut self.staging, + &mut ctx.core, + &mut ctx.backends.staging, + request, + resources, + ) + } #[cfg(feature = "webcrypt")] - Extension::HmacShaP256 => >::extension_request_serialized( - &mut self.staging, - &mut ctx.core, - &mut ctx.backends.staging, - request, - resources, - ), + Extension::HmacShaP256 => { + ExtensionImpl::::extension_request_serialized( + &mut self.staging, + &mut ctx.core, + &mut ctx.backends.staging, + request, + resources, + ) + } #[allow(unreachable_patterns)] _ => Err(TrussedError::RequestNotAvailable), }, #[cfg(feature = "se050")] - Backend::Se050 => { - match extension { - Extension::Se050Manage => as ExtensionImpl>::extension_request_serialized( + Backend::Se050 => match extension { + Extension::Se050Manage => { + ExtensionImpl::::extension_request_serialized( self.se050.as_mut().ok_or(TrussedError::GeneralError)?, &mut ctx.core, &mut ctx.backends.se050, request, - resources - ), - _ => Err(TrussedError::RequestNotAvailable), + resources, + ) } - } + _ => Err(TrussedError::RequestNotAvailable), + }, _ => Err(TrussedError::RequestNotAvailable), } }