Skip to main content

Module codecs

Module codecs 

Source
Expand description

Haystack wire format codecs for serialization and deserialization.

Provides the Codec trait and five built-in implementations:

MIME TypeModuleDescription
text/zinczincZinc — the default Haystack text format (fastest encode/decode)
text/triotrioTrio — tag-oriented format for defining entities and defs
application/jsonjson (v4)Haystack JSON v4 — standard JSON encoding
application/json;v=3json (v3)Haystack JSON v3 — legacy JSON encoding
text/csvcsvCSV — comma-separated values for spreadsheet interop

Use codec_for() to look up a codec by MIME type:

use haystack_core::codecs::codec_for;

let zinc = codec_for("text/zinc").unwrap();
let grid = zinc.decode_grid("ver:\"3.0\"\nempty\n").unwrap();
let encoded = zinc.encode_grid(&grid).unwrap();

The shared submodule provides common encoding/decoding helper functions used by multiple codec implementations.

Modules§

csv
CSV wire format codec for Haystack grids.
json
shared
Shared formatting helpers used by multiple codecs.
trio
zinc

Enums§

CodecError
Errors that can occur during encoding or decoding.

Traits§

Codec
Trait for Haystack wire format codecs.

Functions§

codec_for
Look up a codec by MIME type.