Package-level declarations
Types
In-band commands. TCP urgent-data SYNCH is deliberately not represented.
Immutable protocol settings. Terminal capabilities must match the actual emulator.
Negotiation direction: LOCAL is WILL/WONT; REMOTE is DO/DONT.
An ordered effect. Outbound arrays are complete frames owned by their recipient.
Deterministic, single-owner client engine. No sockets, callbacks, or coroutine state. Feed at most CHUNK_SIZE bytes per step; repeat with the unconsumed suffix. A result consumes input or reports a terminal failure; empty input is a no-op. Call start once before other operations and finish once at peer EOF. Invalid slices, dimensions and oversized writes throw IllegalArgumentException. Starting twice or using an unstarted engine throws IllegalStateException.
An operational failure returned as data; argument and state preconditions still throw.
Stable failure categories returned at public API boundaries.
Lossless, ordered application input; each Data owns its array.
Options supported by the Telnet client.
A bounded processing step, including complete effects preceding any failure.
Ordered, single-consumer input and concurrent suspend output operations.
A duplex byte transport. Positive reads make progress; -1 is EOF, zero is only legal for a zero-length request. Write must finish the entire slice. Close must promptly interrupt a suspended read/write and be safe to call repeatedly.
Functions
Creates a fresh engine after validating configuration. Start it before feeding bytes.
Opens a child session over an already connected transport. The session owns and closes that transport. Each large write is accepted in independent bounded chunks, allowing negotiation and competing operations between chunks.