chore(core/result): add schema feature

This commit is contained in:
Paul Makles
2023-04-22 17:55:12 +01:00
parent b93dd90caf
commit 8b30dddc06
2 changed files with 11 additions and 0 deletions

View File

@@ -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 }

View File

@@ -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<T, E = Error> = std::result::Result<T, E>;
/// 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 :(