1- using System ;
1+ using System ;
22using System . Linq ;
33using System . Text . RegularExpressions ;
44using EnsureThat . Annotations ;
55using JetBrains . Annotations ;
66
7+ using NotNullAttribute = System . Diagnostics . CodeAnalysis . NotNullAttribute ;
8+
79namespace EnsureThat . Enforcers
810{
911 public sealed class StringArg
1012 {
11- [ NotNull ]
13+ [ return : NotNull ]
1214 [ ContractAnnotation ( "value:null => halt" ) ]
13- public string IsNotNull ( [ ValidatedNotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
15+ public string IsNotNull ( [ ValidatedNotNull , NotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
1416 {
1517 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
1618
1719 return value ;
1820 }
1921
20- [ NotNull ]
22+ [ return : NotNull ]
2123 [ ContractAnnotation ( "value:null => halt" ) ]
22- public string IsNotNullOrWhiteSpace ( [ ValidatedNotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
24+ public string IsNotNullOrWhiteSpace ( [ ValidatedNotNull , NotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
2325 {
2426 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
2527
@@ -29,8 +31,8 @@ public string IsNotNullOrWhiteSpace([ValidatedNotNull]string value, [InvokerPara
2931 return value ;
3032 }
3133
32- [ NotNull ]
33- public string IsNotNullOrEmpty ( [ ValidatedNotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
34+ [ return : NotNull ]
35+ public string IsNotNullOrEmpty ( [ ValidatedNotNull , NotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
3436 {
3537 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
3638
@@ -69,9 +71,9 @@ public string IsNotEmpty(string value, [InvokerParameterName] string paramName =
6971 return value ;
7072 }
7173
72- [ NotNull ]
74+ [ return : NotNull ]
7375 [ ContractAnnotation ( "value:null => halt" ) ]
74- public string HasLength ( [ ValidatedNotNull ] string value , int expected , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
76+ public string HasLength ( [ ValidatedNotNull , NotNull ] string value , int expected , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
7577 {
7678 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
7779
@@ -84,9 +86,9 @@ public string HasLength([ValidatedNotNull]string value, int expected, [InvokerPa
8486 return value ;
8587 }
8688
87- [ NotNull ]
89+ [ return : NotNull ]
8890 [ ContractAnnotation ( "value:null => halt" ) ]
89- public string HasLengthBetween ( [ ValidatedNotNull ] string value , int minLength , int maxLength , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
91+ public string HasLengthBetween ( [ ValidatedNotNull , NotNull ] string value , int minLength , int maxLength , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
9092 {
9193 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
9294
@@ -107,11 +109,11 @@ public string HasLengthBetween([ValidatedNotNull]string value, int minLength, in
107109 return value ;
108110 }
109111
110- [ NotNull ]
112+ [ return : NotNull ]
111113 public string Matches ( string value , [ RegexPattern ] string match , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
112114 => Matches ( value , new Regex ( match ) , paramName , optsFn ) ;
113115
114- [ NotNull ]
116+ [ return : NotNull ]
115117 public string Matches ( string value , Regex match , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
116118 {
117119 if ( ! match . IsMatch ( value ) )
@@ -123,10 +125,10 @@ public string Matches(string value, Regex match, [InvokerParameterName] string p
123125 return value ;
124126 }
125127
126- [ NotNull ]
128+ [ return : NotNull ]
127129 [ ContractAnnotation ( "value:null => halt" ) ]
128130 [ Obsolete ( "Use 'HasLength' instead. This will be removed in an upcoming version." ) ]
129- public string SizeIs ( [ ValidatedNotNull ] string value , int expected , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
131+ public string SizeIs ( [ ValidatedNotNull , NotNull ] string value , int expected , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
130132 => HasLength ( value , expected , paramName , optsFn ) ;
131133
132134 public string Is ( string value , string expected , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
@@ -185,9 +187,9 @@ public string IsNotEqualTo(string value, string notExpected, StringComparison co
185187 return value ;
186188 }
187189
188- [ NotNull ]
190+ [ return : NotNull ]
189191 [ ContractAnnotation ( "value:null => halt" ) ]
190- public Guid IsGuid ( [ ValidatedNotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
192+ public Guid IsGuid ( [ ValidatedNotNull , NotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
191193 {
192194 if ( ! Guid . TryParse ( value , out var parsed ) )
193195 throw Ensure . ExceptionFactory . ArgumentException (
@@ -198,9 +200,9 @@ public Guid IsGuid([ValidatedNotNull]string value, [InvokerParameterName] string
198200 return parsed ;
199201 }
200202
201- [ NotNull ]
203+ [ return : NotNull ]
202204 [ ContractAnnotation ( "value:null => halt" ) ]
203- public string StartsWith ( [ ValidatedNotNull ] string value , [ NotNull ] string expectedStartsWith , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
205+ public string StartsWith ( [ ValidatedNotNull , NotNull ] string value , [ NotNull ] string expectedStartsWith , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
204206 {
205207 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
206208
@@ -213,9 +215,9 @@ public string StartsWith([ValidatedNotNull]string value, [NotNull] string expect
213215 return value ;
214216 }
215217
216- [ NotNull ]
218+ [ return : NotNull ]
217219 [ ContractAnnotation ( "value:null => halt" ) ]
218- public string StartsWith ( [ ValidatedNotNull ] string value , [ NotNull ] string expectedStartsWith , StringComparison comparison , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
220+ public string StartsWith ( [ ValidatedNotNull , NotNull ] string value , [ NotNull ] string expectedStartsWith , StringComparison comparison , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
219221 {
220222 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
221223
@@ -277,9 +279,9 @@ public string IsInRange(string value, string min, string max, StringComparison c
277279 return value ;
278280 }
279281
280- [ NotNull ]
282+ [ return : NotNull ]
281283 [ ContractAnnotation ( "value:null => halt" ) ]
282- public string IsAllLettersOrDigits ( [ ValidatedNotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
284+ public string IsAllLettersOrDigits ( [ ValidatedNotNull , NotNull ] string value , [ InvokerParameterName ] string paramName = null , OptsFn optsFn = null )
283285 {
284286 Ensure . Any . IsNotNull ( value , paramName , optsFn ) ;
285287
0 commit comments