using System; using System.Collections.Generic; namespace CapnpC.CSharp.Generator { /// <summary> /// Represents a .capnp -> code generator result /// </summary> public class GenerationResult { /// <summary> /// Constructs an instance in case of at least partially successful generation. /// </summary> /// <param name="generatedFiles">Generation result per file to generate</param> public GenerationResult(IReadOnlyList<FileGenerationResult> generatedFiles) { GeneratedFiles = generatedFiles; } /// <summary> /// Constructs an instance in case of total failure. /// </summary> /// <param name="exception">Exception with details on error</param> public GenerationResult(Exception exception) { Exception = exception; } /// <summary> /// Generation result per file to generate or null in case of total failure /// </summary> public IReadOnlyList<FileGenerationResult> GeneratedFiles { get; } /// <summary> /// Exception with details on error or null in case of success /// </summary> public Exception Exception { get; } /// <summary> /// true iff generation was successful /// </summary> public bool IsSuccess => GeneratedFiles != null; /// <summary> /// Messages read from standard error. Valid for both failure and success (capnp might spit out some warnings). /// </summary> public IReadOnlyList<CapnpMessage> Messages { get; internal set; } /// <summary> /// Error classification (if any error) /// </summary> public CapnpProcessFailure ErrorCategory { get; internal set; } } }