Data types in toml allow you to define the type of a key and value pairs.
Toml data types
In Toml documents, value data must support the following types
- a String
- an Integer
- a Float
- a boolean
- date and time types(Offset Local date, times)
- an array
- an inline-table
toml value can not support the following types
- Binary data
- Infinity and NAN
- undefined
- functions
TOML Strings
value strings accept basic strings, multiple-line strings, literals, and multiple-line literals. values of strings can be represented in double quotes as follows,
name=“Franc”
Multiple lines of strings are accepted as values, Multiline strings are enclosed in three quotations as follows statement=""" I am statement with multi-line strings """"
Literal values are enclosed in single quotes as follows
documentpath='opt\docs\repo'
multi-line literal values are enclosed by three single quotes as follows
lines=’’' this is multiple lines literals example’''
TOML Integer types
values in documents accept positive and negative values
example
key1=+45 \# positive number value
key2=-20 \# negative number value
Big integers are expressed with an underscore as follows
key3=300_000
values can also accept hexadecimal, octal, and binary numbers
key5=0xDFA1 \# prefix 0X for hex decimal numbers
key6=0o746 \# prefix 0o for octal numbers
key6=0b1001 \# prefix 0b for binary numbers
TOML Float types
float numbers contain integers and decimal numbers separated by a dot(.)
example
keyfloat1=+1.5
keyfloat1=-1.5
TOML Boolean types
Boolean is true and false in lower cases accepted as values.
key_true=true
key_false=false
TOML Date types
The following are supported date formats, Date must be as per RFC 3339
OffsetDate Time Local Date Time Local Date Local Time
Example
offsetdatetime-key=2020-02-20T06:10:20Z # offset Date time
offsetdatetime-key1=2020-02-20 06:10:20Z # offset Date time - T is replaced with spaces also
localdatetime-key=2020-02-20 06:10:20 # local Date time
date-key=2020-02-20 # Date type
time-key=06:10:20 # Time type
TOML Array type
Like any programming language, This also provides arrays, arrays are used to group the elements referred to with a single variable name. Syntax
Array-Key=Array-Values
- Array values are enclosed with square brackets
- Double quotes are not required
- spaces are not considered
- each value in an Array-Values is separated by a comma symbol.
- value contains the same types - strings, numbers, etc.. or of mixed types- (string and numbers)
- values contain multiple lines with a line break or enter
TOML Array of strings/numbers Example
Array values contain the same type of data i.e. strings.
numbers=[1,2,3,4] # array of numbers
weekends=["SATURDAY","SUNDAY"] # array of strings
floatarray=[1.0,3.5] # array of floats
mixed-array-1=[1,"one"] # array of mixed type
array-multiple-lines=[
7,9,0
]
nested array in toml examples
a nested array is an array of arrays, each element in an array contains an array of values.
nested-array-key=[[2,3],[5,6]] # nested array of numbers
nested-array-key1=[
[12,3],
["URL1","URL2"]
] # nested array of mixed types
Table Data type
One of the important types is the type that is a representation of HashTable or properties objects in another programming language. The table stores the collection of keys and values under a one name.
Syntax:
[table-name]
key="value"
#line break
Table type rules
- The first line of the table is enclosed in a square bracket
- The last line must be EOF or specify the next table.
- data in the table is unordered
- All the data type rules are applied to table data
- spaces are ignored
- Tables without data is valid
- Duplicate tables are not allowed
Example:
[my-table]
id=1
name="Frank"
Inline Table type
This is another way of expressing data in table format examples
employee={id=2,name="Tom"}
Rules
- Inline tables data is enclosed in curly braces
- All the data placed in a single line
- Newline inside braces are invalid