pub mod adapter;
pub mod envelope;
pub mod event;
pub mod frame;
pub mod ops;
pub mod text;
pub use adapter::{
AdapterMsg, AgentMount, AssignAckArgs, AssignArgs, ByeNotice, Capability, ClusterMount,
ConfigGetArgs, DetachArgs, GatewayBinding, GatewayMount, HELLO_REQUIRED_MESSAGE,
HELLO_TIMEOUT_MS, HelloAck, HelloArgs, HostOp, Mount, MountKind, MsgDirection, PluginOp,
RecycleArgs, RenderSendArgs, ServerInfo, SessionRegisterArgs, TypingArgs, WelcomeSlice,
};
pub use envelope::{
BODY_TEXT_MAX_BYTES, Body, Causality, ControlOp, Envelope, Error, IMAGE_DATA_MAX_BYTES,
IMAGE_MIMES, ImagePart, MsgKind, Outcome, Principal, Result, new_envelope, new_id, new_op_id,
new_task_id, sha256_hex,
};
pub use event::{
Event, EventRow, EventTier, FaultEvent, GatewayHealth, LedgerState, LedgerStateEvent,
Lifecycle, Presence, RolePresence, SessionStateEvent, SpecReloaded,
};
pub use frame::{
AdminFrame, ErrorCode, ErrorPayload, Frame, GatewayFrame, MAX_ERROR_MESSAGE_BYTES,
OP_ID_CONFLICT_MESSAGE, ResBody,
};
pub use ops::{
AckArgs, AdminControl, AdminOp, AdminSend, AgentPhase, ByeArgs, ClientOp, ControlArgs,
ConversationInfo, Delivery, DeliveryPhase, GatewayOp, HandshakeArgs, HealthArgs, HistoryArgs,
LedgerEntry, LedgerQuery, PullArgs, PullReply, QueryFaultsArgs, QueryRolesArgs,
QuerySessionsArgs, Receipt, RecoveryPhase, RegisterChannelArgs, RepairAck, RepairAdopt,
RepairFail, RepairRebind, RepairTarget, Report, ResourcePhase, RoleInfo, SessionProjection,
SessionRow, SessionSyncArgs, ShutdownArgs, Subscribe, Welcome,
};
pub use text::{
BINARY_NOT_FOUND_PREFIX, LEGACY_WORKSPACE_MESSAGE, NO_SOCKET_MESSAGE,
UNSUPPORTED_SCHEMA_MESSAGE, binary_not_found,
};
pub const PROTOCOL_VERSION: u16 = 1;
pub const OP_ID_PREFIX: &str = "o-";
pub fn envelope_schema() -> &'static str {
include_str!(concat!(env!("OUT_DIR"), "/envelope.schema.json"))
}
pub fn adapter_schema() -> &'static str {
include_str!(concat!(env!("OUT_DIR"), "/adapter.schema.json"))
}
#[cfg(test)]
mod schema_tests {
#[test]
fn schema_texts_parse_and_name_their_roots() {
let envelope: serde_json::Value =
serde_json::from_str(super::envelope_schema()).expect("envelope schema parses");
assert_eq!(
envelope.get("title").and_then(|title| title.as_str()),
Some("Envelope")
);
let adapter: serde_json::Value =
serde_json::from_str(super::adapter_schema()).expect("adapter schema parses");
assert_eq!(
adapter.get("title").and_then(|title| title.as_str()),
Some("AdapterMsg")
);
}
}