From e88052fe49c42350d392624101af4be1b10680cb Mon Sep 17 00:00:00 2001 From: mo khan Date: Fri, 20 Jun 2025 10:51:56 -0600 Subject: refactor: improve generic builder methods --- src/authorization/cedar_authorizer.rs | 37 +++++++++++++++-------------------- 1 file changed, 16 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/authorization/cedar_authorizer.rs b/src/authorization/cedar_authorizer.rs index cc1fc93b..547a1318 100644 --- a/src/authorization/cedar_authorizer.rs +++ b/src/authorization/cedar_authorizer.rs @@ -45,30 +45,25 @@ mod tests { T::default() } - fn build_with(initializer: impl std::ops::FnOnce(T) -> T) -> T { - let item = build::(); - initializer(item) + fn build_with(initializer: F) -> T + where + T: Default, + F: std::ops::FnOnce(&mut T), + { + let mut item = build::(); + initializer(&mut item); + item } fn create_test_request_with_headers(headers: HashMap) -> CheckRequest { - build_with::(|mut item: CheckRequest| { - item.attributes = Some(build_with::( - |mut item: AttributeContext| { - item.request = Some(build_with::( - |mut item: attribute_context::Request| { - item.http = Some(build_with::( - |mut item: attribute_context::HttpRequest| { - item.headers = headers; - item - }, - )); - item - }, - )); - item - }, - )); - item + build_with(|item: &mut CheckRequest| { + item.attributes = Some(build_with(|item: &mut AttributeContext| { + item.request = Some(build_with(|item: &mut attribute_context::Request| { + item.http = Some(build_with(|item: &mut attribute_context::HttpRequest| { + item.headers = headers; + })); + })); + })); }) } -- cgit v1.2.3