~/bend-docscommunity

src/schema.bend relies on unsafe/foreign

raw source on the hub · import 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/schema.bend as Schema

3 imports
import Base
import ./json.bend as Json
import ./server.bend as Web

Types

type Field source · line 5 · raw

@-S:Data -> Data

type Schema source · line 8 · raw

Data

type Verdict source · line 16 · raw

Data

type Task source · line 20 · raw

Data

Definitions

def check source · line 24 · raw

@ok:Bool -> @path:List<&2, String> -> @code:String -> @rest:List<&2, Task> -> List<&2, Task>

def text source · line 29 · raw

@min:Nat -> @max:Nat -> @path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def uint_value source · line 35 · raw

@min:U32 -> @max:U32 -> @path:List<&2, String> -> @value:Maybe<&2, U32> -> @rest:List<&2, Task> -> List<&2, Task>

def uint source · line 40 · raw

@min:U32 -> @max:U32 -> @path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def boolean source · line 45 · raw

@path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def nullable source · line 50 · raw

@inner:Schema -> @path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def child source · line 55 · raw

@path:List<&2, String> -> @name:String -> List<&2, String>

def items source · line 58 · raw

@+schema:Schema -> @+path:List<&2, String> -> @values:List<&2, 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json> -> @+index:Nat -> @rest:List<&2, Task> -> List<&2, Task>

def sequence source · line 64 · raw

@inner:Schema -> @min:Nat -> @max:Nat -> @+path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def field_value source · line 70 · raw

@required:Bool -> @schema:Schema -> @path:List<&2, String> -> @value:Maybe<&1, 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json> -> @rest:List<&2, Task> -> List<&2, Task>

def fields source · line 75 · raw

@rules:List<&2, Field<Schema>> -> @+path:List<&2, String> -> @+entries:List<&2, Sigma<&2, &2, String, _ => 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json>> -> @rest:List<&2, Task> -> List<&2, Task>

def named_step source · line 81 · raw

@found:Bool -> @next:(@_:Unit -> Bool) -> Bool

def named source · line 86 · raw

@+name:String -> @rules:List<&2, Field<Schema>> -> Bool

def extras source · line 91 · raw

@+rules:List<&2, Field<Schema>> -> @+path:List<&2, String> -> @entries:List<&2, Sigma<&2, &2, String, _ => 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json>> -> @rest:List<&2, Task> -> List<&2, Task>

def strict source · line 97 · raw

@enabled:Bool -> @rules:List<&2, Field<Schema>> -> @path:List<&2, String> -> @entries:List<&2, Sigma<&2, &2, String, _ => 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json>> -> @rest:List<&2, Task> -> List<&2, Task>

def object source · line 102 · raw

@+rules:List<&2, Field<Schema>> -> @closed:Bool -> @+path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def expand source · line 107 · raw

@schema:Schema -> @path:List<&2, String> -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @rest:List<&2, Task> -> List<&2, Task>

def validate source · line 124 · raw

@schema:Schema -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> Verdict

def path_json source · line 127 · raw

@path:List<&2, String> -> List<&2, 0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json>

def error source · line 132 · raw

@path:List<&2, String> -> @code:String -> IO(0xf5a52e743a7f75c5d624c27c9e0ec81f/src/server.Reply)

def accepted source · line 137 · raw

@result:Verdict -> @value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @next:(@_:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> IO(0xf5a52e743a7f75c5d624c27c9e0ec81f/src/server.Reply)) -> IO(0xf5a52e743a7f75c5d624c27c9e0ec81f/src/server.Reply)

def apply source · line 142 · raw

@schema:Schema -> @+value:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> @next:(@_:0xf5a52e743a7f75c5d624c27c9e0ec81f/src/json.Json -> IO(0xf5a52e743a7f75c5d624c27c9e0ec81f/src/server.Reply)) -> IO(0xf5a52e743a7f75c5d624c27c9e0ec81f/src/server.Reply)

Unsafe

unsafe run source · line 118 · raw

@tasks:List<&2, Task> -> Verdict

Worklist expansion terminates for finite schema/data; this is tested, not a law.