valu3 0.9.6

A generic serialization/deserialization/type framework
Documentation
json           = _{ SOI ~ (object | array | string | number | boolean | null) ~ EOI }
WHITESPACE     = _{ " " | "\t" | "\r" | "\n" }
object         =  {
    ("#{" | "{") ~ "}"
  | ("#{" | "{") ~ key_value_pair ~ ("," ~ key_value_pair)* ~ "}"
}
key_value_pair =  { string ~ ":" ~ value }
array          =  {
    "[" ~ "]"
  | "[" ~ value ~ ("," ~ value)* ~ "]"
}
value          = _{ object | array | string | number | boolean | null }
boolean        =  { "true" | "false" }
null           =  { "null" }
string         = ${ "\"" ~ inner ~ "\"" }
inner          = @{ char* }
char           =  {
    !("\"" | "\\") ~ ANY
  | "\\" ~ ("\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t")
  | "\\" ~ ("u" ~ ASCII_HEX_DIGIT{4})
}
number         = @{
    "-"? ~ ("0" | ASCII_NONZERO_DIGIT ~ ASCII_DIGIT*) ~ ("." ~ ASCII_DIGIT*)? ~ (^"e" ~ ("+" | "-")? ~ ASCII_DIGIT+)?
}