diskann_tools/utils/
cmd_tool_error.rs1use std::{error::Error, fmt};
7
8#[derive(PartialEq)]
10pub struct CMDToolError {
11 pub details: String,
12}
13
14impl fmt::Display for CMDToolError {
15 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
16 write!(f, "{}", self.details)
17 }
18}
19
20impl fmt::Debug for CMDToolError {
23 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
24 <Self as fmt::Display>::fmt(self, f)
25 }
26}
27
28impl Error for CMDToolError {
29 fn description(&self) -> &str {
30 &self.details
31 }
32}
33
34impl From<std::io::Error> for CMDToolError {
35 fn from(err: std::io::Error) -> Self {
36 CMDToolError {
37 details: err.to_string(),
38 }
39 }
40}
41
42impl From<rand_distr::NormalError> for CMDToolError {
43 fn from(err: rand_distr::NormalError) -> Self {
44 CMDToolError {
45 details: err.to_string(),
46 }
47 }
48}
49impl From<diskann::ANNError> for CMDToolError {
50 fn from(err: diskann::ANNError) -> Self {
51 CMDToolError {
52 details: err.to_string(),
53 }
54 }
55}
56impl From<diskann::graph::config::ConfigError> for CMDToolError {
57 fn from(err: diskann::graph::config::ConfigError) -> Self {
58 CMDToolError {
59 details: err.to_string(),
60 }
61 }
62}
63
64impl From<diskann_label_filter::JsonlReadError> for CMDToolError {
65 fn from(err: diskann_label_filter::JsonlReadError) -> Self {
66 CMDToolError {
67 details: err.to_string(),
68 }
69 }
70}
71
72impl<T, U> From<diskann_providers::utils::MetadataError<T, U>> for CMDToolError
73where
74 T: std::error::Error + Send + Sync + 'static,
75 U: std::error::Error + Send + Sync + 'static,
76{
77 fn from(err: diskann_providers::utils::MetadataError<T, U>) -> Self {
78 let ann_error: diskann::ANNError = err.into();
80 ann_error.into()
81 }
82}