Module Error

Module Error 

Source
Expand description

§VineError

Defines the specific, structured error types for all operations within the Vine gRPC Inter-Process Communication (IPC) system.

§Error Categories

§Connection Errors

  • ClientNotConnected: Sidecar not in connection pool
  • ConnectionFailed: Unable to establish connection
  • ConnectionLost: Established connection was lost

§RPC Errors

  • RPCError: Generic gRPC status error
  • RequestTimeout: Request exceeded configured timeout
  • RequestCanceled: Request was explicitly canceled

§Serialization Errors

  • SerializationError: JSON serialization/deserialization failure
  • MessageTooLarge: Message exceeds size limits
  • InvalidMessageFormat: Message format validation failed

§Transport Errors

  • TonicTransportError: Low-level tonic transport failure
  • InvalidUri: Invalid URI format
  • AddressParseError: Invalid socket address format

§Internal Errors

  • InternalLockError: Mutex poisoned (panic in another thread)
  • InvalidState: Invalid internal state detected

§Error Conversion

The module provides From implementations for seamless conversion from:

  • serde_json::ErrorSerializationError
  • tonic::transport::ErrorTonicTransportError
  • tonic::StatusRPCError
  • InvalidUriInvalidUri
  • AddrParseErrorAddressParseError
  • PoisonError<T>InternalLockError

§Usage Example

# use Vine::Error::VineError;
fn handle_error(error:VineError) {
match error {
VineError::RequestTimeout { SideCarIdentifier, MethodName, TimeoutMilliseconds } => {
eprintln!(
"Request to {} method '{}' timed out after {}ms",
SideCarIdentifier, MethodName, TimeoutMilliseconds
);
// Implement retry logic or fallback behavior
},
VineError::ClientNotConnected(id) => {
eprintln!("Sidecar '{}' not connected, attempting reconnection...", id);
// Attempt to reconnect
},
_ => eprintln!("Vine error: {}", error),
}
}

Enums§

VineError
A comprehensive error enum for the Vine IPC layer.