Options
All
  • Public
  • Public/Protected
  • All
Menu

Contain a constant value.

This layout may be used in cases where a JavaScript value can be inferred without an expression in the binary encoding. An example would be a variant layout where the content is implied by the union {@link Union#discriminator|discriminator}.

param value

initializer for {@link Constant#value|value}. If the value is an object (or array) and the application intends the object to remain unchanged regardless of what is done to values decoded by this layout, the value should be frozen prior passing it to this constructor.

param [property]

initializer for {@link Layout#property|property}.

Type parameters

  • T

Hierarchy

Index

Constructors

constructor

  • new Constant<T>(value: T, property?: string): Constant<T>

Properties

Optional boundConstructor_

boundConstructor_?: any

Optional property

property?: string

span

span: number

value

value: T

Methods

decode

  • decode(b?: Uint8Array, offset?: number): T

encode

  • encode(src: T, b?: Uint8Array, offset?: number): number
  • override

    Parameters

    • src: T
    • Optional b: Uint8Array
    • Optional offset: number

    Returns number

fromArray

  • Create an object from layout properties and an array of values.

    NOTE This function returns undefined if invoked on a layout that does not return its value as an Object. Objects are returned for things that are a Structure, which includes variant layouts if they are structures, and excludes Unions. If you want this feature for a union you must use getVariant to select the desired layout.

    Parameters

    • values: any[]

      an array of values that correspond to the default order for properties. As with {@link Layout#decode|decode} layout elements that have no property name are skipped when iterating over the array values. Only the top-level properties are assigned; arguments are not assigned to properties of contained layouts. Any unused values are ignored.

    Returns undefined | LayoutObject

getSpan

  • getSpan(b?: Uint8Array, offset?: number): number
  • Calculate the span of a specific instance of a layout.

    throws

    {RangeError} - if the length of the value cannot be determined.

    Parameters

    • Optional b: Uint8Array

      the buffer that contains an encoded instance.

    • Optional offset: number

    Returns number

    • the number of bytes covered by the layout instance. If this method is not overridden in a subclass the definition-time constant {@link Layout#span|span} will be returned.

makeDestinationObject

replicate

  • replicate(property: string): Constant<T>
  • Replicate the layout using a new property.

    This function must be used to get a structurally-equivalent layout with a different name since all Layout instances are immutable.

    NOTE This is a shallow copy. All fields except {@link Layout#property|property} are strictly equal to the origin layout.

    Parameters

    • property: string

      the value for {@link Layout#property|property} in the replica.

    Returns Constant<T>

    • the copy with {@link Layout#property|property} set to property.

Generated using TypeDoc