From 0d85bd630f7ef53e6bc16a09e45f9ba524e2aea1 Mon Sep 17 00:00:00 2001 From: rxi Date: Fri, 28 Feb 2014 19:39:29 +0000 Subject: [PATCH] Added lume.time(), incremented version revision --- README.md | 7 +++++++ lume.lua | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b7d8321..9e644a5 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,13 @@ local f = lume.fn(print, "Hello") f() -- Prints "Hello" ``` +### lume.time(fn, ...) +Inserts the arguments into function `fn` and calls it. Returns the time in +seconds the function `fn` took to execute followed by `fn`'s returned values. +```lua +lume.time(function(x) return x end, "hello") -- Returns 0, "hello" +``` + ### lume.serialize(x) Serializes the argument `x` into a string which can be loaded again using `lume.deserialize()`. Only booleans, numbers, tables and strings can be diff --git a/lume.lua b/lume.lua index caf1224..79d42f0 100644 --- a/lume.lua +++ b/lume.lua @@ -7,7 +7,7 @@ -- under the terms of the MIT license. See LICENSE for details. -- -local lume = { _version = "1.0.4" } +local lume = { _version = "1.0.5" } function lume.clamp(x, min, max) @@ -178,6 +178,13 @@ function lume.fn(fn, ...) end +function lume.time(fn, ...) + local start = os.clock() + local rtn = {fn(...)} + return (os.clock() - start), unpack(rtn) +end + + function lume.serialize(x) local f = { string = function(v) return string.format("%q", v) end, number = tostring, boolean = tostring }