From 4dbb90c5736bd204e1e6322b24a0e68795bd7360 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 30 Jan 2021 21:25:02 -0600 Subject: [PATCH] feat(build): Support build-finished message Fixes #40 --- CHANGELOG.md | 4 ++++ src/format/mod.rs | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3c59d..282b2f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] - ReleaseDate +#### Features + +* Support `build-finished` message + ## [0.5.0] - 2019-04-08 #### Features diff --git a/src/format/mod.rs b/src/format/mod.rs index 11b143f..6adc688 100644 --- a/src/format/mod.rs +++ b/src/format/mod.rs @@ -15,6 +15,8 @@ type CowStr<'a> = borrow::Cow<'a, str>; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(tag = "reason", rename_all = "kebab-case")] pub enum Message<'a> { + /// Build completed, all further output should not be parsed + BuildFinished(BuildFinished), /// The compiler generated an artifact #[serde(borrow)] CompilerArtifact(Artifact<'a>), @@ -30,6 +32,14 @@ pub enum Message<'a> { Unknown, } +/// Build completed, all further output should not be parsed +#[derive(Debug, Clone, Serialize, Deserialize)] +#[cfg_attr(feature = "strict_unstable", serde(deny_unknown_fields))] +#[non_exhaustive] +pub struct BuildFinished { + success: bool, +} + /// A compiler-generated file. #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "strict_unstable", serde(deny_unknown_fields))] @@ -77,6 +87,9 @@ pub struct Target<'a> { /// Whether this is a doctest or not #[serde(default)] pub doctest: Option, + /// Whether this is a test file + #[serde(default)] + pub test: bool, #[serde(default)] #[serde(rename = "required-features")] @@ -173,6 +186,9 @@ pub struct BuildScript<'a> { #[cfg(not(feature = "print"))] pub(crate) fn log_message(msg: &Message<'_>) { match msg { + Message::BuildFinished(ref finished) => { + log::trace!("Build Finished: {:?}", finished.success); + } Message::CompilerArtifact(ref art) => { log::trace!("Building {:#?}", art.package_id,); }