From d8c159331c230154236faafc315d008c61f3eb7b Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 23 Dec 2024 12:35:34 -0500 Subject: [PATCH 1/2] feat: adds deconstructor to read result --- src/Microsoft.OpenApi/Reader/ReadResult.cs | 8 ++++++++ .../PublicApi/PublicApi.approved.txt | 1 + 2 files changed, 9 insertions(+) diff --git a/src/Microsoft.OpenApi/Reader/ReadResult.cs b/src/Microsoft.OpenApi/Reader/ReadResult.cs index a0013b249..aa835478a 100644 --- a/src/Microsoft.OpenApi/Reader/ReadResult.cs +++ b/src/Microsoft.OpenApi/Reader/ReadResult.cs @@ -18,5 +18,13 @@ public class ReadResult /// OpenApiDiagnostic contains the Errors reported while parsing /// public OpenApiDiagnostic Diagnostic { get; set; } + /// + /// Deconstructs the result for easier assignment on the client application. + /// + public void Deconstruct(out OpenApiDocument document, out OpenApiDiagnostic diagnostic) + { + document = Document; + diagnostic = Diagnostic; + } } } diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt index a3681e9d5..642dd0b82 100644 --- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt +++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt @@ -1380,6 +1380,7 @@ namespace Microsoft.OpenApi.Reader public ReadResult() { } public Microsoft.OpenApi.Reader.OpenApiDiagnostic Diagnostic { get; set; } public Microsoft.OpenApi.Models.OpenApiDocument Document { get; set; } + public void Deconstruct(out Microsoft.OpenApi.Models.OpenApiDocument document, out Microsoft.OpenApi.Reader.OpenApiDiagnostic diagnostic) { } } public enum ReferenceResolutionSetting { From 8902656681487c22451c08cdc3b4e4aef41db9be Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 23 Dec 2024 12:38:41 -0500 Subject: [PATCH 2/2] chore: adds test for deconstructor Signed-off-by: Vincent Biret --- .../Reader/ReadResultTests.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/Microsoft.OpenApi.Tests/Reader/ReadResultTests.cs diff --git a/test/Microsoft.OpenApi.Tests/Reader/ReadResultTests.cs b/test/Microsoft.OpenApi.Tests/Reader/ReadResultTests.cs new file mode 100644 index 000000000..c3a87c7a3 --- /dev/null +++ b/test/Microsoft.OpenApi.Tests/Reader/ReadResultTests.cs @@ -0,0 +1,21 @@ +using Xunit; +using Microsoft.OpenApi.Reader; +using Microsoft.OpenApi.Models; + +namespace Microsoft.OpenApi.Tests.Reader; + +public class ReadResultTests +{ + [Fact] + public void Deconstructs() + { + var readResult = new ReadResult() + { + Document = new OpenApiDocument(), + Diagnostic = new OpenApiDiagnostic() + }; + var (document, diagnostic) = readResult; + Assert.Equal(readResult.Document, document); + Assert.Equal(readResult.Diagnostic, diagnostic); + } +}