Module pl.types
Dealing with Detailed Type Information
Functions
| is_callable (obj) | is the object either a function or a callable object?. | 
| is_type (obj, tp) | is the object of the specified type?. | 
| type (obj) | a string representation of a type. | 
| is_integer (x) | is this number an integer? | 
| is_empty (o, ignore_spaces) | Check if the object is "empty". | 
| is_indexable (val) | is an object 'array-like'? | 
| is_iterable (val) | can an object be iterated over with pairs? | 
| is_writeable (val) | can an object accept new key/pair values? | 
| to_bool (o[, true_strs[, check_objs]]) | Convert to a boolean value. | 
Functions
- is_callable (obj)
- 
    is the object either a function or a callable object?.
    Parameters:- obj Object to check.
 
- is_type (obj, tp)
- 
    is the object of the specified type?.
 If the type is a string, then use type, otherwise compare with metatable.
NOTE: this function is imported from utils.is_type. Parameters:- obj An object to check
- tp The expected type
 See also:
- type (obj)
- 
    a string representation of a type.
 For tables and userdata with metatables, we assume that the metatable has a _namefield. If the field is not present it will return 'unknown table' or 'unknown userdata'. Lua file objects return the type 'file'.Parameters:- obj an object
 Returns:- 
        a string like 'number', 'table', 'file' or 'List'
    
 
- is_integer (x)
- 
    is this number an integer?
    Parameters:- x a number
 Returns:- 
        boolean
    
 Raises:error if x is not a number
- is_empty (o, ignore_spaces)
- 
Check if the object is "empty". An object is considered empty if it is: - nil
- a table without any items (key-value pairs or indexes)
- a string with no content ("")
- not a nil/table/string
 Parameters:- o The object to check if it is empty.
- ignore_spaces If the object is a string and this is true the string is considered empty if it only contains spaces.
 Returns:trueif the object is empty, otherwise a falsy value.
- is_indexable (val)
- 
    is an object 'array-like'?
 An object is array like if:
- it is a table, or
- it has a metatable with __lenand__indexmethods
 NOTE: since __lenis 5.2+, on 5.1 is usually returnsfalsefor userdataParameters:- val any value.
 Returns:trueif the object is array-like, otherwise a falsy value.
- is_iterable (val)
- 
    can an object be iterated over with pairs?
 An object is iterable if:
- it is a table, or
- it has a metatable with a __pairsmeta method
 NOTE: since __pairsis 5.2+, on 5.1 is usually returnsfalsefor userdataParameters:- val any value.
 Returns:trueif the object is iterable, otherwise a falsy value.
- is_writeable (val)
- 
can an object accept new key/pair values? An object is iterable if: - it is a table, or
- it has a metatable with a __newindexmeta method
 Parameters:- val any value.
 Returns:trueif the object is writeable, otherwise a falsy value.
- to_bool (o[, true_strs[, check_objs]])
- 
Convert to a boolean value. True values are: - boolean: true.
- string: 'yes', 'y', 'true', 't', '1' or additional strings specified by true_strs.
- number: Any non-zero value.
- table: Is not empty and check_objsis true.
- everything else: Is not nilandcheck_objsis true.
 Parameters:- o The object to evaluate.
- true_strs optional Additional strings that when matched should evaluate to true. Comparison is case insensitive. This should be a List of strings. E.g. "ja" to support German. (optional)
- check_objs True if objects should be evaluated. (optional)
 Returns:- 
        true if the input evaluates to true, otherwise false.