use base64::DecodeError;
use doc_for::doc_impl;
use reqwest::{Error as ReqwestError, header::InvalidHeaderValue};
use std::array::TryFromSliceError;
use thiserror::Error;
#[doc_impl(strip = 1, doc_for = false, gen_attr = "error({doc})")]
#[derive(Debug, Error)]
pub enum SenseError {
DimensionMismatch,
MalformedApiKey,
RequestFailed {
source: ReqwestError,
},
InvalidHeaderValue,
Base64DecodingFailed,
}
impl From<ReqwestError> for SenseError {
fn from(error: ReqwestError) -> Self {
Self::RequestFailed { source: error }
}
}
impl From<TryFromSliceError> for SenseError {
fn from(_: TryFromSliceError) -> Self {
Self::DimensionMismatch
}
}
impl From<Vec<u8>> for SenseError {
fn from(_: Vec<u8>) -> Self {
Self::DimensionMismatch
}
}
impl From<Vec<f32>> for SenseError {
fn from(_: Vec<f32>) -> Self {
Self::DimensionMismatch
}
}
impl From<InvalidHeaderValue> for SenseError {
fn from(_: InvalidHeaderValue) -> Self {
Self::InvalidHeaderValue
}
}
impl From<DecodeError> for SenseError {
fn from(_: DecodeError) -> Self {
Self::Base64DecodingFailed
}
}