@@ -23,16 +23,16 @@ class VerifyEngine(
2323 public IReadOnlyList < FilePair > Equal => equal ;
2424 public IReadOnlyList < FilePair > AutoVerified => autoVerified ;
2525
26- static async Task < EqualityResult > GetResult ( VerifySettings settings , FilePair file , Target target , bool previousTextFailed )
26+ static async Task < EqualityResult > GetResult ( VerifySettings settings , FilePair file , StringOrStream target , bool previousTextFailed )
2727 {
2828 try
2929 {
30- if ( target . TryGetStringBuilder ( out var value ) )
30+ if ( target . StringBuilder != null )
3131 {
32- return await Comparer . Text ( file , value , settings ) ;
32+ return await Comparer . Text ( file , target . StringBuilder , settings ) ;
3333 }
3434
35- using var stream = target . StreamData ;
35+ using var stream = target . Stream ! ;
3636 stream . MoveToStart ( ) ;
3737 return await FileComparer . DoCompare ( settings , file , previousTextFailed , stream ) ;
3838 }
@@ -48,7 +48,7 @@ static async Task<EqualityResult> GetResult(VerifySettings settings, FilePair fi
4848 }
4949 }
5050
51- public async Task HandleResults ( List < Target > targetList )
51+ public async Task HandleResults ( List < StringOrStream > targetList )
5252 {
5353 if ( targetList . Count == 1 )
5454 {
@@ -61,7 +61,7 @@ public async Task HandleResults(List<Target> targetList)
6161
6262 var textHasFailed = false ;
6363
64- async Task Inner ( FilePair file , Target target )
64+ async Task Inner ( FilePair file , StringOrStream target )
6565 {
6666 var result = await GetResult ( settings , file , target , textHasFailed ) ;
6767
@@ -290,4 +290,17 @@ static void AcceptChanges(in FilePair file)
290290 File . Delete ( file . VerifiedPath ) ;
291291 File . Move ( file . ReceivedPath , file . VerifiedPath ) ;
292292 }
293+ }
294+
295+ class StringOrStream
296+ {
297+ public required string ? Name { get ; init ; }
298+ //TODO: should be nullable
299+ public required string Extension { get ; init ; }
300+ [ MemberNotNullWhen ( true , nameof ( IsString ) ) ]
301+ public StringBuilder ? StringBuilder { get ; init ; }
302+ [ MemberNotNullWhen ( false , nameof ( IsString ) ) ]
303+ public Stream ? Stream { get ; init ; }
304+ public string NameOrTarget => Name ?? "target" ;
305+ public bool IsString => StringBuilder != null ;
293306}
0 commit comments