VCF.Spec behaviour (VCF v1.0.0)

View Source

Version-profile selection for the supported VCF specifications.

Summary

Functions

Returns the explicit rules module for a supported version.

Types

scope()

@type scope() :: :info | :format

Callbacks

allowed_alternate?(t)

@callback allowed_alternate?(String.t()) :: boolean()

allowed_number?(scope, cardinality)

@callback allowed_number?(scope(), VCF.FieldDefinition.cardinality()) :: boolean()

minor()

@callback minor() :: 1..5

validate_header(t)

@callback validate_header(VCF.Header.t()) :: [VCF.Error.t()]

validate_record(t, t)

@callback validate_record(VCF.Record.t(), VCF.Header.t()) :: [VCF.Error.t()]

Functions

for_version(version)

@spec for_version(VCF.Version.t()) :: {:ok, module()} | {:error, VCF.Error.t()}

Returns the explicit rules module for a supported version.