diff --git a/src/Utf8StringInterpolation/Shims.cs b/src/Utf8StringInterpolation/Shims.cs index d20b9f1..031104c 100644 --- a/src/Utf8StringInterpolation/Shims.cs +++ b/src/Utf8StringInterpolation/Shims.cs @@ -28,7 +28,7 @@ public static bool TryFormat(this char value, Span utf8Destination, out in } #endif } - + #if !NET8_0_OR_GREATER public static bool TryFormat(this DateTime value, Span utf8Destination, out int bytesWritten, string? format, IFormatProvider? formatProvider) { @@ -46,14 +46,15 @@ public static bool TryFormat(this DateTime value, Span utf8Destination, ou } } - var count = Encoding.UTF8.GetByteCount(charDest.Slice(0, charWritten)); + var slice = charDest.Slice(0, charWritten); + var count = Encoding.UTF8.GetByteCount(slice); if (utf8Destination.Length < count) { bytesWritten = 0; return false; } - bytesWritten = Encoding.UTF8.GetBytes(charDest.Slice(0, charWritten), utf8Destination); + bytesWritten = Encoding.UTF8.GetBytes(slice, utf8Destination); return true; } @@ -73,14 +74,15 @@ public static bool TryFormat(this DateTimeOffset value, Span utf8Destinati } } - var count = Encoding.UTF8.GetByteCount(charDest.Slice(0, charWritten)); + var slice = charDest.Slice(0, charWritten); + var count = Encoding.UTF8.GetByteCount(slice); if (utf8Destination.Length < count) { bytesWritten = 0; return false; } - bytesWritten = Encoding.UTF8.GetBytes(charDest.Slice(0, charWritten), utf8Destination); + bytesWritten = Encoding.UTF8.GetBytes(slice, utf8Destination); return true; } @@ -100,14 +102,15 @@ public static bool TryFormat(this TimeSpan value, Span utf8Destination, ou } } - var count = Encoding.UTF8.GetByteCount(charDest.Slice(0, charWritten)); + var slice = charDest.Slice(0, charWritten); + var count = Encoding.UTF8.GetByteCount(slice); if (utf8Destination.Length < count) { bytesWritten = 0; return false; } - bytesWritten = Encoding.UTF8.GetBytes(charDest.Slice(0, charWritten), utf8Destination); + bytesWritten = Encoding.UTF8.GetBytes(slice, utf8Destination); return true; } #endif diff --git a/src/Utf8StringInterpolation/Utf8StringWriter.cs b/src/Utf8StringInterpolation/Utf8StringWriter.cs index d3d8396..133cdf0 100644 --- a/src/Utf8StringInterpolation/Utf8StringWriter.cs +++ b/src/Utf8StringInterpolation/Utf8StringWriter.cs @@ -351,9 +351,10 @@ int AppendSpanFormattable(T value, string? format) } } - var count = Encoding.UTF8.GetByteCount(charDest.Slice(0, charWritten)); + var slice = charDest.Slice(0, charWritten); + var count = Encoding.UTF8.GetByteCount(slice); TryGrow(count); - var bytesWritten = Encoding.UTF8.GetBytes(charDest.Slice(0, charWritten), destination); + var bytesWritten = Encoding.UTF8.GetBytes(slice, destination); destination = destination.Slice(bytesWritten); currentWritten += bytesWritten; return bytesWritten;