Browse Source

Reuse SpanHelpers in Avalonia.Build.Tasks

pull/11080/head
Nikita Tsukanov 3 years ago
parent
commit
c63571dcda
  1. 2
      src/Avalonia.Base/Media/Color.cs
  2. 5
      src/Avalonia.Base/Utilities/SpanHelpers.cs
  3. 1
      src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj
  4. 26
      src/Avalonia.Build.Tasks/SpanCompat.cs

2
src/Avalonia.Base/Media/Color.cs

@ -9,8 +9,8 @@ using System;
using System.Globalization;
#if !BUILDTASK
using Avalonia.Animation.Animators;
using static Avalonia.Utilities.SpanHelpers;
#endif
using static Avalonia.Utilities.SpanHelpers;
namespace Avalonia.Media
{

5
src/Avalonia.Base/Utilities/SpanHelpers.cs

@ -4,7 +4,10 @@ using System.Runtime.CompilerServices;
namespace Avalonia.Utilities
{
public static class SpanHelpers
#if !BUILDTASK
public
#endif
static class SpanHelpers
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool TryParseUInt(this ReadOnlySpan<char> span, NumberStyles style, IFormatProvider provider, out uint value)

1
src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj

@ -115,6 +115,7 @@
</Compile>
<Compile Include="..\Avalonia.Base\Metadata\NullableAttributes.cs" Link="NullableAttributes.cs" />
<Compile Include="..\Avalonia.Base\Compatibility\TrimmingAttributes.cs" Link="TrimmingAttributes.cs" Visible="False" />
<Compile Include="..\Avalonia.Base\Utilities\SpanHelpers.cs" Link="Utilities\SpanHelpers.cs" />
<Compile Remove="../Markup/Avalonia.Markup.Xaml.Loader\xamlil.github\**\obj\**\*.cs" />
<Compile Remove="../Markup/Avalonia.Markup.Xaml.Loader\xamlil.github\src\XamlX\IL\SreTypeSystem.cs" />
<PackageReference Include="Mono.Cecil" Version="0.11.4" />

26
src/Avalonia.Build.Tasks/SpanCompat.cs

@ -85,31 +85,7 @@ namespace System
{
return TrimStart().TrimEnd();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool TryParseUInt(NumberStyles style, IFormatProvider provider, out uint value)
{
return uint.TryParse(ToString(), style, provider, out value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool TryParseInt(out int value)
{
return int.TryParse(ToString(), out value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool TryParseDouble(NumberStyles style, IFormatProvider provider, out double value)
{
return double.TryParse(ToString(), style, provider, out value);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool TryParseByte(NumberStyles style, IFormatProvider provider, out byte value)
{
return byte.TryParse(ToString(), style, provider, out value);
}
public override string ToString() => _length == 0 ? string.Empty : _s.Substring(_start, _length);
internal int IndexOf(ReadOnlySpan<char> v, StringComparison ordinal, int start = 0)

Loading…
Cancel
Save