~/bend-docscommunity

json.bend relies on unsafe/foreign

raw source on the hub · import 0xbfb6718181103ac566eb0ff5308d47ac/json.bend as Json

1 import
import Base

Types

type Member source · line 4 · raw

@-a:Quant -> @-A:Kind(a) -> Kind(a)

Decimal numbers remain text; objects retain ordering and unknown fields.

type Json source · line 7 · raw

Data

type Token source · line 98 · raw

Data

type NumberState source · line 190 · raw

Data

Number states avoid matching U32 bit constructors in the parser.

type LexKind source · line 275 · raw

Data

type Parse source · line 324 · raw

Type

type Mode source · line 328 · raw

Data

Definitions

def hex source · line 15 · raw

@n:U32 -> String

def escape_code source · line 18 · raw

@control:Bool -> @+c:U32 -> String

def escape_char source · line 25 · raw

@+c:U32 -> String

def escape_go source · line 28 · raw

@s:String -> @acc:String -> String

def escape source · line 35 · raw

@s:String -> String

def quote source · line 38 · raw

@s:String -> String

def comma source · line 41 · raw

@empty:Bool -> String

def choose source · line 70 · raw

@found:Bool -> @value:Json -> @other:Maybe<&2, Json> -> Maybe<&2, Json>

def get_fields source · line 77 · raw

@fields:List<&2, Member<&2, Json>> -> @+key:String -> Maybe<&2, Json>

def get source · line 84 · raw

@value:Json -> @key:String -> Maybe<&2, Json>

def text source · line 91 · raw

@value:Maybe<&2, Json> -> String

def select_u32 source · line 107 · raw

@ok:Bool -> @yes:U32 -> @no:U32 -> U32

def hex_digit source · line 112 · raw

@ch:Char -> U32

def checked_char source · line 118 · raw

@ok:Bool -> @code:U32 -> Result<&1, &1, String, Char>

def hex_checked source · line 123 · raw

@ok:Bool -> @code:U32 -> Result<&1, &1, String, U32>

def hex4 source · line 128 · raw

@+a:U32 -> @+b:U32 -> @+c:U32 -> @+d:U32 -> Result<&1, &1, String, U32>

def unicode_escape source · line 131 · raw

@high:Bool -> @+code:U32 -> @rest:String -> Result<&1, &1, String, Pair(Char, String)>

def unicode_escape_code source · line 146 · raw

@result:Result<&1, &1, String, U32> -> @rest:String -> Result<&1, &1, String, Pair(Char, String)>

def unescape source · line 151 · raw

@s:String -> Result<&1, &1, String, Pair(Char, String)>

def string_char source · line 165 · raw

@ok:Bool -> @ch:Char -> @rest:String -> @acc:String -> @next:(@_:String -> @_:String -> Result<&1, &1, String, Pair(String, String)>) -> Result<&1, &1, String, Pair(String, String)>

def string_escape source · line 171 · raw

@result:Result<&1, &1, String, Pair(Char, String)> -> @acc:String -> @next:(@_:String -> @_:String -> Result<&1, &1, String, Pair(String, String)>) -> Result<&1, &1, String, Pair(String, String)>

def string_read source · line 177 · raw

@fuel:Nat -> @s:String -> @acc:String -> Result<&1, &1, String, Pair(String, String)>

def select_state source · line 202 · raw

@ok:Bool -> @yes:NumberState -> @no:NumberState -> NumberState

def number_state source · line 207 · raw

@state:NumberState -> @+ch:Char -> NumberState

def number_end source · line 220 · raw

@state:NumberState -> Bool

def number_valid source · line 228 · raw

@s:String -> @state:NumberState -> Bool

def primitive source · line 233 · raw

@ok:Bool -> @raw:String -> Result<&1, &1, String, Token>

def literal_known source · line 238 · raw

@is_null:Bool -> @is_true:Bool -> @is_false:Bool -> @+raw:String -> Result<&1, &1, String, Token>

def literal source · line 245 · raw

@+raw:String -> Result<&1, &1, String, Token>

def delimiter source · line 248 · raw

@+c:Char -> Bool

def word_step source · line 251 · raw

@stop:Bool -> @c:Char -> @rest:String -> @acc:String -> @next:(@_:String -> @_:String -> Pair(String, String)) -> Pair(String, String)

def word source · line 257 · raw

@s:String -> @acc:String -> Pair(String, String)

def lex_string source · line 262 · raw

@result:Result<&1, &1, String, Pair(String, String)> -> @next:(@_:String -> @_:Maybe<&2, Token> -> Result<&1, &1, String, List<&2, Token>>) -> Result<&1, &1, String, List<&2, Token>>

def lex_word source · line 268 · raw

@pair:Pair(String, String) -> @next:(@_:String -> @_:Maybe<&2, Token> -> Result<&1, &1, String, List<&2, Token>>) -> Result<&1, &1, String, List<&2, Token>>

def select_lex source · line 286 · raw

@ok:Bool -> @yes:LexKind -> @no:LexKind -> LexKind

def lex_kind source · line 291 · raw

@+c:Char -> LexKind

def lex_step source · line 298 · raw

@kind:LexKind -> @c:Char -> @+rest:String -> @next:(@_:String -> @_:Maybe<&2, Token> -> Result<&1, &1, String, List<&2, Token>>) -> Result<&1, &1, String, List<&2, Token>>

def lex_acc source · line 311 · raw

@token:Maybe<&2, Token> -> @acc:List<&2, Token> -> List<&2, Token>

def lex source · line 316 · raw

@fuel:Nat -> @s:String -> @acc:List<&2, Token> -> Result<&1, &1, String, List<&2, Token>>

def array_end source · line 333 · raw

@ok:Bool -> @acc:List<&2, Json> -> @rest:List<&2, Token> -> Parse

def object_end source · line 338 · raw

@ok:Bool -> @acc:List<&2, Member<&2, Json>> -> @rest:List<&2, Token> -> Parse

def array_after source · line 343 · raw

@result:Parse -> @acc:List<&2, Json> -> @next:(@_:Mode -> @_:List<&2, Token> -> Parse) -> Parse

def object_after source · line 350 · raw

@result:Parse -> @key:String -> @acc:List<&2, Member<&2, Json>> -> @next:(@_:Mode -> @_:List<&2, Token> -> Parse) -> Parse

def parse source · line 357 · raw

@fuel:Nat -> @mode:Mode -> @tokens:List<&2, Token> -> Parse

def finish source · line 372 · raw

@result:Parse -> Result<&1, &1, String, Json>

def depth_guard source · line 378 · raw

@ok:Bool -> @depth:U32 -> @next:(@_:U32 -> Bool) -> Bool

def depth_step source · line 383 · raw

@token:Token -> @+depth:U32 -> @next:(@_:U32 -> Bool) -> Bool

def depth_valid source · line 391 · raw

@tokens:List<&2, Token> -> @depth:U32 -> Bool

def token_count source · line 396 · raw

@tokens:List<&2, Token> -> @count:U32 -> U32

def parse_checked source · line 401 · raw

@ok:Bool -> @count:U32 -> @tokens:List<&2, Token> -> Result<&1, &1, String, Json>

def parse_tokens source · line 406 · raw

@+tokens:List<&2, Token> -> Result<&1, &1, String, Json>

def read source · line 410 · raw

@+s:String -> Result<&1, &1, String, Json>

Unsafe

unsafe stringify source · line 49 · raw

@value:Json -> String