src/Manifest.bend checks
raw source on the hub · import mylsm-lsm-store@0.5.0.0/src/Manifest.bend as Manifest
4 imports
import Base import ./StorageBytes.bend as StorageBytes import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes import ./hub_sha/sha256.bend as SHA
Types
type Manifest source · line 7 · raw
Data
Represent Manifest data used by the binary manifest codec.
M@levels:List<&2, List<&2, String>> -> Manifest
type Error source · line 11 · raw
Data
Represent Error data used by the binary manifest codec.
TooLargeError
InvalidNameError
type ParseResult source · line 16 · raw
Data
Represents parseresult data in manifest.
Parsed@manifest:Manifest -> ParseResult
UnsupportedVersion@version:U32 -> ParseResult
MalformedParseResult
ParseLimitExceededParseResult
type ParseState source · line 23 · raw
Data
Represent ParseState data used by the binary manifest codec.
ReadNamesCount@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> ParseState
ReadNameLength@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> ParseState
ReadNameBody@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> ParseState
type ParseInput source · line 29 · raw
Type
Represent ParseInput data used by the binary manifest codec.
NoInput@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> ParseInput
NameInput@value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>) -> ParseInput
type ParseTransition source · line 34 · raw
Type
Represent ParseTransition data used by the binary manifest codec.
Continue@state:ParseState -> @input:ParseInput -> ParseTransition
Reject@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> ParseTransition
Finish@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @levels:List<&2, List<&2, String>> -> ParseTransition
Definitions
def magic.result source · line 39 · raw
@result:Maybe<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def magic source · line 47 · raw
0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
Handle magic in the binary manifest codec.
def u32 source · line 51 · raw
@+value:U32 -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
Handle u32 in the binary manifest codec.
def bytes.clone.pair source · line 54 · raw
@+len:U32 -> @copied:Pair(Array<U32>, Array<U32>) -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes)
def bytes.clone.split source · line 59 · raw
@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes)
def bytes.clone.first source · line 64 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def bytes.length source · line 69 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, U32) -> U32
def bytes.slice.second source · line 74 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.name.copies source · line 79 · raw
@+len:U32 -> @tail:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @copies:Pair(Array<U32>, Array<U32>) -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.name.buffer source · line 84 · raw
@+len:U32 -> @tail:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @packed:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.name.copy source · line 89 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, U32) -> @tail:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.name.prefix source · line 94 · raw
@result:Result<&1, &1, Pair(U32, String), 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> @tail:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def name.char.valid source · line 101 · raw
@+char:Char -> Bool
def name.text.valid.chars source · line 108 · raw
@text:String -> @valid:Bool -> Bool
def name.text.valid.edge source · line 115 · raw
@text:String -> @dot_component:Bool -> Bool
def name.text.valid source · line 122 · raw
@+text:String -> Bool
def names.valid.step source · line 129 · raw
@rest:List<&2, String> -> @valid:Bool -> Bool
def names.valid source · line 138 · raw
@names:List<&2, String> -> Bool
def levels.valid.step source · line 141 · raw
@rest:List<&2, List<&2, String>> -> @valid:Bool -> Bool
def levels.valid source · line 150 · raw
@levels:List<&2, List<&2, String>> -> Bool
def encode.names source · line 153 · raw
@names:List<&2, String> -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.levels source · line 160 · raw
@levels:List<&2, List<&2, String>> -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.body source · line 167 · raw
@+manifest:Manifest -> 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes
def encode.digest.checked source · line 172 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>
def encode.body.digest source · line 179 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>
def encode.body.checked source · line 184 · raw
@manifest:Manifest -> Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>
def encode.checked source · line 188 · raw
@manifest:Manifest -> @valid:Bool -> Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>
def manifest.valid source · line 195 · raw
@manifest:Manifest -> Bool
def serialize source · line 201 · raw
@+manifest:Manifest -> Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>
Handle serialize in the binary manifest codec.
def token.from.result source · line 204 · raw
@result:Result<&1, &1, Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> String
def token source · line 212 · raw
@manifest:Manifest -> String
Handle token in the binary manifest codec.
def cursor.u32 source · line 216 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>)
def cursor.bytes source · line 219 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @len:U32 -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit>)
def read.name.text source · line 222 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @limit:0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit -> @name:String -> @valid:Bool -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.decoded source · line 234 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @limit:0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit -> @decoded:Result<&1, &1, Pair(U32, String), String> -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.checked source · line 245 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @limit:0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit -> @bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.buffer.copies source · line 252 · raw
@limit:0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit -> @len:U32 -> @+offset:U32 -> @start:U32 -> @end:U32 -> @copies:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.buffer source · line 265 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @limit:0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit -> @len:U32 -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.region.result source · line 270 · raw
@region:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.CursorLimit>) -> @len:U32 -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name.region source · line 280 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @+len:U32 -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def read.name source · line 283 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>)
def parse.step.reject.name source · line 290 · raw
@value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>) -> ParseTransition
def parse.step.reject source · line 295 · raw
@input:ParseInput -> ParseTransition
def parse.step.count.value source · line 302 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> ParseTransition
def parse.step.count source · line 313 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @input:ParseInput -> ParseTransition
def parse.step.length.named source · line 320 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> @value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>) -> ParseTransition
def parse.step.length.value source · line 329 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> @value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> ParseTransition
def parse.step.length.input source · line 342 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> @input:ParseInput -> ParseTransition
def parse.step.level.remaining source · line 355 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names:List<&2, String> -> @cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> ParseTransition
def parse.step.level source · line 371 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_acc:List<&2, String> -> @input:ParseInput -> ParseTransition
def parse.step.name.value source · line 383 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> @value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>) -> ParseTransition
def parse.step.name source · line 396 · raw
@levels_left:Nat -> @levels_acc:List<&2, List<&2, String>> -> @names_left:Nat -> @names_acc:List<&2, String> -> @input:ParseInput -> ParseTransition
def parse.step.state source · line 409 · raw
@state:ParseState -> @input:ParseInput -> ParseTransition
def parse.loop.exhausted.name source · line 422 · raw
@value:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, String>) -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, Manifest>)
def parse.loop.exhausted source · line 427 · raw
@transition:ParseTransition -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, Manifest>)
def parse.loop source · line 438 · raw
@fuel:Nat -> @transition:ParseTransition -> Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, Manifest>)
def bytes.eq.result source · line 451 · raw
@comparison:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, Bool)) -> Bool
def checksum.valid source · line 456 · raw
@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @body_len:U32 -> @digest:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Bool
def parse.body.digest.verified source · line 459 · raw
@body_len:U32 -> @hash_source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @levels:List<&2, List<&2, String>> -> @digest:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
def parse.body.digest.checked source · line 477 · raw
@body_len:U32 -> @hash_source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @footer_source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @levels:List<&2, List<&2, String>> -> @within_size:Bool -> Maybe<&2, Manifest>
def parse.body.digest.size source · line 490 · raw
@+body_len:U32 -> @hash_source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @size_pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, U32) -> @levels:List<&2, List<&2, String>> -> Maybe<&2, Manifest>
def parse.body.digest.sources source · line 500 · raw
@body_len:U32 -> @levels:List<&2, List<&2, String>> -> @sources:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> Maybe<&2, Manifest>
def parse.body.position source · line 509 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @levels:List<&2, List<&2, String>> -> Maybe<&2, Manifest>
def parse.body.levels.manifest source · line 518 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @manifest:Manifest -> Maybe<&2, Manifest>
def parse.body.levels source · line 523 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @result:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, Manifest>) -> Maybe<&2, Manifest>
def parse.body.start source · line 530 · raw
@count:Nat -> @cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
def parse.body source · line 537 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
def parse.version source · line 544 · raw
@cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @valid:Bool -> Maybe<&2, Manifest>
def parse.magic source · line 551 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> @source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
def parse.input.second.valid source · line 558 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @valid:Bool -> Maybe<&2, Manifest>
def parse.input.second source · line 565 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> Maybe<&2, Manifest>
def parse.input.first.valid source · line 572 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @cursor:0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor -> @valid:Bool -> Maybe<&2, Manifest>
def parse.input.first source · line 579 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> Maybe<&2, Manifest>
def parse.input.start source · line 586 · raw
@sources:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> Maybe<&2, Manifest>
def parse.input.with_magic source · line 591 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
def parse.bounded source · line 594 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @within_limit:Bool -> Maybe<&2, Manifest>
def parse.size source · line 601 · raw
@size_pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, U32) -> Maybe<&2, Manifest>
def parse source · line 607 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, Manifest>
Handle parse in the binary manifest codec.
def parse.result.parsed source · line 610 · raw
@parsed:Maybe<&2, Manifest> -> ParseResult
def parse.result.version.checked source · line 617 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @version:U32 -> @supported:Bool -> ParseResult
def parse.result.version.read source · line 628 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> ParseResult
def parse.result.second.checked source · line 638 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> @valid:Bool -> ParseResult
def parse.result.second.read source · line 649 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> ParseResult
def parse.result.first.checked source · line 659 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> @valid:Bool -> ParseResult
def parse.result.first.read source · line 670 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> ParseResult
def parse.result.start source · line 680 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes) -> ParseResult
def parse.result.bounded source · line 685 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @within:Bool -> ParseResult
def parse.result.sized source · line 692 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes, U32) -> ParseResult
def parse_result source · line 698 · raw
@source:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> ParseResult
Separates a valid Manifest from unsupported and malformed input.
def unsupported_version_error_code source · line 702 · raw
U32
Returns the error code for an unsupported Manifest version.
def malformed_error_code source · line 706 · raw
U32
Returns the error code for malformed Manifest data.
def parse_limit_error_code source · line 710 · raw
U32
Returns the error code for a Manifest size limit.
def is_decided source · line 714 · raw
@_result:Maybe<&2, Manifest> -> Bool
Check whether decided holds for the binary manifest codec.