UNPKG

@hazae41/kcp

Version:

Zero-copy KCP protocol for the web

68 lines (65 loc) 1.58 kB
import { Writable, Empty, Opaque } from '@hazae41/binary'; import { Cursor } from '@hazae41/cursor'; interface KcpSegmentParams<Fragment extends Writable> { readonly conversation: number; readonly command: number; readonly count?: number; readonly window?: number; readonly timestamp?: number; readonly serial: number; readonly unackSerial: number; readonly fragment: Fragment; } declare class KcpSegment<Fragment extends Writable> { /** * conv */ readonly conversation: number; /** * cmd */ readonly command: number; /** * frg */ readonly count: number; /** * wnd */ readonly window: number; /** * ts */ readonly timestamp: number; /** * sn */ readonly serial: number; /** * una */ readonly unackSerial: number; /** * data */ readonly fragment: Fragment; /** * data size */ readonly fragmentSize: number; static readonly commands: { readonly push: 81; readonly ack: 82; readonly wask: 83; readonly wins: 84; }; private constructor(); static empty(params: KcpSegmentParams<Empty>): KcpSegment<Empty>; static newOrThrow<Fragment extends Writable>(params: KcpSegmentParams<Fragment>): KcpSegment<Fragment>; sizeOrThrow(): number; writeOrThrow(cursor: Cursor): void; static readOrThrow(cursor: Cursor): KcpSegment<Opaque<Uint8Array & { readonly length: number; }>>; } export { KcpSegment, type KcpSegmentParams };