src/dotnet/AspireWorker/Sessions/SessionEvents.cs (16 lines of code) (raw):
using System.Text.Json.Serialization;
using JetBrains.Annotations;
namespace JetBrains.Rider.Aspire.Worker.Sessions;
[JsonDerivedType(typeof(ProcessStartedEvent))]
[JsonDerivedType(typeof(LogReceivedEvent))]
[JsonDerivedType(typeof(ProcessTerminatedEvent))]
internal interface ISessionEvent;
[PublicAPI]
internal sealed record ProcessStartedEvent(string SessionId, string NotificationType, long Pid)
: ISessionEvent;
[PublicAPI]
internal sealed record LogReceivedEvent(string SessionId, string NotificationType, bool IsStdErr, string LogMessage)
: ISessionEvent;
[PublicAPI]
internal sealed record ProcessTerminatedEvent(string SessionId, string NotificationType, int ExitCode)
: ISessionEvent;