copybook-rdw
RDW (Record Descriptor Word) header primitives for copybook-rs.
Overview
Handles variable-length record framing using the mainframe RDW convention: each record is
prefixed with a 4-byte header (2-byte big-endian payload length + 2 reserved bytes).
Provides streaming RDWRecordReader / RDWRecordWriter for record I/O, plus lower-level
helpers for custom framing scenarios.
The framing crate is schema-independent. Schema-derived minimum payload and ODO compatibility
checks belong to copybook-codec::file::rdw; this package does not depend on copybook-core.
RDW transfer-corruption diagnostics are owned by copybook_rdw::diagnostics.
The former copybook-rdw-predicates and copybook-corruption-rdw packages
remain 0.5 compatibility surfaces, but primary packages use this module
directly.
Usage
use ;
// Write an RDW-framed record
let mut output = Vecnew;
let mut writer = new;
writer.write_record_from_payload.unwrap;
// Read it back
let mut reader = new;
let record = reader.read_record.unwrap.unwrap;
assert_eq!;
Public API
RdwHeader— Parsed 4-byte RDW headerRDWRecord— Header + payload pairRDWRecordReader<R>— Streaming reader for RDW-framed recordsRDWRecordWriter<W>— Streaming writer for RDW-framed recordsrdw_read_len,rdw_slice_body,rdw_try_peek_len— Low-level helpersdiagnostics— ASCII-transfer heuristics andCBKF104detection
License
AGPL-3.0-or-later