1use base64::DecodeError;
6use doc_for::doc_impl;
7use reqwest::{Error as ReqwestError, header::InvalidHeaderValue};
8use std::array::TryFromSliceError;
9use thiserror::Error;
10
11#[doc_impl(strip = 1, doc_for = false, gen_attr = "error({doc})")]
13#[derive(Debug, Error)]
14pub enum SenseError {
15 DimensionMismatch,
17 MalformedApiKey,
19 RequestFailed {
21 source: ReqwestError,
23 },
24 InvalidHeaderValue,
26 Base64DecodingFailed,
28}
29
30impl From<ReqwestError> for SenseError {
31 fn from(error: ReqwestError) -> Self {
33 Self::RequestFailed { source: error }
34 }
35}
36
37impl From<TryFromSliceError> for SenseError {
38 fn from(_: TryFromSliceError) -> Self {
40 Self::DimensionMismatch
41 }
42}
43
44impl From<Vec<u8>> for SenseError {
45 fn from(_: Vec<u8>) -> Self {
47 Self::DimensionMismatch
48 }
49}
50
51impl From<Vec<f32>> for SenseError {
52 fn from(_: Vec<f32>) -> Self {
54 Self::DimensionMismatch
55 }
56}
57
58impl From<InvalidHeaderValue> for SenseError {
59 fn from(_: InvalidHeaderValue) -> Self {
61 Self::InvalidHeaderValue
62 }
63}
64
65impl From<DecodeError> for SenseError {
66 fn from(_: DecodeError) -> Self {
68 Self::Base64DecodingFailed
69 }
70}