From 8b30dddc067497f4ec958dbfaa56979773a0a6c8 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Sat, 22 Apr 2023 17:55:12 +0100 Subject: [PATCH] chore(core/result): add schema feature --- crates/core/result/Cargo.toml | 5 +++++ crates/core/result/src/lib.rs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/crates/core/result/Cargo.toml b/crates/core/result/Cargo.toml index 12947827..ce96fe85 100644 --- a/crates/core/result/Cargo.toml +++ b/crates/core/result/Cargo.toml @@ -7,8 +7,13 @@ edition = "2021" [features] serde = [ "dep:serde" ] +schemas = [ "dep:schemars" ] + default = [ "serde" ] [dependencies] # Serialisation serde = { version = "1", features = ["derive"], optional = true } + +# Spec Generation +schemars = { version = "0.8.8", optional = true } diff --git a/crates/core/result/src/lib.rs b/crates/core/result/src/lib.rs index 9a476b3f..7e0122da 100644 --- a/crates/core/result/src/lib.rs +++ b/crates/core/result/src/lib.rs @@ -2,11 +2,16 @@ #[macro_use] extern crate serde; +#[cfg(feature = "schemas")] +#[macro_use] +extern crate schemars; + /// Result type with custom Error pub type Result = std::result::Result; /// Error information #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "schemas", derive(JsonSchema))] #[derive(Debug, Clone)] pub struct Error { /// Type of error and additional information @@ -20,6 +25,7 @@ pub struct Error { /// Possible error types #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "serde", serde(tag = "type"))] +#[cfg_attr(feature = "schemas", derive(JsonSchema))] #[derive(Debug, Clone)] pub enum ErrorType { /// This error was not labeled :(