#![deny(missing_docs)]
#![forbid(unsafe_code)]
pub mod attach;
pub mod capabilities;
pub mod codec;
pub mod control;
pub mod envelope;
pub mod error;
pub mod frame_kind;
pub mod identity;
pub mod request;
pub mod response;
pub mod types;
pub use attach::{
encode_attach_message, AttachFrameDecoder, AttachMessage, AttachShellCommand,
AttachedKeystroke, KeyDispatched,
};
pub use capabilities::{
HandshakeRequest, HandshakeResponse, CAPABILITY_ATTACH_STREAM, CAPABILITY_CONTROL_STREAM,
CAPABILITY_DAEMON_SHUTDOWN, CAPABILITY_DETACHED_RPC, CAPABILITY_FRAMED_ERRORS,
CAPABILITY_HANDSHAKE, CAPABILITY_SDK_WAITS, SUPPORTED_CAPABILITIES,
};
pub use codec::{decode_frame, encode_frame, FrameDecoder, DEFAULT_MAX_FRAME_LENGTH};
pub use control::{
format_continue_line, format_exit_line, format_extended_output_line, format_guard_line,
format_output_line, format_pause_line, octal_escape, ClientTerminalContext, ControlGuardKind,
ControlMode, ControlModeRequest, ControlModeResponse, CONTROL_BUFFER_HIGH, CONTROL_BUFFER_LOW,
CONTROL_CONTROL_END, CONTROL_CONTROL_START, CONTROL_MAXIMUM_AGE_MS, CONTROL_STDIN_EOF_MARKER,
CONTROL_WRITE_MINIMUM,
};
pub use envelope::{RMUX_FRAME_MAGIC, RMUX_WIRE_VERSION};
pub use error::RmuxError;
pub use frame_kind::{
frame_kind_for_request, frame_kind_for_response, ledger_entry_for, FrameDirection,
FrameFeature, FrameKind, FrameLedgerEntry, FrameStatus, V1_FRAME_LEDGER,
};
pub use identity::{PaneId, SessionId, SessionName, WindowId};
pub use request::*;
pub use response::*;
pub use types::*;
pub use types::{OptionScopeSelector, PaneOutputSubscriptionId, SdkWaitId, SdkWaitOwnerId};
pub const PROTOCOL_VERSION: u16 = RMUX_WIRE_VERSION as u16;