readData

Reads data from a string (which can be string, char, double, integer, bool)

Addresses are read as integers

readData

Return Value

Type: NaData

the data in NaInstArg

Throws

Exception if data is invalid

Examples

NaInstArgType type;
assert("true".readData(type) == NaData(true));
assert(type == NaInstArgType.Boolean);
assert("false".readData(type) == NaData(false));
assert(type == NaInstArgType.Boolean);

assert("15".readData(type).value!integer == 15);
assert(type == NaInstArgType.Integer);
assert("0".readData(type).value!integer == 0);
assert(type == NaInstArgType.Integer);
assert("-1".readData(type).value!integer == -1);
assert(type == NaInstArgType.Integer);
assert("\"str\\t\"".readData(type).value!string == "str\t");
assert(type == NaInstArgType.String);

assert("potato".readData(type).value!string == "potato");
assert(type == NaInstArgType.Label);

assert("@1234".readData(type).value!NaInstArgAddress == NaInstArgAddress(1234));
assert(type == NaInstArgType.Address);
assert("@1234,12".readData(type).value!NaInstArgAddress == NaInstArgAddress("1234",12));
assert(type == NaInstArgType.Address);
assert("@label".readData(type).value!NaInstArgAddress == NaInstArgAddress("label"));
assert(type == NaInstArgType.Address);
assert("@label,1234".readData(type).value!NaInstArgAddress == NaInstArgAddress("label",1234));
assert(type == NaInstArgType.Address);

Meta