diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/authorization/cedar_authorizer.rs | 37 |
1 files changed, 16 insertions, 21 deletions
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<T: Default>(initializer: impl std::ops::FnOnce(T) -> T) -> T { - let item = build::<T>(); - initializer(item) + fn build_with<T, F>(initializer: F) -> T + where + T: Default, + F: std::ops::FnOnce(&mut T), + { + let mut item = build::<T>(); + initializer(&mut item); + item } fn create_test_request_with_headers(headers: HashMap<String, String>) -> CheckRequest { - build_with::<CheckRequest>(|mut item: CheckRequest| { - item.attributes = Some(build_with::<AttributeContext>( - |mut item: AttributeContext| { - item.request = Some(build_with::<attribute_context::Request>( - |mut item: attribute_context::Request| { - item.http = Some(build_with::<attribute_context::HttpRequest>( - |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; + })); + })); + })); }) } |
