moebius1977

typeandcast

moebius1977 Updated   
Library "typeandcast"

Contains the following methods:
_type() - Returns the type of the variable in the forms "int", "array<int>", "matrix<linefill>"
_type_item() - Returns the type of the variable or of the element (for array/matrix). (e.g. `arrayFloat._type_item()` returns 'float').
_type_struct() - Returns the type of the structure only (i.e. "array" or "matrix"), for simple types (like e.g. `int`) returns "simple". (e.g. `arrayFloat._type_struct()` returns 'array').
_tona() - Casts na to the type of the parent object. (e.g. for an `int x` calling `x.tona()` returns `int(na)`

(inspired by the works of @kaigouthro and @faiyaz7283)

The _type() / _type_item() / _type_struct() methods are available for the following types:
int
float
bool
string
color
line
label
box
table
linefill
int
float
bool
string
color
line
label
box
table
linefill
matrix <int>
matrix <float>
matrix <bool>
matrix <string>
matrix <color>
matrix <line>
matrix <label>
matrix <box>
matrix <table>
matrix <linefill>


The `tona()' method is available only for the simple types (except `linefill`, coundn't make it work for it)

Please see the descriptions in the script.
Release Notes:
v2
Added tona() method for array and matrix types, for which it returns na value of the same type as their underlying elements. E.g. `matrixFloat.tona()` returns `float(na)`
Release Notes:
v3 Now .tona() is also working for linefill, array and matrix.
Release Notes:
v4 Added method cast() - casts int to float if sampleVar is float. Does nothing otherwise. (May be used to cast const int literals to float in the overloaded functions based on the tyoe of other arguments, e.g. if overloaded function adds a row filled with `1` to a float or int matrix.)
Release Notes:
v5 Fixed missing `export` for tona(linefill)
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.