use arrow_flight::error::FlightError;
use thiserror::Error;
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Error, Debug)]
pub enum Error {
#[error("failed to send requests to UDF service: {0}")]
Tonic(#[from] tonic::Status),
#[error("failed to connect to UDF service: {0}")]
Connect(#[from] tonic::transport::Error),
#[error("failed to call UDF: {0}")]
Flight(#[from] FlightError),
#[error("arrow error: {0}")]
Arrow(#[from] arrow_schema::ArrowError),
#[error("invalid message from UDF service: {0}")]
Decode(String),
#[error("Flight service error: {0}")]
Service(String),
}