Skip to content

Commit 79336f6

Browse files
authored
Merge pull request #2024 from microsoft/feat/result-deconstruct
feat: adds deconstructor to read result
2 parents ff7b4a9 + 8902656 commit 79336f6

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

src/Microsoft.OpenApi/Reader/ReadResult.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,13 @@ public class ReadResult
1818
/// OpenApiDiagnostic contains the Errors reported while parsing
1919
/// </summary>
2020
public OpenApiDiagnostic Diagnostic { get; set; }
21+
/// <summary>
22+
/// Deconstructs the result for easier assignment on the client application.
23+
/// </summary>
24+
public void Deconstruct(out OpenApiDocument document, out OpenApiDiagnostic diagnostic)
25+
{
26+
document = Document;
27+
diagnostic = Diagnostic;
28+
}
2129
}
2230
}

test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,6 +1380,7 @@ namespace Microsoft.OpenApi.Reader
13801380
public ReadResult() { }
13811381
public Microsoft.OpenApi.Reader.OpenApiDiagnostic Diagnostic { get; set; }
13821382
public Microsoft.OpenApi.Models.OpenApiDocument Document { get; set; }
1383+
public void Deconstruct(out Microsoft.OpenApi.Models.OpenApiDocument document, out Microsoft.OpenApi.Reader.OpenApiDiagnostic diagnostic) { }
13831384
}
13841385
public enum ReferenceResolutionSetting
13851386
{
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Xunit;
2+
using Microsoft.OpenApi.Reader;
3+
using Microsoft.OpenApi.Models;
4+
5+
namespace Microsoft.OpenApi.Tests.Reader;
6+
7+
public class ReadResultTests
8+
{
9+
[Fact]
10+
public void Deconstructs()
11+
{
12+
var readResult = new ReadResult()
13+
{
14+
Document = new OpenApiDocument(),
15+
Diagnostic = new OpenApiDiagnostic()
16+
};
17+
var (document, diagnostic) = readResult;
18+
Assert.Equal(readResult.Document, document);
19+
Assert.Equal(readResult.Diagnostic, diagnostic);
20+
}
21+
}

0 commit comments

Comments
 (0)