From 7cacf7b5e9915609e2ae634f3fdd9d3fa1141e92 Mon Sep 17 00:00:00 2001 From: Maaz Ahmed <maaz.a@subcom.tech> Date: Wed, 10 Jan 2024 12:44:24 +0530 Subject: [PATCH] feat: Serde deserialize and serialize on Data and related types Feature gated under "serde" feature --- Cargo.lock | 3 +-- Cargo.toml | 3 ++- src/result.rs | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 52e271a..347a6d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -830,8 +830,7 @@ dependencies = [ [[package]] name = "prometheus-http-query" version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0de773a6ba25c9164ed9d86d653a92fac759a6f0e683fd141d56bb96e80fd8b" +source = "git+https://github.com/VoltaireNoir/prometheus-http-query/#d2c90243b017f77b8149fba39c165a7e28e4ad95" dependencies = [ "enum-as-inner", "mime", diff --git a/Cargo.toml b/Cargo.toml index 696fc51..5a74b63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] enum-as-inner = "0.6.0" -prometheus-http-query = "0.8.1" +prometheus-http-query = { git = "https://github.com/VoltaireNoir/prometheus-http-query/"} reqwest = "0.11.22" url = "2.5.0" serde = { version = "1.0.193", optional = true } @@ -22,6 +22,7 @@ utils = ["dep:serde", "dep:serde_json", "dep:rayon"] metricsql = [] macros = ["dep:mquery-macros"] multi = ["dep:tokio"] +serde = ["dep:serde"] [dev-dependencies] tokio = { version = "1.34.0", default-features = false, features = ["macros", "rt-multi-thread"]} diff --git a/src/result.rs b/src/result.rs index 6849333..e7d949e 100644 --- a/src/result.rs +++ b/src/result.rs @@ -10,6 +10,9 @@ use enum_as_inner::EnumAsInner; use prometheus_http_query::{error, response}; use std::fmt::{self, Display}; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + pub type QryResult = std::result::Result<Data, Error>; pub type RawResult = std::result::Result<reqwest::Response, Error>; @@ -34,6 +37,7 @@ impl IntoResult for Result<reqwest::Response, error::Error> { } /// A wrapper for possible result types of expression queries +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[derive(Clone, Debug, EnumAsInner)] pub enum Data { Vector(Vec<response::InstantVector>), -- GitLab