Files
scylladb/vector_search/error.hh
Avi Kivity 0ae22a09d4 LICENSE: Update to version 1.1
Updated terms of non-commercial use (must be a never-customer).
2026-04-12 19:46:33 +03:00

59 lines
1.8 KiB
C++

/*
* Copyright (C) 2025-present ScyllaDB
*/
/*
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.1
*/
#pragma once
#include <seastar/http/reply.hh>
#include <seastar/core/sstring.hh>
#include <fmt/format.h>
namespace vector_search {
/// The service is disabled.
struct disabled_error {};
/// The operation was aborted.
struct aborted_error {};
/// The vector-store addr is unavailable (not possible to get an addr from the dns service).
struct addr_unavailable_error {};
/// The vector-store service is unavailable.
struct service_unavailable_error {};
/// The error from the vector-store service.
struct service_error {
seastar::http::reply::status_type status; ///< The HTTP status code from the vector-store service.
seastar::sstring message; ///< The error message from the vector-store service.
};
/// An unsupported reply format from the vector-store service.
struct service_reply_format_error {};
struct error_visitor {
seastar::sstring operator()(service_error e) const {
return fmt::format("Vector Store error: HTTP status {}, message: {}", e.status, e.message);
}
seastar::sstring operator()(disabled_error) const {
return fmt::format("Vector Store is disabled");
}
seastar::sstring operator()(aborted_error) const {
return fmt::format("Vector Store request was aborted");
}
seastar::sstring operator()(addr_unavailable_error) const {
return fmt::format("Vector Store service address could not be fetched from DNS");
}
seastar::sstring operator()(service_unavailable_error) const {
return fmt::format("Vector Store service is unavailable");
}
seastar::sstring operator()(service_reply_format_error) const {
return fmt::format("Vector Store returned an invalid JSON");
}
};
} // namespace vector_search