From c4b328f40082dddb921f5365ca15c6e0995172e7 Mon Sep 17 00:00:00 2001 From: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Date: Fri, 8 Mar 2024 13:35:01 +0100 Subject: [PATCH] Make builders accept `impl FnOnce` instead of `fn` (#185) A follow-up of #171 with the same motivation. --- crates/configuration/src/parachain.rs | 7 +++++-- crates/configuration/src/relaychain.rs | 9 ++++++--- crates/configuration/src/shared/node.rs | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/crates/configuration/src/parachain.rs b/crates/configuration/src/parachain.rs index 4e027e6..69e058f 100644 --- a/crates/configuration/src/parachain.rs +++ b/crates/configuration/src/parachain.rs @@ -496,7 +496,10 @@ impl<C: Context> ParachainConfigBuilder<WithId, C> { } /// Set the default resources limits used for collators. Can be overridden. - pub fn with_default_resources(self, f: fn(ResourcesBuilder) -> ResourcesBuilder) -> Self { + pub fn with_default_resources( + self, + f: impl FnOnce(ResourcesBuilder) -> ResourcesBuilder, + ) -> Self { match f(ResourcesBuilder::new()).build() { Ok(default_resources) => Self::transition( ParachainConfig { @@ -722,7 +725,7 @@ impl<C: Context> ParachainConfigBuilder<WithAtLeastOneCollator, C> { /// Add a new collator using a nested [`NodeConfigBuilder`]. pub fn with_collator( self, - f: fn(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, + f: impl FnOnce(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, ) -> Self { match f(NodeConfigBuilder::new( ChainDefaultContext::default(), diff --git a/crates/configuration/src/relaychain.rs b/crates/configuration/src/relaychain.rs index 66edf9d..760be05 100644 --- a/crates/configuration/src/relaychain.rs +++ b/crates/configuration/src/relaychain.rs @@ -250,7 +250,10 @@ impl RelaychainConfigBuilder<WithChain> { } /// Set the default resources limits used for nodes. Can be overridden. - pub fn with_default_resources(self, f: fn(ResourcesBuilder) -> ResourcesBuilder) -> Self { + pub fn with_default_resources( + self, + f: impl FnOnce(ResourcesBuilder) -> ResourcesBuilder, + ) -> Self { match f(ResourcesBuilder::new()).build() { Ok(default_resources) => Self::transition( RelaychainConfig { @@ -349,7 +352,7 @@ impl RelaychainConfigBuilder<WithChain> { /// Add a new node using a nested [`NodeConfigBuilder`]. pub fn with_node( self, - f: fn(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, + f: impl FnOnce(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, ) -> RelaychainConfigBuilder<WithAtLeastOneNode> { match f(NodeConfigBuilder::new( self.default_chain_context(), @@ -384,7 +387,7 @@ impl RelaychainConfigBuilder<WithAtLeastOneNode> { /// Add a new node using a nested [`NodeConfigBuilder`]. pub fn with_node( self, - f: fn(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, + f: impl FnOnce(NodeConfigBuilder<node::Initial>) -> NodeConfigBuilder<node::Buildable>, ) -> Self { match f(NodeConfigBuilder::new( self.default_chain_context(), diff --git a/crates/configuration/src/shared/node.rs b/crates/configuration/src/shared/node.rs index 32851db..744dea0 100644 --- a/crates/configuration/src/shared/node.rs +++ b/crates/configuration/src/shared/node.rs @@ -530,7 +530,7 @@ impl NodeConfigBuilder<Buildable> { } /// Set the resources limits what will be used for the node (only podman/k8s). Override the default. - pub fn with_resources(self, f: fn(ResourcesBuilder) -> ResourcesBuilder) -> Self { + pub fn with_resources(self, f: impl FnOnce(ResourcesBuilder) -> ResourcesBuilder) -> Self { match f(ResourcesBuilder::new()).build() { Ok(resources) => Self::transition( NodeConfig { -- GitLab