From fdcc78500cc1aff8c87d76abd1692e79977ac9cc Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Mon, 2 Nov 2020 13:51:56 +1100 Subject: refactor(cli): migrate runtime compile/bundle to new infrastructure (#8192) Fixes #8060 --- cli/diagnostics.rs | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'cli/diagnostics.rs') diff --git a/cli/diagnostics.rs b/cli/diagnostics.rs index 1cd4ea234..ba21e5aa9 100644 --- a/cli/diagnostics.rs +++ b/cli/diagnostics.rs @@ -2,9 +2,11 @@ use crate::colors; +use deno_core::serde::Deserialize; +use deno_core::serde::Deserializer; +use deno_core::serde::Serialize; +use deno_core::serde::Serializer; use regex::Regex; -use serde::Deserialize; -use serde::Deserializer; use std::error::Error; use std::fmt; @@ -157,6 +159,21 @@ impl<'de> Deserialize<'de> for DiagnosticCategory { } } +impl Serialize for DiagnosticCategory { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let value = match self { + DiagnosticCategory::Warning => 0 as i32, + DiagnosticCategory::Error => 1 as i32, + DiagnosticCategory::Suggestion => 2 as i32, + DiagnosticCategory::Message => 3 as i32, + }; + Serialize::serialize(&value, serializer) + } +} + impl From for DiagnosticCategory { fn from(value: i64) -> Self { match value { @@ -169,7 +186,7 @@ impl From for DiagnosticCategory { } } -#[derive(Debug, Deserialize, Clone, Eq, PartialEq)] +#[derive(Debug, Deserialize, Serialize, Clone, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub struct DiagnosticMessageChain { message_text: String, @@ -196,14 +213,14 @@ impl DiagnosticMessageChain { } } -#[derive(Debug, Deserialize, Clone, Eq, PartialEq)] +#[derive(Debug, Deserialize, Serialize, Clone, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Position { pub line: u64, pub character: u64, } -#[derive(Debug, Deserialize, Clone, Eq, PartialEq)] +#[derive(Debug, Deserialize, Serialize, Clone, Eq, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Diagnostic { pub category: DiagnosticCategory, @@ -367,6 +384,15 @@ impl<'de> Deserialize<'de> for Diagnostics { } } +impl Serialize for Diagnostics { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + Serialize::serialize(&self.0, serializer) + } +} + impl fmt::Display for Diagnostics { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let mut i = 0; -- cgit v1.2.3