:title
ucb_decode

:sig
DValue ucb_decode(String encoded)
bool ucb_decode(String encoded, DValue& out, String* error_out = 0)

:see
ucb_encode
0_DValue
json_decode

:content
Decodes UCEB1 bytes produced by `ucb_encode()` back into a `DValue`.

The one-argument form returns an empty `DValue` on invalid input. The three-argument form reports whether decoding succeeded and can return a human-readable error string.

```cpp
DValue decoded;
String error;
if(!ucb_decode(bytes, decoded, &error))
{
    print("decode failed: " + error);
    return;
}

print(decoded["name"].to_string());
```
