summaryrefslogtreecommitdiff
path: root/lua/clever_f
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 13:36:49 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 13:36:49 +0200
commitacf8650a0f2d823f6d388d4d787ebfec134c35b0 (patch)
tree183a770feaec19382574bd7a77e2522bf0075d12 /lua/clever_f
parent614eb6bd3f7059d297b4c940af5de154214091b3 (diff)
Stop resolved acquisition outcomes
Diffstat (limited to 'lua/clever_f')
-rw-r--r--lua/clever_f/sequence_coordinator.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/lua/clever_f/sequence_coordinator.lua b/lua/clever_f/sequence_coordinator.lua
index d391eec..37657b2 100644
--- a/lua/clever_f/sequence_coordinator.lua
+++ b/lua/clever_f/sequence_coordinator.lua
@@ -204,6 +204,17 @@ function SequenceCoordinator:acquire_primary(descriptor, invocation)
)
end
+function SequenceCoordinator:resolve_acquisition(descriptor, invocation)
+ local result = self:acquire_primary(descriptor, invocation)
+ if type(result.has_outcome) ~= "function" then
+ fail("AcquisitionService must return an AcquisitionResult", 2)
+ end
+ if result:has_outcome() then
+ return result.outcome
+ end
+ return result
+end
+
function SequenceCoordinator:primary(value)
local descriptor = self:validate_primary_descriptor(value)
local invocation = self:read_primary_invocation()
@@ -214,7 +225,7 @@ function SequenceCoordinator:primary(value)
)
invocation.repeat_decision = self:decide_primary(invocation)
if invocation.repeat_decision == repeat_resolver_factory.Decision.ACQUIRE then
- return self:acquire_primary(descriptor, invocation)
+ return self:resolve_acquisition(descriptor, invocation)
end
return descriptor
end