Software /
code /
prosody
Comparison
util/ip.lua @ 8436:ab9ddfb03d4d
util.ip: Cache return values of all methods in one place
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 01 Dec 2017 02:25:25 +0100 |
parent | 8435:47195f035d2f |
child | 8437:021129f7b0a3 |
comparison
equal
deleted
inserted
replaced
8435:47195f035d2f | 8436:ab9ddfb03d4d |
---|---|
10 | 10 |
11 local ip_methods = {}; | 11 local ip_methods = {}; |
12 | 12 |
13 local ip_mt = { | 13 local ip_mt = { |
14 __index = function (ip, key) | 14 __index = function (ip, key) |
15 return ip_methods[key](ip); | 15 local method = ip_methods[key]; |
16 if not method then return nil; end | |
17 local ret = method(ip); | |
18 ip[key] = ret; | |
19 return ret; | |
16 end, | 20 end, |
17 __tostring = function (ip) return ip.addr; end, | 21 __tostring = function (ip) return ip.addr; end, |
18 __eq = function (ipA, ipB) return ipA.addr == ipB.addr; end | 22 __eq = function (ipA, ipB) return ipA.addr == ipB.addr; end |
19 }; | 23 }; |
20 | 24 |