annotate framework/env/convert/from_human.lua @ 396:762ab1e87702
Use uservalues rather than ephemeron tables in mondelefant
author |
jbe |
date |
Wed Dec 09 21:16:24 2015 +0100 (2015-12-09) |
parents |
9fdfb27f8e67 |
children |
|
rev |
line source |
jbe/bsw@0
|
1 function convert.from_human(str, typ)
|
jbe/bsw@0
|
2 if not typ then
|
jbe/bsw@0
|
3 error("Using convert.from_human(...) to convert a human readable string to an internal data type needs a type to be specified as second parameter.")
|
jbe/bsw@0
|
4 end
|
jbe/bsw@0
|
5 if not str then return nil end -- TODO: decide, if an error should be raised instead
|
jbe/bsw@0
|
6 local type_symbol = convert._type_symbol_mappings[typ]
|
jbe/bsw@0
|
7 if not type_symbol then
|
jbe/bsw@0
|
8 error("Unrecognized type reference passed to convert.from_human(...).")
|
jbe/bsw@0
|
9 end
|
jbe/bsw@0
|
10 local converter = convert["_from_human_to_" .. type_symbol]
|
jbe/bsw@0
|
11 if not converter then
|
jbe/bsw@0
|
12 error("Type reference passed to convert.from_human(...) was recognized, but the converter function is not existent.")
|
jbe/bsw@0
|
13 end
|
jbe/bsw@0
|
14 return converter(str)
|
jbe/bsw@0
|
15 end |