src/json.bend relies on unsafe/foreign
raw source on the hub · import 0x958db28bf0cef817bff69fac7beb9846/src/json.bend as Json
1 import
import Base
Types
type Json source · line 4 · raw
Data
Numbers contain decimal tokens; native effects validate syntax and range.
JsonNullJson
JsonBool@value:Bool -> Json
JsonNumber@decimal:String -> Json
JsonString@value:String -> Json
JsonArray@items:List<&2, Json> -> Json
JsonObject@entries:List<&2, Sigma<&2, &2, String, _ => Json>> -> Json
type ParseResult source · line 12 · raw
Data
JsonDone@value:Json -> ParseResult
JsonFailure@code:String -> @message:String -> ParseResult
type EncodeResult source · line 66 · raw
Data
JsonEncoded@text:String -> EncodeResult
JsonEncodeFailure@code:String -> @message:String -> EncodeResult
Definitions
def lookup_step source · line 19 · raw
@found:Bool -> @value:Json -> @rest:(@_:Unit -> Maybe<&1, Json>) -> Maybe<&1, Json>
def lookup source · line 26 · raw
@+key:String -> @entries:List<&2, Sigma<&2, &2, String, _ => Json>> -> Maybe<&1, Json>
def field source · line 33 · raw
@key:String -> @value:Json -> Maybe<&1, Json>
def as_string source · line 40 · raw
@value:Json -> Maybe<&1, String>
def object source · line 48 · raw
@entries:List<&2, Sigma<&2, &2, String, _ => Json>> -> Json
Builders preserve list order. Duplicate object keys are rejected on encoding.
def array source · line 51 · raw
@items:List<&2, Json> -> Json
def string source · line 54 · raw
@text:String -> Json
def boolean source · line 57 · raw
@value:Bool -> Json
def null source · line 60 · raw
Json
def u32 source · line 63 · raw
@value:U32 -> Json
def Json.stringify source · line 73 · raw
@value:Json -> IO(EncodeResult)
Effects (foreign code)
effect Json.parse source · line 16 · raw
@text:String -> IO(ParseResult)
foreign: src/effects/json.c
effect Json.stringify_with_limit source · line 70 · raw
@value:Json -> @max_bytes:U32 -> IO(EncodeResult)
foreign: src/effects/json.c