usecrate::ops::CanvasOp;usecrate::wire::{ClientOpId, ServerMsg};/// A Client is a handle to a dartboard session. It submits ops to the server
/// and drains server events. Implementations: LocalClient (in-proc, in
/// dartboard-local) and WebsocketClient (cross-process, in dartboard-client-ws).
pubtraitClient{/// Submit an op to the server. Returns the client_op_id the op was tagged
/// with (monotonic per client), which will be echoed back in the matching
/// Ack or Reject.
fnsubmit_op(&mutself, op: CanvasOp)-> ClientOpId;/// Non-blocking event drain. Returns None if no events are pending.
fntry_recv(&mutself)->Option<ServerMsg>;}