using CapnpC.CSharp.Generator; using System; using System.Collections.Generic; using System.Linq; namespace CapnpC.CSharp.MsBuild.Generation { public class CsFileGeneratorResult { public CsFileGeneratorResult(FileGenerationResult generatorResult, string fileName, IReadOnlyList messages) { if (generatorResult == null) { throw new ArgumentNullException(nameof(generatorResult)); } Filename = fileName ?? throw new ArgumentNullException(nameof(fileName)); Error = generatorResult.Exception?.Message; GeneratedCode = generatorResult.GeneratedContent; Messages = messages; } public CsFileGeneratorResult(string error) { Error = error; } public CsFileGeneratorResult(string error, IReadOnlyList messages) { Error = error; Messages = messages; } /// /// The error, if any. /// public string Error { get; } /// /// The generated code. /// public string GeneratedCode { get; } public IReadOnlyList Messages { get; } public bool Success => Error == null; public string Filename { get; } } }