summaryrefslogtreecommitdiff
path: root/cli/diagnostics.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-11-02 13:51:56 +1100
committerGitHub <noreply@github.com>2020-11-02 13:51:56 +1100
commitfdcc78500cc1aff8c87d76abd1692e79977ac9cc (patch)
treeb3ce97db2d23344c9469d9488097601058b5e0e5 /cli/diagnostics.rs
parent3558769d4654aad478804e506ccdcac38881dac1 (diff)
refactor(cli): migrate runtime compile/bundle to new infrastructure (#8192)
Fixes #8060
Diffstat (limited to 'cli/diagnostics.rs')
-rw-r--r--cli/diagnostics.rs36
1 files changed, 31 insertions, 5 deletions
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<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
+ 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<i64> for DiagnosticCategory {
fn from(value: i64) -> Self {
match value {
@@ -169,7 +186,7 @@ impl From<i64> 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<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
+ 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;