Header menu logo Xanthos

FieldDefinitions Module

Field definition DSL for parsing fixed-length JV-Data records.

JV-Link returns data as fixed-length byte arrays where each field occupies a specific byte range. This module provides a DSL to define field specifications declaratively.

Usage Example:

 let raFields = [
     text "RecordType" 0 2       // Bytes 0-1: "RA"
     date "RaceDate" 2 8 "yyyyMMdd"
     int "RaceNumber" 10 2
     text "RaceName" 12 60
 ]
val raFields: obj list
Multiple items
val int: value: 'T -> int (requires member op_Explicit)

--------------------
type int = int32

--------------------
type int<'Measure> = int

Types

Type Description

FieldEncoding

Represents how a field value should be encoded/decoded.

FieldSpec

Represents a field position in a fixed-length record.

Functions and values

Function or value Description

bytes name offset length

Full Usage: bytes name offset length

Parameters:
    name : string
    offset : int
    length : int

Returns: FieldSpec

Define a raw bytes field

name : string
offset : int
length : int
Returns: FieldSpec

code name offset length table

Full Usage: code name offset length table

Parameters:
    name : string
    offset : int
    length : int
    table : string

Returns: FieldSpec

Define a code table field

name : string
offset : int
length : int
table : string
Returns: FieldSpec

date name offset length format

Full Usage: date name offset length format

Parameters:
    name : string
    offset : int
    length : int
    format : string

Returns: FieldSpec

Define a date field

name : string
offset : int
length : int
format : string
Returns: FieldSpec

decimal name offset length precision

Full Usage: decimal name offset length precision

Parameters:
    name : string
    offset : int
    length : int
    precision : int

Returns: FieldSpec

Define a decimal field with precision

name : string
offset : int
length : int
precision : int
Returns: FieldSpec

flag name offset length

Full Usage: flag name offset length

Parameters:
    name : string
    offset : int
    length : int

Returns: FieldSpec

Define a flag field

name : string
offset : int
length : int
Returns: FieldSpec

int name offset length

Full Usage: int name offset length

Parameters:
    name : string
    offset : int
    length : int

Returns: FieldSpec

Define an integer field

name : string
offset : int
length : int
Returns: FieldSpec

text name offset length

Full Usage: text name offset length

Parameters:
    name : string
    offset : int
    length : int

Returns: FieldSpec

Define a text field (with normalization)

name : string
offset : int
length : int
Returns: FieldSpec

textRaw name offset length

Full Usage: textRaw name offset length

Parameters:
    name : string
    offset : int
    length : int

Returns: FieldSpec

Define a raw text field (without normalization)

name : string
offset : int
length : int
Returns: FieldSpec

Type something to start searching.