A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

39 lines
1.2 KiB

using Microsoft.Build.Framework;
namespace Avalonia.Build.Tasks.UnitTest;
enum MessageSource
{
Unknown,
ErrorEvent,
MessageEvent,
CustomEvent,
WarningEvent
}
record class UnitTestBuildEngineMessage
{
private UnitTestBuildEngineMessage(MessageSource Type, LazyFormattedBuildEventArgs Source)
{
this.Type = Type;
this.Source = Source;
Message = Source.Message;
}
public MessageSource Type { get; }
public LazyFormattedBuildEventArgs Source { get; }
public string Message { get; }
public static UnitTestBuildEngineMessage From(BuildWarningEventArgs buildWarning) =>
new UnitTestBuildEngineMessage(MessageSource.WarningEvent, buildWarning);
public static UnitTestBuildEngineMessage From(BuildMessageEventArgs buildMessage) =>
new UnitTestBuildEngineMessage(MessageSource.MessageEvent, buildMessage);
public static UnitTestBuildEngineMessage From(BuildErrorEventArgs buildError) =>
new UnitTestBuildEngineMessage(MessageSource.ErrorEvent, buildError);
public static UnitTestBuildEngineMessage From(CustomBuildEventArgs customBuild) =>
new UnitTestBuildEngineMessage(MessageSource.CustomEvent, customBuild);
}