From 1dbfd9f9fc5fe0618ec8bc991a21b7998ebd8d2f Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 8 May 2020 14:02:01 -0700 Subject: [PATCH] Add BuildFinished message. --- src/lib.rs | 5 ++++- src/messages.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 4c482543..8a204cdc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -67,6 +67,9 @@ //! Message::BuildScriptExecuted(script) => { //! println!("{:?}", script); //! }, +//! Message::BuildFinished(finished) => { +//! println!("{:?}", finished); +//! }, //! _ => () // Unknown message //! } //! } @@ -93,7 +96,7 @@ pub use dependency::{Dependency, DependencyKind}; use diagnostic::Diagnostic; pub use errors::{Error, Result}; pub use messages::{ - parse_messages, Artifact, ArtifactProfile, BuildScript, CompilerMessage, Message, + parse_messages, Artifact, ArtifactProfile, BuildFinished, BuildScript, CompilerMessage, Message, }; mod dependency; diff --git a/src/messages.rs b/src/messages.rs index 8b384da1..a5bc1616 100644 --- a/src/messages.rs +++ b/src/messages.rs @@ -85,6 +85,16 @@ pub struct BuildScript { __do_not_match_exhaustively: (), } +/// Final result of a build. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct BuildFinished { + /// Whether or not the build finished successfully. + pub success: bool, + #[doc(hidden)] + #[serde(skip)] + __do_not_match_exhaustively: (), +} + /// A cargo message #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(tag = "reason", rename_all = "kebab-case")] @@ -95,6 +105,11 @@ pub enum Message { CompilerMessage(CompilerMessage), /// A build script successfully executed. BuildScriptExecuted(BuildScript), + /// The build has finished. + /// + /// This is emitted at the end of the build as the last message. + /// Added in Rust 1.44. + BuildFinished(BuildFinished), #[doc(hidden)] #[serde(other)] Unknown,