@@ -92,16 +92,16 @@ public void CanMatch()
9292 }
9393
9494 [ Fact ]
95- public void CanMatchWithSideEffects ( )
96- {
95+ public void CanMatchWithSideEffects ( )
96+ {
9797 var ok = Ok ( 42 ) ;
98- var err = Err < int > ( "oops" ) ;
99-
100- int output = 0 ;
101- ok . Match ( x => output += x , e => { if ( e == "oops" ) { output -= 1 ; } } ) ;
102- Assert . Equal ( 42 , output ) ;
103- err . Match ( x => output += x , e => { if ( e == "oops" ) { output -= 1 ; } } ) ;
104- Assert . Equal ( 41 , output ) ;
98+ var err = Err < int > ( "oops" ) ;
99+
100+ int output = 0 ;
101+ ok . Match ( x => output += x , e => { if ( e == "oops" ) { output -= 1 ; } } ) ;
102+ Assert . Equal ( 42 , output ) ;
103+ err . Match ( x => output += x , e => { if ( e == "oops" ) { output -= 1 ; } } ) ;
104+ Assert . Equal ( 41 , output ) ;
105105 }
106106
107107 [ Fact ]
@@ -242,26 +242,62 @@ public void CanFormatToSpan()
242242 Span < char > buffer = stackalloc char [ 255 ] ;
243243
244244 Assert . True ( ok . TryFormat ( buffer , out int written , "" , CultureInfo . InvariantCulture ) ) ;
245- Assert . True ( buffer [ ..written ] . SequenceEqual ( "Ok(4200)" ) ) ;
245+ Assert . Equal ( "Ok(4200)" , buffer [ ..written ] ) ;
246+
247+ Assert . True ( err . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
248+ Assert . Equal ( "Err(-9,600.00)" , buffer [ ..written ] ) ;
249+
250+ Assert . True ( ok . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
251+ Assert . Equal ( "Ok(4,200.00)" , buffer [ ..written ] ) ;
252+
253+ Assert . True ( okNotSpanFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
254+ Assert . Equal ( "Ok(4,200.00)" , buffer [ ..written ] ) ;
255+
256+ Assert . True ( okNotFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
257+ Assert . Equal ( "Ok(4200)" , buffer [ ..written ] ) ;
258+
259+ Assert . True ( errNotSpanFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
260+ Assert . Equal ( "Err(-1.00)" , buffer [ ..written ] ) ;
261+
262+ Assert . True ( errNotFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
263+ Assert . Equal ( "Err(-1)" , buffer [ ..written ] ) ;
264+ }
265+
266+ #if NET8_0_OR_GREATER
267+ [ Fact ]
268+ public void CanFormatToUtf8Span ( )
269+ {
270+ var ok = Ok ( 4200 ) ;
271+ var err = Err < int , int > ( - 9600 ) ;
272+ var okNotSpanFormattable = Ok ( new NotSpanFormattable { Value = 4200 } ) ;
273+ var okNotFormattable = Ok ( new NotFormattable { Value = 4200 } ) ;
274+ var errNotSpanFormattable = Err < int , NotSpanFormattable > ( new NotSpanFormattable { Value = - 1 } ) ;
275+ var errNotFormattable = Err < int , NotFormattable > ( new NotFormattable { Value = - 1 } ) ;
276+
277+ Span < byte > buffer = stackalloc byte [ 255 ] ;
278+
279+ Assert . True ( ok . TryFormat ( buffer , out int written , "" , CultureInfo . InvariantCulture ) ) ;
280+ Assert . Equal ( "Ok(4200)"u8 , buffer [ ..written ] ) ;
246281
247282 Assert . True ( err . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
248- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Err(-9,600.00)" ) ) ;
283+ Assert . Equal ( "Err(-9,600.00)"u8 , buffer [ .. written ] ) ;
249284
250285 Assert . True ( ok . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
251- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Ok(4,200.00)" ) ) ;
286+ Assert . Equal ( "Ok(4,200.00)"u8 , buffer [ .. written ] ) ;
252287
253288 Assert . True ( okNotSpanFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
254- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Ok(4,200.00)" ) ) ;
289+ Assert . Equal ( "Ok(4,200.00)"u8 , buffer [ .. written ] ) ;
255290
256291 Assert . True ( okNotFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
257- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Ok(4200)" ) ) ;
292+ Assert . Equal ( "Ok(4200)"u8 , buffer [ .. written ] ) ;
258293
259294 Assert . True ( errNotSpanFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
260- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Err(-1.00)" ) ) ;
295+ Assert . Equal ( "Err(-1.00)"u8 , buffer [ .. written ] ) ;
261296
262297 Assert . True ( errNotFormattable . TryFormat ( buffer , out written , "n2" , CultureInfo . InvariantCulture ) ) ;
263- Assert . True ( buffer [ .. written ] . SequenceEqual ( "Err(-1)" ) ) ;
298+ Assert . Equal ( "Err(-1)"u8 , buffer [ .. written ] ) ;
264299 }
300+ #endif
265301
266302 [ Fact ]
267303 public void CanCompare ( )
0 commit comments