diff options
Diffstat (limited to 'lua/clever_f/repeat_resolver.lua')
| -rw-r--r-- | lua/clever_f/repeat_resolver.lua | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua index c62a86f..4155df9 100644 --- a/lua/clever_f/repeat_resolver.lua +++ b/lua/clever_f/repeat_resolver.lua @@ -50,6 +50,16 @@ local function finite_time(value) and value < math.huge end +function M.truncate_elapsed_ms(elapsed_ms) + if not finite_time(elapsed_ms) then + fail("elapsed milliseconds must be finite", 2) + end + local integer_part = math.modf(elapsed_ms) + return integer_part +end + +M.truncate_milliseconds = M.truncate_elapsed_ms + local resolver_metatable = { __index = RepeatResolver, __newindex = function() @@ -141,7 +151,7 @@ function RepeatResolver:evaluate_timeout() fail("repeat clock must return finite milliseconds", 2) end local elapsed_ms = current_time - resolver_records[self].state.repeat_timestamp_ms - return nil, elapsed_ms + return nil, M.truncate_elapsed_ms(elapsed_ms) end RepeatResolver.check_timeout = RepeatResolver.evaluate_timeout |
