copybook-rdw 0.4.3

RDW framing microcrate with header primitives, reader/writer, and buffered helpers
Documentation

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.

Usage

use copybook_rdw::{RDWRecordWriter, RDWRecordReader};

// Write an RDW-framed record
let mut output = Vec::new();
let mut writer = RDWRecordWriter::new(&mut output);
writer.write_record_from_payload(b"HELLO", None).unwrap();

// Read it back
let mut reader = RDWRecordReader::new(std::io::Cursor::new(&output), false);
let record = reader.read_record().unwrap().unwrap();
assert_eq!(record.payload, b"HELLO");

Public API

  • RdwHeader — Parsed 4-byte RDW header
  • RDWRecord — Header + payload pair
  • RDWRecordReader<R> — Streaming reader for RDW-framed records
  • RDWRecordWriter<W> — Streaming writer for RDW-framed records
  • rdw_read_len, rdw_slice_body, rdw_try_peek_len — Low-level helpers

License

AGPL-3.0-or-later