1- using System . Diagnostics . Contracts ;
1+ using System . Diagnostics . CodeAnalysis ;
2+ using System . Diagnostics . Contracts ;
23using SER . Helpers . Exceptions ;
34
45namespace SER . Helpers . ResultSystem ;
@@ -11,16 +12,16 @@ public sealed class TryGet<TValue>(TValue? value, string? errorMsg)
1112 public Result Result => new ( WasSuccess , ErrorMsg ?? "" ) ;
1213
1314 [ Pure ]
14- public bool HasErrored ( out string error )
15+ public bool HasErrored ( [ NotNullWhen ( true ) ] out string ? error )
1516 {
16- error = ErrorMsg ?? "" ;
17+ error = ErrorMsg ;
1718 return ! WasSuccess ;
1819 }
1920
2021 [ Pure ]
21- public bool HasErrored ( out string error , out TValue val )
22+ public bool HasErrored ( [ NotNullWhen ( true ) ] out string ? error , [ NotNullWhen ( false ) ] out TValue ? val )
2223 {
23- error = ErrorMsg ?? "" ;
24+ error = ErrorMsg ;
2425 val = Value ! ;
2526 return ! WasSuccess ;
2627 }
@@ -32,7 +33,7 @@ public bool WasSuccessful()
3233 }
3334
3435 [ Pure ]
35- public bool WasSuccessful ( out TValue val )
36+ public bool WasSuccessful ( [ NotNullWhen ( true ) ] out TValue ? val )
3637 {
3738 val = Value ! ;
3839 return WasSuccess ;
@@ -79,18 +80,18 @@ public static TryGet<TValue> Success(TValue value)
7980 [ Pure ]
8081 public TryGet < TTarget > OnSuccess < TTarget > ( Func < TValue , TTarget > transform )
8182 {
82- if ( HasErrored ( out var error , out TValue val ) )
83+ if ( HasErrored ( out var error , out var val ) )
8384 {
8485 return error ;
8586 }
86-
87+
8788 return transform ( val ) ;
8889 }
8990
9091 [ Pure ]
9192 public TryGet < TTarget > OnSuccess < TTarget > ( Func < TValue , TryGet < TTarget > > transform )
9293 {
93- if ( HasErrored ( out var error , out TValue val ) )
94+ if ( HasErrored ( out var error , out var val ) )
9495 {
9596 return error ;
9697 }
0 commit comments