New workspace structure with 9 crates. Adds: - proto/qpq/v1/*.proto: 11 protobuf schemas covering all 33 RPC methods - quicproquo-proto: dual codegen (capnp legacy + prost v2) - quicproquo-rpc: QUIC RPC framework (framing, server, client, middleware) - quicproquo-sdk: client SDK (QpqClient, events, conversation store) - quicproquo-server/domain/: protocol-agnostic domain types and services - justfile: build commands Wire format: [method_id:u16][req_id:u32][len:u32][protobuf] per QUIC stream. All 151 existing tests pass. Backward compatible with v1 capnp code.
30 lines
652 B
Rust
30 lines
652 B
Rust
//! SDK error types.
|
|
|
|
/// Errors returned by SDK operations.
|
|
#[derive(Debug, thiserror::Error)]
|
|
pub enum SdkError {
|
|
#[error("not connected to server")]
|
|
NotConnected,
|
|
|
|
#[error("not authenticated — call login() first")]
|
|
NotAuthenticated,
|
|
|
|
#[error("authentication failed: {0}")]
|
|
AuthFailed(String),
|
|
|
|
#[error("conversation not found: {0}")]
|
|
ConversationNotFound(String),
|
|
|
|
#[error("crypto error: {0}")]
|
|
Crypto(String),
|
|
|
|
#[error("RPC error: {0}")]
|
|
Rpc(#[from] quicproquo_rpc::error::RpcError),
|
|
|
|
#[error("storage error: {0}")]
|
|
Storage(String),
|
|
|
|
#[error("{0}")]
|
|
Other(#[from] anyhow::Error),
|
|
}
|