json.bend relies on unsafe/foreign
raw source on the hub · import bend-anthropic-sdk@0.1.0.1/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.
Field@-a:Quant -> @-A:Kind(a) -> @key:String -> @value:A -> Member<a, A>
type Json source · line 7 · raw
Data
NullJson
Boolean@value:Bool -> Json
Number@text:String -> Json
Text@value:String -> Json
Array@items:List<&2, Json> -> Json
Object@fields:List<&2, Member<&2, Json>> -> Json
type Token source · line 98 · raw
Data
Atom@value:Json -> Token
OpenArrayToken
CloseArrayToken
OpenObjectToken
CloseObjectToken
ColonToken
CommaToken
type NumberState source · line 190 · raw
Data
Number states avoid matching U32 bit constructors in the parser.
StartNumberState
MinusNumberState
NumZeroNumberState
IntegerNumberState
DotNumberState
FractionNumberState
ExponentNumberState
SignNumberState
DigitsNumberState
BadNumberState
type LexKind source · line 275 · raw
Data
SpaceLexKind
LArrayLexKind
RArrayLexKind
LObjectLexKind
RObjectLexKind
LColonLexKind
LCommaLexKind
QuoteLexKind
OtherLexKind
type Parse source · line 324 · raw
Type
Parsed@value:Json -> @rest:List<&2, Token> -> Parse
Invalid@message:String -> Parse
type Mode source · line 328 · raw
Data
ValueMode
Elements@acc:List<&2, Json> -> @empty:Bool -> Mode
Fields@acc:List<&2, Member<&2, Json>> -> @empty:Bool -> Mode
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