Options
All
  • Public
  • Public/Protected
  • All
Menu

Library @swim/codec

Swim Codec Library

The Swim Codec library implements an incremental I/O engine, providing:

  • functional parsers and writers
  • display, debug, and diagnostic formatters
  • Unicode and binary codecs

Overview

Inputs and Outputs

An Input reader abstracts over a non-blocking token input stream, with single token lookahead. An Output writer abstracts over a non-blocking token output stream.

Parsers and Writers

A Parser incrementally reads from a sequence of Input chunks to produce a parsed result. A Writer incrementally writes to a sequence of Output chunks.

Binary codecs

The Binary factory has methods to create Input readers that read bytes out of byte buffers, and methods to create Output writers that write bytes into byte buffers.

Text codecs

The Unicode factory has methods to create Input readers that read Unicode code points out of strings, and methods to create Output writers that write Unicode code points into strings.

The Utf8 factory has methods to create Input readers that decode Unicode code points out of UTF-8 encoded byte buffers, and methods to create Output writers that encode Unicode code points into UTF-8 encoded byte buffers.

Binary formats

The Base10 factory has methods to create Parsers that incrementally parse decimal formatted integers, and methods to create Writers that incrementally write decimal formatted integers.

The Base16 factory has methods to create Parsers that incrementally decode hexadecimal encoded text input into byte buffers, and methods to create Writers that incrementally encode byte buffers to hexadecimal encoded text output.

The Base64 factory has methods to create Parsers that incrementally decode base-64 encoded text input into byte buffers, and methods to create Writers that incrementally encode byte buffers to base-64 encoded text output.

Formatters

The Display interface provides a standard way for implementing classes to directly output human readable display strings. Similarly, the Debug interface provides a standard way for implementing classes to directly output developer readable debug strings.

Format provides extension methods to output display and debug strings for all types, including builtin JavaScript types. OutputStyle provides helper functions to conditionally emit ASCII escape codes to stylize text for console output.

Diagnostics

A Tag abstracts over a source input location. A Mark describes a source input position, and a Span describes a source input range. A Diagnostic attaches an informational message to a source input location, and supports displaying the diagnostic as an annotated snippet of the relevant source input.

Index

Type aliases

AnyInputSettings

AnyInputSettings: InputSettings | InputSettingsInit

AnyOutputSettings

AnyOutputSettings: OutputSettings | OutputSettingsInit

Variables

Const Base10

Base10: { countDigits: any; decimalParser: any; decodeDigit: any; encodeDigit: any; integerParser: any; integerWriter: any; isDigit: any; numberParser: any; parseDecimal: any; parseInteger: any; parseNumber: any; writeInteger: any }

Type declaration

  • countDigits: function
    • countDigits(value: number): number
    • Parameters

      • value: number

      Returns number

  • decimalParser: function
    • decimalParser(): Parser<number>
    • Returns Parser<number>

  • decodeDigit: function
    • decodeDigit(c: number): number
    • Parameters

      • c: number

      Returns number

  • encodeDigit: function
    • encodeDigit(b: number): number
    • Parameters

      • b: number

      Returns number

  • integerParser: function
    • integerParser(): Parser<number>
    • Returns Parser<number>

  • integerWriter: function
    • integerWriter(): Writer<number, unknown>
    • integerWriter(input: number): Writer<unknown, number>
    • Returns Writer<number, unknown>

    • Parameters

      • input: number

      Returns Writer<unknown, number>

  • isDigit: function
    • isDigit(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • numberParser: function
    • numberParser(): Parser<number>
    • Returns Parser<number>

  • parseDecimal: function
    • Parameters

      Returns Parser<number>

  • parseInteger: function
    • Parameters

      Returns Parser<number>

  • parseNumber: function
    • Parameters

      Returns Parser<number>

  • writeInteger: function
    • writeInteger(output: Output<unknown>, input: number): Writer<unknown, unknown>
    • Parameters

      • output: Output<unknown>
      • input: number

      Returns Writer<unknown, unknown>

Const Binary

Binary: { output: any; outputBuffer: any }

Type declaration

  • output: function
    • Parameters

      Returns Output<Uint8Array>

    • Parameters

      Returns Output<Uint8Array>

  • outputBuffer: function
    • outputBuffer(array: Uint8Array, offset?: number, length?: number): OutputBuffer<Uint8Array>
    • Parameters

      • array: Uint8Array
      • Optional offset: number
      • Optional length: number

      Returns OutputBuffer<Uint8Array>

Const Format

Format: { lineSeparator: string; debug: any; debugAny: any; debugChar: any; debugNumber: any; debugString: any; decimal: any; display: any; displayAny: any; displayNumber: any; duration: any; encodeHex: any; prefix: any; trimTrailingZeros: any }

Type declaration

  • Readonly lineSeparator: string
  • debug: function
    • Parameters

      Returns string

  • debugAny: function
    • debugAny<T_1>(output: Output<T_1>, object: unknown): Output<T_1>
    • Type parameters

      • T_1

      Parameters

      • output: Output<T_1>
      • object: unknown

      Returns Output<T_1>

  • debugChar: function
    • debugChar<T_4>(output: Output<T_4>, character: number): Output<T_4>
    • Type parameters

      • T_4

      Parameters

      • output: Output<T_4>
      • character: number

      Returns Output<T_4>

  • debugNumber: function
    • debugNumber<T_3>(output: Output<T_3>, value: number): Output<T_3>
    • Type parameters

      • T_3

      Parameters

      • output: Output<T_3>
      • value: number

      Returns Output<T_3>

  • debugString: function
    • debugString<T_5>(output: Output<T_5>, string: string): Output<T_5>
    • Type parameters

      • T_5

      Parameters

      • output: Output<T_5>
      • string: string

      Returns Output<T_5>

  • decimal: function
    • decimal(value: number, precision?: number): string
    • Parameters

      • value: number
      • Optional precision: number

      Returns string

  • display: function
    • Parameters

      Returns string

  • displayAny: function
    • displayAny<T>(output: Output<T>, object: unknown): Output<T>
    • Type parameters

      • T

      Parameters

      • output: Output<T>
      • object: unknown

      Returns Output<T>

  • displayNumber: function
    • displayNumber<T_2>(output: Output<T_2>, value: number): Output<T_2>
    • Type parameters

      • T_2

      Parameters

      • output: Output<T_2>
      • value: number

      Returns Output<T_2>

  • duration: function
    • duration(millis: number, separator?: string): string
    • Parameters

      • millis: number
      • Optional separator: string

      Returns string

  • encodeHex: function
    • encodeHex(x: number): number
    • Parameters

      • x: number

      Returns number

  • prefix: function
    • prefix(value: number, precision?: number): string
    • Parameters

      • value: number
      • Optional precision: number

      Returns string

  • trimTrailingZeros: function
    • trimTrailingZeros(s: string): string
    • Parameters

      • s: string

      Returns string

Const OutputStyle

OutputStyle: { black: any; blackBold: any; blue: any; blueBold: any; bold: any; cyan: any; cyanBold: any; faint: any; gray: any; grayBold: any; green: any; greenBold: any; magenta: any; magentaBold: any; red: any; redBold: any; reset: any; yellow: any; yellowBold: any }

Type declaration

  • black: function
    • Type parameters

      • T_3

      Parameters

      Returns Output<T_3>

  • blackBold: function
    • Type parameters

      • T_11

      Parameters

      Returns Output<T_11>

  • blue: function
    • Type parameters

      • T_7

      Parameters

      Returns Output<T_7>

  • blueBold: function
    • Type parameters

      • T_15

      Parameters

      Returns Output<T_15>

  • bold: function
    • Type parameters

      • T_1

      Parameters

      Returns Output<T_1>

  • cyan: function
    • Type parameters

      • T_9

      Parameters

      Returns Output<T_9>

  • cyanBold: function
    • Type parameters

      • T_17

      Parameters

      Returns Output<T_17>

  • faint: function
    • Type parameters

      • T_2

      Parameters

      Returns Output<T_2>

  • gray: function
    • Type parameters

      • T_10

      Parameters

      Returns Output<T_10>

  • grayBold: function
    • Type parameters

      • T_18

      Parameters

      Returns Output<T_18>

  • green: function
    • Type parameters

      • T_5

      Parameters

      Returns Output<T_5>

  • greenBold: function
    • Type parameters

      • T_13

      Parameters

      Returns Output<T_13>

  • magenta: function
    • Type parameters

      • T_8

      Parameters

      Returns Output<T_8>

  • magentaBold: function
    • Type parameters

      • T_16

      Parameters

      Returns Output<T_16>

  • red: function
    • Type parameters

      • T_4

      Parameters

      Returns Output<T_4>

  • redBold: function
    • Type parameters

      • T_12

      Parameters

      Returns Output<T_12>

  • reset: function
    • Type parameters

      • T

      Parameters

      Returns Output<T>

  • yellow: function
    • Type parameters

      • T_6

      Parameters

      Returns Output<T_6>

  • yellowBold: function
    • Type parameters

      • T_14

      Parameters

      Returns Output<T_14>

Const Unicode

Unicode: { isAlpha: any; isDigit: any; isNewline: any; isSpace: any; isWhitespace: any; stringInput: any; stringOutput: any; stringWriter: any; writeString: any }

Type declaration

  • isAlpha: function
    • isAlpha(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • isDigit: function
    • isDigit(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • isNewline: function
    • isNewline(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • isSpace: function
    • isSpace(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • isWhitespace: function
    • isWhitespace(c: number): boolean
    • Parameters

      • c: number

      Returns boolean

  • stringInput: function
    • stringInput(string: string): Input
    • Parameters

      • string: string

      Returns Input

  • stringOutput: function
    • Parameters

      Returns Output<string>

    • Parameters

      Returns Output<string>

  • stringWriter: function
    • stringWriter<I>(): Writer<I, unknown>
    • stringWriter<I_1, O>(input: O): Writer<I_1, O>
    • Type parameters

      • I

      Returns Writer<I, unknown>

    • Type parameters

      • I_1

      • O

      Parameters

      • input: O

      Returns Writer<I_1, O>

  • writeString: function
    • writeString<I_2>(output: Output<unknown>, input: unknown): Writer<I_2, unknown>
    • Type parameters

      • I_2

      Parameters

      • output: Output<unknown>
      • input: unknown

      Returns Writer<I_2, unknown>

Const Utf8

Utf8: { decodedOutput: any; decodedString: any; encodedOutput: any; sizeOf: any }

Type declaration

  • decodedOutput: function
    • Type parameters

      • T

      Parameters

      Returns Output<T>

  • decodedString: function
    • decodedString(): Output<string>
    • Returns Output<string>

  • encodedOutput: function
    • Type parameters

      • T_1

      Parameters

      Returns Output<T_1>

  • sizeOf: function
    • sizeOf(c: undefined | number, errorMode?: UtfErrorMode): number
    • sizeOf(c: undefined | number): number
    • sizeOf(string: string, errorMode?: UtfErrorMode): number
    • sizeOf(string: string): number
    • Parameters

      Returns number

    • Parameters

      • c: undefined | number

      Returns number

    • Parameters

      Returns number

    • Parameters

      • string: string

      Returns number

Generated using TypeDoc