# intuitive object notation | ion hello { # the current deserializer is experimental # and can be buggy at times world 'hello world!' } # this document can be deserialized with the following rust structs # #[derive(Serialize, Deserialize)] # struct Object { # hello: Hello, # } # # #[derive(Serialize, Deserialize)] # struct Hello { # world: String, # } # ion supports single line comments # ion is based on pair expressions # this means that for each key, there must be a value # this is the standard # : this also works # = this works too # this means that it is not possible to have a ion # object that only contains a list. There must be a key. # in this case, the key is hello # the value is an object that contains # the world key and its value # # keys can be whatever you want as long as they can be interpreted as a string # # values can be any of the following: # lists => [ val ] | [ 1 2 3 ] # maps|structs => { key value } # string|literal => string|"string" # i32|f32 => 10 | 10.0 # option => T | () # it should be noted that ion does not have null, # instead, it uses the unit as null # for syntax highlighting, it is recommended to set ion as ruby