helius_laserstream/
error.rs1use laserstream_core_proto::tonic::Status;
2use url::ParseError;
3use futures_channel::mpsc::SendError;
4use laserstream_core_client::{GeyserGrpcClientError, GeyserGrpcBuilderError};
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum LaserstreamError {
9 #[error("gRPC transport error: {0}")]
10 Transport(#[from] laserstream_core_proto::tonic::transport::Error),
11
12 #[error("gRPC status error: {0}")]
13 Status(#[from] Status),
14
15 #[error("Invalid endpoint URL: {0}")]
16 InvalidUrl(#[from] ParseError),
17
18 #[error("Stream unexpectedly ended")]
19 StreamEnded,
20
21 #[error("Subscription channel send error: {0}")]
22 SubscriptionSendError(#[from] SendError),
23
24 #[error("Maximum reconnection attempts reached: {0}")]
25 MaxReconnectAttempts(Status),
26
27 #[error("IO error: {0}")]
28 Io(#[from] std::io::Error),
29
30 #[error("Laserstream client error: {0}")]
31 ClientError(#[from] GeyserGrpcClientError),
32
33 #[error("Laserstream builder error: {0}")]
34 BuilderError(#[from] GeyserGrpcBuilderError),
35
36 #[error("Invalid API Key format")]
37 InvalidApiKeyFormat,
38
39 #[error("Connection error: {0}")]
40 ConnectionError(String),
41}