icmpPacket(): Coder<IcmpPacket>
Creates a coder for a generic ICMPv4 packet — 4-byte fixed header
(type, code, checksum) and a payload that absorbs the rest of the
buffer on decode.
Round-trip a minimal Echo Request
Round-trip a minimal Echo Request
import { assertEquals } from "@std/assert"; import { ICMP_TYPE, icmpPacket } from "@binstruct/icmp"; const coder = icmpPacket(); // First 4 payload bytes are the type-specific identifier/sequence. const payload = new Uint8Array([0x00, 0x01, 0x00, 0x01]); const packet = { type: ICMP_TYPE.ECHO_REQUEST, code: 0, checksum: 0xf7fd, payload, }; const buffer = new Uint8Array(4 + payload.length); const bytesWritten = coder.encode(packet, buffer); const [decoded, bytesRead] = coder.decode(buffer); assertEquals(bytesWritten, buffer.length); assertEquals(bytesRead, buffer.length); assertEquals(decoded.type, ICMP_TYPE.ECHO_REQUEST); assertEquals(decoded.code, 0); assertEquals(decoded.checksum, 0xf7fd); assertEquals(decoded.payload, payload);
Coder<IcmpPacket>
A coder for IcmpPacket.