From db010f4c80664e877354bed533b26645d88cd58f Mon Sep 17 00:00:00 2001 From: winlogon Date: Thu, 9 Oct 2025 16:09:23 +0200 Subject: [PATCH] feat: add From> for MietteDiagnostic Fixes #285 --- src/miette_diagnostic.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/miette_diagnostic.rs b/src/miette_diagnostic.rs index 9863e88..49b5fa6 100644 --- a/src/miette_diagnostic.rs +++ b/src/miette_diagnostic.rs @@ -258,6 +258,27 @@ impl MietteDiagnostic { } } +impl From> for MietteDiagnostic { + fn from(diag: Box) -> Self { + let message = diag.to_string(); + + let code = diag.code().map(|c| c.to_string()); + let severity = diag.severity(); + let help = diag.help().map(|h| h.to_string()); + let url = diag.url().map(|u| u.to_string()); + let labels = diag.labels().map(|l| l.collect::>()); + + MietteDiagnostic { + message, + code, + severity, + help, + url, + labels, + } + } +} + #[cfg(feature = "serde")] #[test] fn test_serialize_miette_diagnostic() {