????
Current Path : /opt/imunify360-webshield/site/lualib/ |
Current File : //opt/imunify360-webshield/site/lualib/type_checkers.lua |
-- -------------------------------------------------------------------------------- -- FILE: type_checkers.lua -- DESCRIPTION: protoc-gen-lua -- Google's Protocol Buffers project, ported to lua. -- https://code.google.com/p/protoc-gen-lua/ -- -- Copyright (c) 2010 , 林卓毅 (Zhuoyi Lin) netsnail@gmail.com -- All rights reserved. -- -- Use, modification and distribution are subject to the "New BSD License" -- as listed at <url: http://www.opensource.org/licenses/bsd-license.php >. -- -- COMPANY: NetEase -- CREATED: 2010年07月29日 19时30分37秒 CST -------------------------------------------------------------------------------- -- local type = type local error = error local string = string module "type_checkers" function TypeChecker(acceptable_types) local acceptable_types = acceptable_types return function(proposed_value) local t = type(proposed_value) if acceptable_types[type(proposed_value)] == nil then error(string.format('%s has type %s, but expected one of: %s', proposed_value, type(proposed_value), acceptable_types)) end end end function Int32ValueChecker() local _MIN = -2147483648 local _MAX = 2147483647 return function(proposed_value) if type(proposed_value) ~= 'number' then error(string.format('%s has type %s, but expected one of: number', proposed_value, type(proposed_value))) end if _MIN > proposed_value or proposed_value > _MAX then error('Value out of range: ' .. proposed_value) end end end function Uint32ValueChecker(IntValueChecker) local _MIN = 0 local _MAX = 0xffffffff return function(proposed_value) if type(proposed_value) ~= 'number' then error(string.format('%s has type %s, but expected one of: number', proposed_value, type(proposed_value))) end if _MIN > proposed_value or proposed_value > _MAX then error('Value out of range: ' .. proposed_value) end end end function UnicodeValueChecker() return function (proposed_value) if type(proposed_value) ~= 'string' then error(string.format('%s has type %s, but expected one of: string', proposed_value, type(proposed_value))) end end end